mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- bugfix: CTDs after you have placed your mercs before the attacking occurs
- added notification when you try to create a new IMP and you already have the maxium number of mercs (18) in your team. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@619 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1782,10 +1782,10 @@ INT8 AimMemberHireMerc()
|
||||
|
||||
//if we succesfully hired the merc
|
||||
bReturnCode = HireMerc( &HireMercStruct );
|
||||
if( bReturnCode == MERC_HIRE_OVER_20_MERCS_HIRED )
|
||||
if( bReturnCode == MERC_HIRE_OVER_18_MERCS_HIRED )
|
||||
{
|
||||
//display a warning saying u cant hire more then 20 mercs
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_20_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
//display a warning saying u cant hire more than 18 mercs
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_18_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
return(FALSE);
|
||||
}
|
||||
else if( bReturnCode == MERC_HIRE_FAILED )
|
||||
@@ -4167,10 +4167,10 @@ BOOLEAN QuickHireMerc()
|
||||
SetFlagToForceHireMerc( TRUE );
|
||||
bReturnCode = HireMerc( &HireMercStruct );
|
||||
SetFlagToForceHireMerc( FALSE );
|
||||
if( bReturnCode == MERC_HIRE_OVER_20_MERCS_HIRED )
|
||||
if( bReturnCode == MERC_HIRE_OVER_18_MERCS_HIRED )
|
||||
{
|
||||
//display a warning saying u cant hire more then 20 mercs
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_20_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
//display a warning saying u cant hire more than 18 mercs
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_18_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
return(FALSE);
|
||||
}
|
||||
else if( bReturnCode == MERC_HIRE_FAILED )
|
||||
|
||||
+29
-4
@@ -383,16 +383,27 @@ void HandleTextEvent( UINT32 uiKey )
|
||||
void ProcessPlayerInputActivationString( void )
|
||||
{
|
||||
// prcess string to see if it matches activation string
|
||||
|
||||
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
||||
return;
|
||||
|
||||
char charPlayerActivationString[32];
|
||||
wcstombs(charPlayerActivationString,pPlayerActivationString,32);
|
||||
|
||||
BOOLEAN freeMercSlot = TRUE;
|
||||
|
||||
// WANNE: Check total number of hired mercs
|
||||
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
||||
{
|
||||
freeMercSlot = FALSE;
|
||||
}
|
||||
|
||||
//Madd multiple imps if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) )&&( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
||||
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
||||
{
|
||||
// WANNE: Check total number of hired mercs
|
||||
if( freeMercSlot == FALSE )
|
||||
{
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_18_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetFilledIMPSlots(-1) < gGameExternalOptions.iMaxIMPCharacters)
|
||||
{
|
||||
// Kaiden: Need to reset skills, attributes and personalities with the new UB Method.
|
||||
@@ -408,6 +419,13 @@ void ProcessPlayerInputActivationString( void )
|
||||
//Madd multiple imps else if( ( wcscmp(pPlayerActivationString, L"90210") == 0 ) && ( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) )
|
||||
else if( wcscmp(pPlayerActivationString, L"90210") == 0 )
|
||||
{
|
||||
// WANNE: Check total number of hired mercs
|
||||
if( freeMercSlot == FALSE )
|
||||
{
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_18_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetFilledIMPSlots(-1) < gGameExternalOptions.iMaxIMPCharacters)
|
||||
{
|
||||
if (LoadImpCharacter( IMP_MERC_FILENAME ) == TRUE)
|
||||
@@ -424,6 +442,13 @@ void ProcessPlayerInputActivationString( void )
|
||||
// Madd: load characters by name
|
||||
else if ( ImpExists( charPlayerActivationString ) )
|
||||
{
|
||||
// WANNE: Check total number of hired mercs
|
||||
if( freeMercSlot == FALSE )
|
||||
{
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, AimPopUpText[ AIM_MEMBER_ALREADY_HAVE_18_MERCS ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetFilledIMPSlots(-1) < gGameExternalOptions.iMaxIMPCharacters)
|
||||
{
|
||||
if (LoadImpCharacter( charPlayerActivationString ) == TRUE)
|
||||
|
||||
@@ -650,7 +650,7 @@ BOOLEAN MercFilesHireMerc(UINT8 ubMercID)
|
||||
|
||||
bReturnCode = HireMerc( &HireMercStruct );
|
||||
//already have 20 mercs on the team
|
||||
if( bReturnCode == MERC_HIRE_OVER_20_MERCS_HIRED )
|
||||
if( bReturnCode == MERC_HIRE_OVER_18_MERCS_HIRED )
|
||||
{
|
||||
DoLapTopMessageBox( MSG_BOX_LAPTOP_DEFAULT, MercInfo[ MERC_FILES_HIRE_TO_MANY_PEOPLE_WARNING ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||
return(FALSE);
|
||||
|
||||
@@ -336,7 +336,7 @@ void StrategicPromoteMilitiaInSector(INT16 sMapX, INT16 sMapY, UINT8 ubCurrentRa
|
||||
SECTORINFO *pSectorInfo = &( SectorInfo[ SECTOR( sMapX, sMapY ) ] );
|
||||
|
||||
// damn well better have that many around to promote!
|
||||
Assert(pSectorInfo->ubNumberOfCivsAtLevel[ ubCurrentRank ] >= ubHowMany);
|
||||
//Assert(pSectorInfo->ubNumberOfCivsAtLevel[ ubCurrentRank ] >= ubHowMany);
|
||||
|
||||
//KM : July 21, 1999 patch fix
|
||||
if( pSectorInfo->ubNumberOfCivsAtLevel[ ubCurrentRank ] < ubHowMany )
|
||||
|
||||
@@ -1063,9 +1063,9 @@ UINT32 UIHandleNewMerc( UI_EVENT *pUIEvent )
|
||||
{
|
||||
ScreenMsg( FONT_ORANGE, MSG_BETAVERSION, L"Merc hire failed: Either already hired or dislikes you." );
|
||||
}
|
||||
else if( bReturnCode == MERC_HIRE_OVER_20_MERCS_HIRED )
|
||||
else if( bReturnCode == MERC_HIRE_OVER_18_MERCS_HIRED )
|
||||
{
|
||||
ScreenMsg( FONT_ORANGE, MSG_BETAVERSION, L"Can't hire more than 20 mercs." );
|
||||
ScreenMsg( FONT_ORANGE, MSG_BETAVERSION, L"Can't hire more than 18 mercs." );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -92,7 +92,7 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
|
||||
return( MERC_HIRE_FAILED );
|
||||
|
||||
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
||||
return( MERC_HIRE_OVER_20_MERCS_HIRED );
|
||||
return( MERC_HIRE_OVER_18_MERCS_HIRED );
|
||||
|
||||
// ATE: if we are to use landing zone, update to latest value
|
||||
// they will be updated again just before arrival...
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
// Used with the HireMerc function
|
||||
//
|
||||
#define MERC_HIRE_OVER_20_MERCS_HIRED -1
|
||||
#define MERC_HIRE_OVER_18_MERCS_HIRED -1
|
||||
#define MERC_HIRE_FAILED 0
|
||||
#define MERC_HIRE_OK 1
|
||||
|
||||
|
||||
@@ -2343,6 +2343,13 @@ void AddSoldierInitListMilitiaOnEdge( UINT8 ubStrategicInsertionCode, UINT8 ubNu
|
||||
UINT8 ubCurrSlot;
|
||||
UINT8 ubTotalSoldiers;
|
||||
UINT8 bDesiredDirection=0;
|
||||
|
||||
ubTotalSoldiers = ubNumGreen + ubNumReg + ubNumElites;
|
||||
|
||||
// WANNE: If we have no militia soldiers -> exit!
|
||||
if (ubTotalSoldiers == 0)
|
||||
return;
|
||||
|
||||
switch( ubStrategicInsertionCode )
|
||||
{
|
||||
case INSERTION_CODE_NORTH: bDesiredDirection = SOUTHEAST; break;
|
||||
@@ -2355,8 +2362,6 @@ void AddSoldierInitListMilitiaOnEdge( UINT8 ubStrategicInsertionCode, UINT8 ubNu
|
||||
ScreenMsg( FONT_RED, MSG_INTERFACE, L"Militia reinforcements have arrived! (%d admins, %d troops, %d elite)", ubNumGreen, ubNumReg, ubNumElites );
|
||||
#endif
|
||||
|
||||
ubTotalSoldiers = ubNumGreen + ubNumReg + ubNumElites;
|
||||
|
||||
ChooseMapEdgepoints( &MapEdgepointInfo, ubStrategicInsertionCode, (UINT8)(ubNumGreen + ubNumReg + ubNumElites) );
|
||||
ubCurrSlot = 0;
|
||||
while( ubTotalSoldiers )
|
||||
|
||||
+1
-1
@@ -987,7 +987,7 @@ enum
|
||||
AIM_MEMBER_LEAVE_MSG,
|
||||
AIM_MEMBER_DEAD,
|
||||
|
||||
AIM_MEMBER_ALREADY_HAVE_20_MERCS,
|
||||
AIM_MEMBER_ALREADY_HAVE_18_MERCS,
|
||||
|
||||
AIM_MEMBER_PRERECORDED_MESSAGE,
|
||||
AIM_MEMBER_MESSAGE_RECORDED,
|
||||
|
||||
Reference in New Issue
Block a user