Convert Soldier Find.cpp to SoldierID

This commit is contained in:
Asdow
2024-11-14 00:45:50 +02:00
parent 0103a871cc
commit 1345d92521
12 changed files with 95 additions and 100 deletions
+6 -6
View File
@@ -272,12 +272,12 @@ extern BOOLEAN gfGetNewPathThroughPeople;
extern BOOLEAN gfIgnoreOnSelectedGuy;
extern BOOLEAN gfInOpenDoorMenu;
BOOLEAN gfUIFullTargetFound;
UINT32 guiUIFullTargetFlags;
UINT16 gusUIFullTargetID;
BOOLEAN gfUISelectiveTargetFound;
UINT32 guiUISelectiveTargetFlags;
UINT16 gusUISelectiveTargetID;
BOOLEAN gfUIFullTargetFound;
UINT32 guiUIFullTargetFlags;
SoldierID gusUIFullTargetID;
BOOLEAN gfUISelectiveTargetFound;
UINT32 guiUISelectiveTargetFlags;
SoldierID gusUISelectiveTargetID;
SOLDIERTYPE *gpRequesterMerc = NULL;
SOLDIERTYPE *gpRequesterTargetMerc = NULL;
+8 -8
View File
@@ -268,16 +268,16 @@ extern BOOLEAN gfUIHandlePhysicsTrajectory;
// GLOBALS FOR FAST LOOKUP FOR FINDING MERCS FROM THE MOUSE
extern BOOLEAN gfUISelectiveTargetFound;
extern UINT16 gusUISelectiveTargetID;
extern UINT32 guiUISelectiveTargetFlags;
extern BOOLEAN gfUISelectiveTargetFound;
extern SoldierID gusUISelectiveTargetID;
extern UINT32 guiUISelectiveTargetFlags;
extern BOOLEAN gfUIFullTargetFound;
extern UINT16 gusUIFullTargetID;
extern UINT32 guiUIFullTargetFlags;
extern BOOLEAN gfUIFullTargetFound;
extern SoldierID gusUIFullTargetID;
extern UINT32 guiUIFullTargetFlags;
extern BOOLEAN gfUIConfirmExitArrows;
extern INT32 gsJumpOverGridNo;
extern INT32 gsJumpOverGridNo;
extern UINT32 HandleTacticalUI(void);
extern UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent );
@@ -382,4 +382,4 @@ void GetGridNoScreenXY( INT32 sGridNo, INT16 *pScreenX, INT16 *pScreenY );
//Legion by Jazz
void GetMercOknoDirection( UINT8 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp );
#endif
#endif
+2 -2
View File
@@ -5482,7 +5482,7 @@ INT32 FindAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pubDirect
INT32 sClosest = -1, sSpot;
INT32 sCloseGridNo = NOWHERE;
UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
UINT8 ubDir;
STRUCTURE *pDoor;
UINT8 ubWallOrientation;
@@ -5845,7 +5845,7 @@ INT32 FindNextToAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pub
INT32 sClosest = -1, sSpot, sSpot2;
INT32 sCloseGridNo = NOWHERE;
UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
UINT8 ubDir;
STRUCTURE *pDoor;
UINT8 ubWallOrientation;
+1 -1
View File
@@ -260,7 +260,7 @@ INT32 FindNextToAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pub
void SelectNextAvailSoldier( SOLDIERTYPE *pSoldier );
BOOLEAN TeamMemberNear(INT8 bTeam, INT32 sGridNo, INT32 iRange);
BOOLEAN IsValidTargetMerc( UINT16 ubSoldierID );
BOOLEAN IsValidTargetMerc( SoldierID ubSoldierID );
// FUNCTIONS FOR MANIPULATING MERC SLOTS - A LIST OF ALL ACTIVE MERCS
INT32 GetFreeMercSlot( );
+2 -2
View File
@@ -2006,7 +2006,7 @@ void GetAPChargeForShootOrStabWRTGunRaises( SOLDIERTYPE *pSoldier, INT32 sGridNo
{
UINT8 ubDirection;
UINT32 uiMercFlags;
UINT16 usTargID;
SoldierID usTargID;
BOOLEAN fAddingTurningCost = FALSE;
BOOLEAN fAddingRaiseGunCost = FALSE;
@@ -2189,7 +2189,7 @@ UINT16 CalculateRaiseGunCost(SOLDIERTYPE *pSoldier, BOOLEAN fAddingRaiseGunCost,
INT16 MinAPsToShootOrStab(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 bAimTime, UINT8 ubAddTurningCost, UINT8 ubForceRaiseGunCost )
{
UINT32 uiMercFlags;
UINT16 usTargID;
SoldierID usTargID;
INT16 bFullAPs;
INT16 bAimSkill;
INT16 bAPCost = APBPConstants[AP_MIN_AIM_ATTACK];
+1 -1
View File
@@ -180,7 +180,7 @@ void GetRTMouseButtonInput( UINT32 *puiNewEvent )
void QueryRTLeftButton( UINT32 *puiNewEvent )
{
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
SOLDIERTYPE *pSoldier;
SOLDIERTYPE *pVehicle;
UINT32 uiMercFlags;
+1 -1
View File
@@ -2046,7 +2046,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
{
SOLDIERTYPE *pTSoldier;
UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
if ( FindSoldier( pSoldier->sTargetGridNo, &usSoldierIndex, &uiMercFlags, FIND_SOLDIER_GRIDNO ) )
{
+1 -1
View File
@@ -13269,7 +13269,7 @@ void SOLDIERTYPE::EVENT_SoldierEnterVehicle( INT32 sGridNo, UINT8 ubDirection, U
{
SOLDIERTYPE *pTSoldier;
UINT32 uiMercFlags;
UINT16 usSoldierIndex;
SoldierID usSoldierIndex;
if ( FindSoldier( sGridNo, &usSoldierIndex, &uiMercFlags, FIND_SOLDIER_GRIDNO ) )
{
+43 -48
View File
@@ -46,11 +46,8 @@ BOOLEAN IsGridNoInScreenRect( INT32 sGridNo, SGPRect *pRect );
BOOLEAN IsPointInScreenRect( INT16 sXPos, INT16 sYPos, SGPRect *pRect );
void GetSoldierScreenRect( SOLDIERTYPE *pSoldier, SGPRect *pRect );
// This value is used to keep a small static array of uBID's which are stacked
#define MAX_STACKED_MERCS 10
UINT32 gScrollSlideInertiaDirection[ NUM_WORLD_DIRECTIONS ] =
UINT32 gScrollSlideInertiaDirection[ NUM_WORLD_DIRECTIONS ] =
{
3,
0,
@@ -62,25 +59,29 @@ UINT32 gScrollSlideInertiaDirection[ NUM_WORLD_DIRECTIONS ] =
3,
};
// This value is used to keep a small static array of uBID's which are stacked
#define MAX_STACKED_MERCS 10
// Struct used for cycling through multiple mercs per mouse position
typedef struct
{
INT8 bNum;
UINT16 ubIDs[ MAX_STACKED_MERCS ];
SoldierID ubIDs[ MAX_STACKED_MERCS ];
INT8 bCur;
BOOLEAN fUseGridNo;
INT32 sUseGridNoGridNo;
} SOLDIER_STACK_TYPE;
SOLDIER_STACK_TYPE gSoldierStack;
BOOLEAN gfHandleStack = FALSE;
SOLDIER_STACK_TYPE gSoldierStack;
BOOLEAN gfHandleStack = FALSE;
extern BOOLEAN gUIActionModeChangeDueToMouseOver;
extern UINT32 guiUITargetSoldierId;
extern BOOLEAN gUIActionModeChangeDueToMouseOver;
extern UINT32 guiUITargetSoldierId;
BOOLEAN FindSoldierFromMouse( UINT16 *pusSoldierIndex, UINT32 *pMercFlags )
BOOLEAN FindSoldierFromMouse( SoldierID *pusSoldierIndex, UINT32 *pMercFlags )
{
INT32 usMapPos;
@@ -97,7 +98,7 @@ BOOLEAN FindSoldierFromMouse( UINT16 *pusSoldierIndex, UINT32 *pMercFlags )
return( FALSE );
}
BOOLEAN SelectiveFindSoldierFromMouse( UINT16 *pusSoldierIndex, UINT32 *pMercFlags )
BOOLEAN SelectiveFindSoldierFromMouse( SoldierID *pusSoldierIndex, UINT32 *pMercFlags )
{
INT32 usMapPos;
@@ -115,7 +116,7 @@ BOOLEAN SelectiveFindSoldierFromMouse( UINT16 *pusSoldierIndex, UINT32 *pMercFla
}
UINT32 GetSoldierFindFlags( UINT16 ubID )
UINT32 GetSoldierFindFlags( const SoldierID ubID )
{
UINT32 MercFlags = 0;
SOLDIERTYPE *pSoldier;
@@ -123,7 +124,7 @@ UINT32 GetSoldierFindFlags( UINT16 ubID )
// Get pSoldier!
pSoldier = MercPtrs[ ubID ];
// FInd out and set flags
// Find out and set flags
if ( ubID == gusSelectedSoldier )
{
MercFlags |= SELECTED_MERC;
@@ -136,12 +137,12 @@ UINT32 GetSoldierFindFlags( UINT16 ubID )
}
else
{
// It's our own merc
MercFlags |= OWNED_MERC;
// It's our own merc
MercFlags |= OWNED_MERC;
if ( pSoldier->bAssignment < ON_DUTY )
{
MercFlags |= ONDUTY_MERC;
MercFlags |= ONDUTY_MERC;
}
}
}
@@ -191,20 +192,20 @@ extern BOOLEAN CheckVideoObjectScreenCoordinateInData( HVOBJECT hSrcVObject, UIN
// THIS FUNCTION IS CALLED FAIRLY REGULARLY
BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags, UINT32 uiFlags )
BOOLEAN FindSoldier( INT32 sGridNo, SoldierID *pusSoldierIndex, UINT32 *pMercFlags, UINT32 uiFlags )
{
UINT32 cnt;
UINT32 cnt;
SOLDIERTYPE *pSoldier;
SGPRect aRect;
BOOLEAN fSoldierFound = FALSE;
INT16 sXMapPos, sYMapPos, sScreenX, sScreenY;
INT16 sMaxScreenMercY, sHeighestMercScreenY = -32000;
BOOLEAN fDoFull;
UINT16 ubBestMerc = NOBODY;
UINT16 usAnimSurface;
INT32 iMercScreenX, iMercScreenY;
BOOLEAN fInScreenRect = FALSE;
BOOLEAN fInGridNo = FALSE;
SGPRect aRect;
BOOLEAN fSoldierFound = FALSE;
INT16 sXMapPos, sYMapPos, sScreenX, sScreenY;
INT16 sMaxScreenMercY, sHeighestMercScreenY = -32000;
BOOLEAN fDoFull;
SoldierID ubBestMerc = NOBODY;
UINT16 usAnimSurface;
INT32 iMercScreenX, iMercScreenY;
BOOLEAN fInScreenRect = FALSE;
BOOLEAN fInGridNo = FALSE;
*pusSoldierIndex = NOBODY;
@@ -227,8 +228,8 @@ BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags,
for ( cnt = 0; cnt < guiNumMercSlots; cnt++ )
{
pSoldier = MercSlots[ cnt ];
fInScreenRect = FALSE;
fInGridNo = FALSE;
fInScreenRect = FALSE;
fInGridNo = FALSE;
if ( pSoldier != NULL )
{
@@ -339,7 +340,7 @@ BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags,
if ( usAnimSurface != INVALID_ANIMATION_SURFACE )
{
iMercScreenX = (INT32)( sScreenX - aRect.iLeft );
iMercScreenY = (INT32)( -1 * ( sScreenY - aRect.iBottom ) );
iMercScreenY = (INT32)( -1 * ( sScreenY - aRect.iBottom ) );
if ( !CheckVideoObjectScreenCoordinateInData( gAnimSurfaceDatabase[ usAnimSurface ].hVideoObject, pSoldier->usAniFrame, iMercScreenX, iMercScreenY ) )
{
@@ -359,7 +360,7 @@ BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags,
{
gfHandleStack = TRUE;
// Add this one!
// Add this one!
gSoldierStack.ubIDs[ gSoldierStack.bNum ] = pSoldier->ubID;
gSoldierStack.bNum++;
@@ -430,7 +431,7 @@ BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags,
if ( fSoldierFound && ubBestMerc != NOBODY )
{
*pusSoldierIndex = (UINT16)ubBestMerc;
*pusSoldierIndex = ubBestMerc;
(*pMercFlags) = GetSoldierFindFlags( ubBestMerc );
@@ -460,8 +461,8 @@ BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags,
BOOLEAN CycleSoldierFindStack( INT32 usMapPos )
{
UINT16 usSoldierIndex;
UINT32 uiMercFlags;
SoldierID usSoldierIndex;
UINT32 uiMercFlags;
// Have we initalized for this yet?
if ( !gfHandleStack )
@@ -521,10 +522,9 @@ BOOLEAN CycleSoldierFindStack( INT32 usMapPos )
SOLDIERTYPE * SimpleFindSoldier( INT32 sGridNo, INT8 bLevel )
{
UINT16 ubID;
SoldierID ubID = WhoIsThere2( sGridNo, bLevel );
ubID = WhoIsThere2( sGridNo, bLevel );
if ( ubID == NOBODY )
if ( ubID >= NOBODY )
{
return( NULL );
}
@@ -534,7 +534,7 @@ SOLDIERTYPE * SimpleFindSoldier( INT32 sGridNo, INT8 bLevel )
}
}
BOOLEAN IsValidTargetMerc( UINT16 ubSoldierID )
BOOLEAN IsValidTargetMerc( SoldierID ubSoldierID )
{
SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ];
@@ -785,14 +785,9 @@ BOOLEAN GridNoOnScreen( INT32 sGridNo )
}
BOOLEAN SoldierOnScreen( UINT16 usID )
BOOLEAN SoldierOnScreen( SoldierID usID )
{
SOLDIERTYPE *pSoldier;
// Get pointer of soldier
pSoldier = MercPtrs[ usID ];
return( GridNoOnScreen( pSoldier->sGridNo ) );
return( GridNoOnScreen( usID->sGridNo ) );
}
@@ -1006,7 +1001,7 @@ BOOLEAN FindRelativeSoldierPosition( SOLDIERTYPE *pSoldier, UINT16 *usFlags, INT
}
// VERY quickly finds a soldier at gridno , ( that is visible )
UINT16 QuickFindSoldier( INT32 sGridNo )
SoldierID QuickFindSoldier( INT32 sGridNo )
{
UINT32 cnt;
SOLDIERTYPE *pSoldier = NULL;
@@ -1020,7 +1015,7 @@ UINT16 QuickFindSoldier( INT32 sGridNo )
{
if ( pSoldier->sGridNo == sGridNo && pSoldier->bVisible != -1 )
{
return( (UINT16)cnt );
return( cnt );
}
}
+6 -6
View File
@@ -30,16 +30,16 @@ class SOLDIERTYPE;
#define FINDSOLDIERSELECTIVESAMELEVEL( l ) ( ( ( FIND_SOLDIER_SELECTIVE | FIND_SOLDIER_SAMELEVEL ) | ( l << 16 ) ) )
BOOLEAN FindSoldierFromMouse( UINT16 *pusSoldierIndex, UINT32 *pMercFlags );
BOOLEAN SelectiveFindSoldierFromMouse( UINT16 *pusSoldierIndex, UINT32 *pMercFlags );
BOOLEAN FindSoldier( INT32 sGridNo, UINT16 *pusSoldierIndex, UINT32 *pMercFlags , UINT32 uiFlags );
BOOLEAN FindSoldierFromMouse( SoldierID *pusSoldierIndex, UINT32 *pMercFlags );
BOOLEAN SelectiveFindSoldierFromMouse( SoldierID *pusSoldierIndex, UINT32 *pMercFlags );
BOOLEAN FindSoldier( INT32 sGridNo, SoldierID *pusSoldierIndex, UINT32 *pMercFlags , UINT32 uiFlags );
SOLDIERTYPE * SimpleFindSoldier( INT32 sGridNo, INT8 bLevel );
BOOLEAN CycleSoldierFindStack( INT32 usMapPos );
BOOLEAN GridNoOnScreen( INT32 sGridNo );
BOOLEAN SoldierOnScreen( UINT16 usID );
BOOLEAN SoldierOnScreen( SoldierID usID );
BOOLEAN SoldierLocationRelativeToScreen( INT32 sGridNo, UINT16 usReasonID, INT8 *pbDirection, UINT32 *puiScrollFlags );
void GetSoldierScreenPos( SOLDIERTYPE *pSoldier, INT16 *psScreenX, INT16 *psScreenY );
void GetSoldierAnimDims( SOLDIERTYPE *pSoldier, INT16 *psHeight, INT16 *psWidth );
@@ -48,9 +48,9 @@ void GetSoldierTRUEScreenPos( SOLDIERTYPE *pSoldier, INT16 *psScreenX, INT16 *ps
BOOLEAN IsPointInSoldierBoundingBox( SOLDIERTYPE *pSoldier, INT16 sX, INT16 sY );
BOOLEAN FindRelativeSoldierPosition( SOLDIERTYPE *pSoldier, UINT16 *usFlags, INT16 sX, INT16 sY );
UINT16 QuickFindSoldier( INT32 sGridNo );
SoldierID QuickFindSoldier( INT32 sGridNo );
void GetGridNoScreenPos( INT32 sGridNo, UINT8 ubLevel, INT16 *psScreenX, INT16 *psScreenY );
#endif
#endif
+23 -23
View File
@@ -3985,11 +3985,11 @@ extern UINT32 guiNumBackSaves;
void DebugSoldierPage1( )
{
SOLDIERTYPE *pSoldier;
UINT16 usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
UINT8 ubLine=0;
SOLDIERTYPE *pSoldier;
SoldierID usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
UINT8 ubLine=0;
if ( FindSoldierFromMouse( &usSoldierIndex, &uiMercFlags ) )
{
@@ -4168,13 +4168,13 @@ void DebugSoldierPage1( )
void DebugSoldierPage2( )
{
SOLDIERTYPE *pSoldier;
UINT16 usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
TILE_ELEMENT TileElem;
LEVELNODE *pNode;
UINT8 ubLine;
SOLDIERTYPE *pSoldier;
SoldierID usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
TILE_ELEMENT TileElem;
LEVELNODE *pNode;
UINT8 ubLine;
if ( FindSoldierFromMouse( &usSoldierIndex, &uiMercFlags ) )
{
@@ -4442,11 +4442,11 @@ void DebugSoldierPage2( )
void DebugSoldierPage3( )
{
SOLDIERTYPE *pSoldier;
UINT16 usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
UINT8 ubLine;
SOLDIERTYPE *pSoldier;
SoldierID usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
UINT8 ubLine;
if ( FindSoldierFromMouse( &usSoldierIndex, &uiMercFlags ) )
{
@@ -4835,12 +4835,12 @@ void WriteQuantityAndAttachments( OBJECTTYPE *pObject, INT32 yp )
void DebugSoldierPage4( )
{
SOLDIERTYPE *pSoldier;
UINT32 uiMercFlags;
CHAR16 szOrders[20];
CHAR16 szAttitude[20];
UINT16 usSoldierIndex;
UINT8 ubLine;
SOLDIERTYPE *pSoldier;
UINT32 uiMercFlags;
CHAR16 szOrders[20];
CHAR16 szAttitude[20];
SoldierID usSoldierIndex;
UINT8 ubLine;
if ( FindSoldierFromMouse( &usSoldierIndex, &uiMercFlags ) )
{