mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Merged New Inventory Project into main branch
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1871 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+250
-251
@@ -18,8 +18,8 @@
|
||||
#include "tile animation.h"
|
||||
#include "Interactive Tiles.h"
|
||||
#include "handle doors.h"
|
||||
#include "sound control.h"
|
||||
#include "interface.h"
|
||||
#include "Sound Control.h"
|
||||
#include "interface.h"
|
||||
#include "keys.h"
|
||||
#include "message.h"
|
||||
#include "text.h"
|
||||
@@ -52,7 +52,7 @@ void HandleDoorChangeFromGridNo( SOLDIERTYPE *pSoldier, INT16 sGridNo, BOOLEAN f
|
||||
if ( pStructure == NULL )
|
||||
{
|
||||
#ifdef JA2TESTVERSION
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_TESTVERSION, L"ERROR: Told to handle door that does not exist at %d.", sGridNo );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_TESTVERSION, L"ERROR: Told to handle door that does not exist at %d.", sGridNo );
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
@@ -87,148 +87,148 @@ UINT16 GetAnimStateForInteraction( SOLDIERTYPE *pSoldier, BOOLEAN fDoor, UINT16
|
||||
{
|
||||
case OPEN_DOOR:
|
||||
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_OPEN_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( OPEN_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( usAnimState );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( BEGIN_OPENSTRUCT_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( BEGIN_OPENSTRUCT );
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_OPEN_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( OPEN_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( usAnimState );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( BEGIN_OPENSTRUCT_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( BEGIN_OPENSTRUCT );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CLOSE_DOOR:
|
||||
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_CLOSE_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( CLOSE_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( usAnimState );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( OPEN_STRUCT_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( OPEN_STRUCT );
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_CLOSE_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( CLOSE_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( usAnimState );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( OPEN_STRUCT_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( OPEN_STRUCT );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case END_OPEN_DOOR:
|
||||
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_END_OPEN_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPEN_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( usAnimState );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPENSTRUCT_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( END_OPENSTRUCT );
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_END_OPEN_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPEN_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( usAnimState );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPENSTRUCT_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( END_OPENSTRUCT );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case END_OPEN_LOCKED_DOOR:
|
||||
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_END_OPEN_LOCKED_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPEN_LOCKED_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( END_OPEN_LOCKED_DOOR );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPENSTRUCT_LOCKED_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( END_OPENSTRUCT_LOCKED );
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( pSoldier->ubBodyType == CRIPPLECIV )
|
||||
{
|
||||
return( CRIPPLE_END_OPEN_LOCKED_DOOR );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( fDoor )
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPEN_LOCKED_DOOR_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( END_OPEN_LOCKED_DOOR );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( END_OPENSTRUCT_LOCKED_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( END_OPENSTRUCT_LOCKED );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case PICK_LOCK:
|
||||
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight != ANIM_STAND )
|
||||
{
|
||||
return( LOCKPICK_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( PICK_LOCK );
|
||||
}
|
||||
break;
|
||||
return( LOCKPICK_CROUCHED );
|
||||
}
|
||||
else
|
||||
{
|
||||
return( PICK_LOCK );
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// should never happen!
|
||||
@@ -241,7 +241,7 @@ UINT16 GetAnimStateForInteraction( SOLDIERTYPE *pSoldier, BOOLEAN fDoor, UINT16
|
||||
|
||||
void InteractWithClosedDoor( SOLDIERTYPE *pSoldier, UINT8 ubHandleCode )
|
||||
{
|
||||
pSoldier->ubDoorHandleCode = ubHandleCode;
|
||||
pSoldier->aiData.ubDoorHandleCode = ubHandleCode;
|
||||
|
||||
switch( ubHandleCode )
|
||||
{
|
||||
@@ -253,17 +253,17 @@ void InteractWithClosedDoor( SOLDIERTYPE *pSoldier, UINT8 ubHandleCode )
|
||||
case HANDLE_DOOR_UNTRAP:
|
||||
case HANDLE_DOOR_CROWBAR:
|
||||
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, TRUE, OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, TRUE, OPEN_DOOR ), 0, FALSE );
|
||||
break;
|
||||
|
||||
case HANDLE_DOOR_FORCE:
|
||||
|
||||
ChangeSoldierState( pSoldier, KICK_DOOR, 0 , FALSE );
|
||||
pSoldier->ChangeSoldierState( KICK_DOOR, 0 , FALSE );
|
||||
break;
|
||||
|
||||
case HANDLE_DOOR_LOCKPICK:
|
||||
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, TRUE, PICK_LOCK ), 0 , FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, TRUE, PICK_LOCK ), 0 , FALSE );
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -283,11 +283,11 @@ BOOLEAN DoTrapCheckOnStartingMenu( SOLDIERTYPE * pSoldier, DOOR * pDoor )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_BOOBYTRAP_ITEM );
|
||||
UpdateDoorPerceivedValue( pDoor );
|
||||
|
||||
return( TRUE );
|
||||
return( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
return( FALSE );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
void InteractWithOpenableStruct( SOLDIERTYPE *pSoldier, STRUCTURE *pStructure, UINT8 ubDirection, BOOLEAN fDoor )
|
||||
@@ -296,7 +296,7 @@ void InteractWithOpenableStruct( SOLDIERTYPE *pSoldier, STRUCTURE *pStructure, U
|
||||
BOOLEAN fDoMenu = FALSE;
|
||||
DOOR * pDoor = NULL;
|
||||
DOOR_STATUS * pDoorStatus;
|
||||
BOOLEAN fTrapsFound = FALSE;
|
||||
BOOLEAN fTrapsFound = FALSE;
|
||||
|
||||
pBaseStructure = FindBaseStructure( pStructure );
|
||||
|
||||
@@ -307,21 +307,21 @@ void InteractWithOpenableStruct( SOLDIERTYPE *pSoldier, STRUCTURE *pStructure, U
|
||||
if ( pDoorStatus && (pDoorStatus->ubFlags & DOOR_BUSY) )
|
||||
{
|
||||
// Send this guy into stationary stance....
|
||||
EVENT_StopMerc( pSoldier, pSoldier->sGridNo, pSoldier->ubDirection );
|
||||
pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection );
|
||||
|
||||
if ( pSoldier->bTeam == gbPlayerNum )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ DOOR_IS_BUSY ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("Trying to open door and door is busy: %d", pSoldier->ubID ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("Trying to open door and door is busy: %d", pSoldier->ubID ) );
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
EVENT_SetSoldierDesiredDirection( pSoldier, ubDirection );
|
||||
pSoldier->EVENT_SetSoldierDesiredDirection( ubDirection );
|
||||
|
||||
// Is the door opened?
|
||||
if ( pStructure->fFlags & STRUCTURE_OPEN )
|
||||
@@ -329,27 +329,27 @@ void InteractWithOpenableStruct( SOLDIERTYPE *pSoldier, STRUCTURE *pStructure, U
|
||||
if ( pSoldier->ubID <= gTacticalStatus.Team[ gbPlayerNum ].bLastID && !( pStructure->fFlags & STRUCTURE_SWITCH ) )
|
||||
{
|
||||
// Bring up menu to decide what to do....
|
||||
SoldierGotoStationaryStance( pSoldier );
|
||||
pSoldier->SoldierGotoStationaryStance( );
|
||||
|
||||
pDoor = FindDoorInfoAtGridNo( pBaseStructure->sGridNo );
|
||||
if ( pDoor )
|
||||
{
|
||||
if ( DoTrapCheckOnStartingMenu( pSoldier, pDoor ) )
|
||||
{
|
||||
fTrapsFound = TRUE;
|
||||
}
|
||||
{
|
||||
fTrapsFound = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// Pull Up Menu
|
||||
if ( !fTrapsFound )
|
||||
{
|
||||
InitDoorOpenMenu( pSoldier, pStructure, ubDirection, TRUE );
|
||||
}
|
||||
if ( !fTrapsFound )
|
||||
{
|
||||
InitDoorOpenMenu( pSoldier, pStructure, ubDirection, TRUE );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Easily close door....
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, CLOSE_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, CLOSE_DOOR ), 0, FALSE );
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -361,31 +361,31 @@ void InteractWithOpenableStruct( SOLDIERTYPE *pSoldier, STRUCTURE *pStructure, U
|
||||
|
||||
if ( pDoor != NULL )
|
||||
{
|
||||
// Assume true
|
||||
// Assume true
|
||||
fDoMenu = TRUE;
|
||||
|
||||
// Check if it's locked.....
|
||||
// If not locked, don't bring it up!
|
||||
if ( !pDoor->fLocked )
|
||||
{
|
||||
fDoMenu = FALSE;
|
||||
}
|
||||
// Check if it's locked.....
|
||||
// If not locked, don't bring it up!
|
||||
if ( !pDoor->fLocked )
|
||||
{
|
||||
fDoMenu = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( fDoMenu )
|
||||
{
|
||||
// Bring up menu to decide what to do....
|
||||
SoldierGotoStationaryStance( pSoldier );
|
||||
pSoldier->SoldierGotoStationaryStance( );
|
||||
|
||||
if ( DoTrapCheckOnStartingMenu( pSoldier, pDoor ) )
|
||||
{
|
||||
fTrapsFound = TRUE;
|
||||
}
|
||||
{
|
||||
fTrapsFound = TRUE;
|
||||
}
|
||||
|
||||
// Pull Up Menu
|
||||
if ( !fTrapsFound )
|
||||
{
|
||||
if ( !fTrapsFound )
|
||||
{
|
||||
// In autobandage mode, assuming no traps are found, try to automatically unlock the door. If we can't, then we can't
|
||||
if (gTacticalStatus.fAutoBandageMode)
|
||||
{
|
||||
@@ -393,18 +393,18 @@ void InteractWithOpenableStruct( SOLDIERTYPE *pSoldier, STRUCTURE *pStructure, U
|
||||
return;
|
||||
}
|
||||
|
||||
InitDoorOpenMenu( pSoldier, pStructure, ubDirection, FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
UnSetUIBusy( pSoldier->ubID );
|
||||
}
|
||||
InitDoorOpenMenu( pSoldier, pStructure, ubDirection, FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
pSoldier->ubDoorHandleCode = HANDLE_DOOR_OPEN;
|
||||
UnSetUIBusy( pSoldier->ubID );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pSoldier->aiData.ubDoorHandleCode = HANDLE_DOOR_OPEN;
|
||||
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, OPEN_DOOR ), 0, FALSE );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -423,7 +423,7 @@ void ProcessImplicationsOfPCMessingWithDoor( SOLDIERTYPE * pSoldier )
|
||||
for ( ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
|
||||
{
|
||||
pGoon = MercPtrs[ ubLoop ];
|
||||
if ( pGoon->ubCivilianGroup == KINGPIN_CIV_GROUP && pGoon->bActive && pGoon->bInSector && pGoon->bLife >= OKLIFE && pGoon->bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
|
||||
if ( pGoon->ubCivilianGroup == KINGPIN_CIV_GROUP && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
|
||||
{
|
||||
MakeCivHostile( pGoon, 2 );
|
||||
if ( ! (gTacticalStatus.uiFlags & INCOMBAT) )
|
||||
@@ -437,10 +437,10 @@ void ProcessImplicationsOfPCMessingWithDoor( SOLDIERTYPE * pSoldier )
|
||||
if ( gWorldSectorX == TIXA_SECTOR_X && gWorldSectorY == TIXA_SECTOR_Y )
|
||||
{
|
||||
pGoon = FindSoldierByProfileID( WARDEN, FALSE );
|
||||
if ( pGoon && pGoon->bAlertStatus < STATUS_RED && PythSpacesAway( pSoldier->sGridNo, pGoon->sGridNo ) <= 5 )
|
||||
if ( pGoon && pGoon->aiData.bAlertStatus < STATUS_RED && PythSpacesAway( pSoldier->sGridNo, pGoon->sGridNo ) <= 5 )
|
||||
{
|
||||
// alert her if she hasn't been alerted
|
||||
pGoon->bAlertStatus = STATUS_RED;
|
||||
pGoon->aiData.bAlertStatus = STATUS_RED;
|
||||
CheckForChangingOrders( pGoon );
|
||||
CancelAIAction( pGoon, TRUE );
|
||||
}
|
||||
@@ -456,8 +456,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
DOOR *pDoor;
|
||||
BOOLEAN fTrapFound = FALSE;
|
||||
BOOLEAN fDoAction = TRUE;
|
||||
BOOLEAN fDoor = FALSE;
|
||||
INT8 bItemIn = FALSE;
|
||||
BOOLEAN fDoor = FALSE;
|
||||
|
||||
// Are we a door?
|
||||
if (pStructure->fFlags & STRUCTURE_ANYDOOR)
|
||||
@@ -486,7 +485,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
pDoor = FindDoorInfoAtGridNo( sGridNo );
|
||||
|
||||
// Alrighty, first check for traps ( unless we are examining.... )
|
||||
if ( pSoldier->ubDoorHandleCode != HANDLE_DOOR_EXAMINE && pSoldier->ubDoorHandleCode != HANDLE_DOOR_UNTRAP && pSoldier->ubDoorHandleCode != HANDLE_DOOR_UNLOCK )
|
||||
if ( pSoldier->aiData.ubDoorHandleCode != HANDLE_DOOR_EXAMINE && pSoldier->aiData.ubDoorHandleCode != HANDLE_DOOR_UNTRAP && pSoldier->aiData.ubDoorHandleCode != HANDLE_DOOR_UNLOCK )
|
||||
{
|
||||
if ( pDoor != NULL )
|
||||
{
|
||||
@@ -500,8 +499,8 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
// Set AP costs to that of opening a door
|
||||
sAPCost = AP_OPEN_DOOR;
|
||||
sBPCost = BP_OPEN_DOOR;
|
||||
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
|
||||
// Did we inadvertently set it off?
|
||||
if ( HasDoorTrapGoneOff( pSoldier, pDoor ) )
|
||||
@@ -512,7 +511,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if (DoorTrapTable[pDoor->ubTrapID].fFlags & DOOR_TRAP_STOPS_ACTION)
|
||||
{
|
||||
// trap stops person from opening door!
|
||||
fDoAction = FALSE;
|
||||
fDoAction = FALSE;
|
||||
}
|
||||
if (!( DoorTrapTable[pDoor->ubTrapID].fFlags & DOOR_TRAP_RECURRING ) )
|
||||
{
|
||||
@@ -543,7 +542,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
}
|
||||
|
||||
// Stop action this time....
|
||||
fDoAction = FALSE;
|
||||
fDoAction = FALSE;
|
||||
|
||||
// report!
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_BOOBYTRAP_ITEM );
|
||||
@@ -555,7 +554,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if (DoorTrapTable[pDoor->ubTrapID].fFlags & DOOR_TRAP_STOPS_ACTION)
|
||||
{
|
||||
// trap stops person from opening door!
|
||||
fDoAction = FALSE;
|
||||
fDoAction = FALSE;
|
||||
}
|
||||
if (!( DoorTrapTable[pDoor->ubTrapID].fFlags & DOOR_TRAP_RECURRING ) )
|
||||
{
|
||||
@@ -574,7 +573,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( fDoAction )
|
||||
{
|
||||
// OK, switch based on how we are going to open door....
|
||||
switch( pSoldier->ubDoorHandleCode )
|
||||
switch( pSoldier->aiData.ubDoorHandleCode )
|
||||
{
|
||||
case HANDLE_DOOR_OPEN:
|
||||
|
||||
@@ -586,7 +585,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
sBPCost = BP_OPEN_DOOR;
|
||||
|
||||
// Open if it's not locked....
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
fHandleDoor = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -595,13 +594,13 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( pDoor->fLocked )
|
||||
{
|
||||
// it's locked....
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
|
||||
// Do we have a quote for locked stuff?
|
||||
// Now just show on message bar
|
||||
if ( !AM_AN_EPC( pSoldier ) )
|
||||
{
|
||||
DoMercBattleSound( pSoldier, BATTLE_SOUND_LOCKED );
|
||||
pSoldier->DoMercBattleSound( BATTLE_SOUND_LOCKED );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -610,14 +609,14 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
UpdateDoorPerceivedValue( pDoor );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case HANDLE_DOOR_FORCE:
|
||||
|
||||
// Set costs for these
|
||||
@@ -627,7 +626,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
// OK, using force, if we have no lock, just open the door!
|
||||
if ( pDoor == NULL )
|
||||
{
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
fHandleDoor = TRUE;
|
||||
|
||||
ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_THERE_IS_NO_LOCK_STR ] );
|
||||
@@ -638,7 +637,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( AttemptToSmashDoor( pSoldier, pDoor ) )
|
||||
{
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_DESTROYED_STR ] );
|
||||
// DoMercBattleSound( pSoldier, BATTLE_SOUND_COOL1 );
|
||||
// pSoldier->DoMercBattleSound( BATTLE_SOUND_COOL1 );
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -660,7 +659,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
// OK, using force, if we have no lock, just open the door!
|
||||
if ( pDoor == NULL )
|
||||
{
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
fHandleDoor = TRUE;
|
||||
|
||||
ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_THERE_IS_NO_LOCK_STR ] );
|
||||
@@ -671,7 +670,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( AttemptToCrowbarLock( pSoldier, pDoor ) )
|
||||
{
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_DESTROYED_STR ] );
|
||||
//DoMercBattleSound( pSoldier, BATTLE_SOUND_COOL1 );
|
||||
//pSoldier->DoMercBattleSound( BATTLE_SOUND_COOL1 );
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -699,7 +698,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
// Attempt to force door
|
||||
if ( AttemptToBlowUpLock( pSoldier, pDoor ) )
|
||||
{
|
||||
//DoMercBattleSound( pSoldier, BATTLE_SOUND_COOL1 );
|
||||
//pSoldier->DoMercBattleSound( BATTLE_SOUND_COOL1 );
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_DESTROYED_STR ] );
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
@@ -727,7 +726,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
{
|
||||
if ( AttemptToPickLock( pSoldier, pDoor ) )
|
||||
{
|
||||
DoMercBattleSound( pSoldier, BATTLE_SOUND_COOL1 );
|
||||
pSoldier->DoMercBattleSound( BATTLE_SOUND_COOL1 );
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_HAS_BEEN_PICKED_STR ] );
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
@@ -748,7 +747,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
|
||||
// Attempt to examine door
|
||||
// Whatever the result, end the open animation
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
|
||||
if ( pDoor == NULL )
|
||||
{
|
||||
@@ -794,7 +793,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
{
|
||||
// Open if it's not locked....
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_THERE_IS_NO_LOCK_STR ] );
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
break;
|
||||
}
|
||||
else
|
||||
@@ -805,16 +804,16 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( AttemptToUnlockDoor( pSoldier, pDoor ) )
|
||||
{
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_HAS_BEEN_UNLOCKED_STR ] );
|
||||
//DoMercBattleSound( pSoldier, BATTLE_SOUND_COOL1 );
|
||||
//pSoldier->DoMercBattleSound( BATTLE_SOUND_COOL1 );
|
||||
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
UpdateDoorPerceivedValue( pDoor );
|
||||
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
// Do we have a quote for locked stuff?
|
||||
// Now just show on message bar
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_NOT_PROPER_KEY_STR ], pSoldier->name );
|
||||
@@ -822,7 +821,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
// OK PLay damn battle sound
|
||||
if ( Random( 2 ) )
|
||||
{
|
||||
DoMercBattleSound( pSoldier, BATTLE_SOUND_CURSE1 );
|
||||
pSoldier->DoMercBattleSound( BATTLE_SOUND_CURSE1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -840,7 +839,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
{
|
||||
// Open if it's not locked....
|
||||
ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_THERE_IS_NO_LOCK_STR ] );
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
break;
|
||||
}
|
||||
else
|
||||
@@ -856,14 +855,14 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( AttemptToUntrapDoor( pSoldier, pDoor ) )
|
||||
{
|
||||
//ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_HAS_BEEN_UNTRAPPED_STR ] );
|
||||
DoMercBattleSound( pSoldier, BATTLE_SOUND_COOL1 );
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->DoMercBattleSound( BATTLE_SOUND_COOL1 );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
UpdateDoorPerceivedValue( pDoor );
|
||||
//fHandleDoor = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
{
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
// Now just show on message bar
|
||||
HandleDoorTrap( pSoldier, pDoor );
|
||||
|
||||
@@ -897,7 +896,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
{
|
||||
// Open if it's not locked....
|
||||
ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_THERE_IS_NO_LOCK_STR ] );
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
break;
|
||||
}
|
||||
else
|
||||
@@ -908,12 +907,12 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
if ( AttemptToLockDoor( pSoldier, pDoor ) )
|
||||
{
|
||||
ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_LOCK_HAS_BEEN_LOCKED_STR ] );
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
UpdateDoorPerceivedValue( pDoor );
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_LOCKED_DOOR ), 0, FALSE );
|
||||
// Do we have a quote for locked stuff?
|
||||
// Now just show on message bar
|
||||
ScreenMsg( MSG_FONT_YELLOW, MSG_INTERFACE, TacticalStr[ DOOR_NOT_PROPER_KEY_STR ], pSoldier->name );
|
||||
@@ -933,7 +932,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
sBPCost = BP_OPEN_DOOR;
|
||||
|
||||
// Open if it's not locked....
|
||||
ChangeSoldierState( pSoldier, GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
pSoldier->ChangeSoldierState( GetAnimStateForInteraction( pSoldier, fDoor, END_OPEN_DOOR ), 0, FALSE );
|
||||
fHandleDoor = TRUE;
|
||||
}
|
||||
}
|
||||
@@ -960,7 +959,7 @@ BOOLEAN HandleOpenableStruct( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *p
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE * pStructure, BOOLEAN fNoAnimations )
|
||||
BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE * pStructure, BOOLEAN fNoAnimations )
|
||||
{
|
||||
LEVELNODE * pShadowNode;
|
||||
LEVELNODE * pNode;
|
||||
@@ -1016,7 +1015,7 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
SetRenderFlags(RENDER_FLAG_FULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1083,7 +1082,7 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
fDoAnimation = FALSE;
|
||||
}
|
||||
|
||||
if ( fDoAnimation )
|
||||
if ( fDoAnimation )
|
||||
{
|
||||
// Update perceived value
|
||||
ModifyDoorStatus( sGridNo, DONTSETDOORSTATUS, TRUE );
|
||||
@@ -1093,13 +1092,13 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
memset( &AniParams, 0, sizeof( ANITILE_PARAMS ) );
|
||||
AniParams.sGridNo = sGridNo;
|
||||
AniParams.ubLevelID = ANI_STRUCT_LEVEL;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileIndex = pNode->usIndex;
|
||||
AniParams.sDelay = INTTILE_DOOR_OPENSPEED;
|
||||
AniParams.sStartFrame = pNode->sCurrentFrame;
|
||||
AniParams.uiFlags = ANITILE_DOOR | ANITILE_FORWARD | ANITILE_EXISTINGTILE;
|
||||
AniParams.pGivenLevelNode = pNode;
|
||||
|
||||
|
||||
CreateAnimationTile( &AniParams );
|
||||
}
|
||||
else
|
||||
@@ -1107,7 +1106,7 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
memset( &AniParams, 0, sizeof( ANITILE_PARAMS ) );
|
||||
AniParams.sGridNo = sGridNo;
|
||||
AniParams.ubLevelID = ANI_STRUCT_LEVEL;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileIndex = pNode->usIndex;
|
||||
AniParams.sDelay = INTTILE_DOOR_OPENSPEED;
|
||||
AniParams.sStartFrame = pNode->sCurrentFrame;
|
||||
@@ -1143,22 +1142,22 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
// change sound ID
|
||||
uiSoundID = GARAGE_DOOR_OPEN;
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_CLOTH )
|
||||
{
|
||||
// change sound ID
|
||||
uiSoundID = CURTAINS_OPEN;
|
||||
}
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_LIGHT_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_THICKER_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_HEAVY_METAL )
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_CLOTH )
|
||||
{
|
||||
// change sound ID
|
||||
uiSoundID = CURTAINS_OPEN;
|
||||
}
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_LIGHT_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_THICKER_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_HEAVY_METAL )
|
||||
{
|
||||
// change sound ID
|
||||
uiSoundID = METAL_DOOR_OPEN;
|
||||
}
|
||||
|
||||
// OK, We must know what sound to play, for now use same sound for all doors...
|
||||
PlayJA2Sample( uiSoundID, RATE_11025, SoundVolume( MIDVOLUME, sGridNo ), 1, SoundDir( sGridNo ) );
|
||||
PlayJA2Sample( uiSoundID, RATE_11025, SoundVolume( MIDVOLUME, sGridNo ), 1, SoundDir( sGridNo ) );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1209,7 +1208,7 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
ModifyDoorStatus( sGridNo, DONTSETDOORSTATUS, FALSE );
|
||||
|
||||
memset( &AniParams, 0, sizeof( ANITILE_PARAMS ) );
|
||||
|
||||
|
||||
// ATE; Default to normal door...
|
||||
uiSoundID = ( DRCLOSE_1 + Random( 2 ) );
|
||||
|
||||
@@ -1222,53 +1221,53 @@ BOOLEAN HandleDoorsOpenClose( SOLDIERTYPE *pSoldier, INT16 sGridNo, STRUCTURE *
|
||||
// change sound ID
|
||||
uiSoundID = GARAGE_DOOR_CLOSE;
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_CLOTH )
|
||||
{
|
||||
// change sound ID
|
||||
uiSoundID = CURTAINS_CLOSE;
|
||||
}
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_LIGHT_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_THICKER_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_HEAVY_METAL )
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_CLOTH )
|
||||
{
|
||||
// change sound ID
|
||||
uiSoundID = CURTAINS_CLOSE;
|
||||
}
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_LIGHT_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_THICKER_METAL ||
|
||||
pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_HEAVY_METAL )
|
||||
{
|
||||
// change sound ID
|
||||
uiSoundID = METAL_DOOR_CLOSE;
|
||||
}
|
||||
|
||||
AniParams.uiKeyFrame1Code = ANI_KEYFRAME_DO_SOUND;
|
||||
AniParams.uiUserData = uiSoundID;
|
||||
AniParams.uiUserData3 = sGridNo;
|
||||
AniParams.uiKeyFrame1Code = ANI_KEYFRAME_DO_SOUND;
|
||||
AniParams.uiUserData = uiSoundID;
|
||||
AniParams.uiUserData3 = sGridNo;
|
||||
|
||||
|
||||
if ( fOpenedGraphic )
|
||||
{
|
||||
AniParams.sGridNo = sGridNo;
|
||||
AniParams.ubLevelID = ANI_STRUCT_LEVEL;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileIndex = pNode->usIndex;
|
||||
AniParams.sDelay = INTTILE_DOOR_OPENSPEED;
|
||||
AniParams.sStartFrame = pNode->sCurrentFrame;
|
||||
AniParams.uiFlags = ANITILE_DOOR | ANITILE_BACKWARD | ANITILE_EXISTINGTILE;
|
||||
AniParams.pGivenLevelNode = pNode;
|
||||
|
||||
AniParams.ubKeyFrame1 = pNode->sCurrentFrame - 2;
|
||||
|
||||
AniParams.ubKeyFrame1 = pNode->sCurrentFrame - 2;
|
||||
|
||||
CreateAnimationTile( &AniParams );
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
AniParams.sGridNo = sGridNo;
|
||||
AniParams.ubLevelID = ANI_STRUCT_LEVEL;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileType = (UINT16)gTileDatabase[ pNode->usIndex ].fType;
|
||||
AniParams.usTileIndex = pNode->usIndex;
|
||||
AniParams.sDelay = INTTILE_DOOR_OPENSPEED;
|
||||
AniParams.sStartFrame = pNode->sCurrentFrame;
|
||||
AniParams.uiFlags = ANITILE_DOOR | ANITILE_FORWARD | ANITILE_EXISTINGTILE;
|
||||
AniParams.pGivenLevelNode = pNode;
|
||||
|
||||
AniParams.ubKeyFrame1 = pNode->sCurrentFrame + 2;
|
||||
|
||||
|
||||
AniParams.ubKeyFrame1 = pNode->sCurrentFrame + 2;
|
||||
|
||||
CreateAnimationTile( &AniParams );
|
||||
}
|
||||
}
|
||||
@@ -1327,7 +1326,7 @@ void SetDoorString( INT16 sGridNo )
|
||||
switch( pDoor->bPerceivedTrapped )
|
||||
{
|
||||
case DOOR_PERCEIVED_TRAPPED:
|
||||
|
||||
|
||||
wcscpy( gzIntTileLocation2, TacticalStr[ DOOR_TRAPPED_MOUSE_DESCRIPTION ] );
|
||||
gfUIIntTileLocation2 = TRUE;
|
||||
fTrapped = TRUE;
|
||||
@@ -1340,23 +1339,23 @@ void SetDoorString( INT16 sGridNo )
|
||||
switch( pDoor->bPerceivedLocked )
|
||||
{
|
||||
case DOOR_PERCEIVED_UNKNOWN:
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case DOOR_PERCEIVED_LOCKED:
|
||||
|
||||
|
||||
wcscpy( gzIntTileLocation2, TacticalStr[ DOOR_LOCKED_MOUSE_DESCRIPTION ] );
|
||||
gfUIIntTileLocation2 = TRUE;
|
||||
break;
|
||||
|
||||
case DOOR_PERCEIVED_UNLOCKED:
|
||||
|
||||
|
||||
wcscpy( gzIntTileLocation2, TacticalStr[ DOOR_UNLOCKED_MOUSE_DESCRIPTION ] );
|
||||
gfUIIntTileLocation2 = TRUE;
|
||||
break;
|
||||
|
||||
case DOOR_PERCEIVED_BROKEN:
|
||||
|
||||
|
||||
wcscpy( gzIntTileLocation2, TacticalStr[ DOOR_BROKEN_MOUSE_DESCRIPTION ] );
|
||||
gfUIIntTileLocation2 = TRUE;
|
||||
break;
|
||||
@@ -1364,7 +1363,7 @@ void SetDoorString( INT16 sGridNo )
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ATE: If here, we try to say, opened or closed...
|
||||
@@ -1457,4 +1456,4 @@ void SetDoorString( INT16 sGridNo )
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user