Store the profile type in the profile structure and remove superfluous code

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8620 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2018-09-24 19:36:28 +00:00
parent 8ae2eacfcd
commit 494dbc6e69
41 changed files with 385 additions and 942 deletions
+7 -80
View File
@@ -1029,17 +1029,15 @@ BOOLEAN AddFacesToAutoBandageBox( void )
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ )
for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; ++iCounter )
{
// find a free slot
if( iDoctorList[ iCounter ] != -1 )
{
if( gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 )
{
// grab filename of face
if ((iDoctorList[ iCounter ] != -1) && ( gProfilesIMP[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ))
if ((iDoctorList[ iCounter ] != -1) && gMercProfiles[( Menptr[iDoctorList[iCounter]] ).ubProfile].Type == PROFILETYPE_IMP )
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
else
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
@@ -1047,56 +1045,20 @@ BOOLEAN AddFacesToAutoBandageBox( void )
else
{
// grab filename of face
if ((iDoctorList[ iCounter ] != -1) && ( gProfilesIMP[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ))
if ((iDoctorList[ iCounter ] != -1) && gMercProfiles[( Menptr[iDoctorList[iCounter]] ).ubProfile].Type == PROFILETYPE_IMP )
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
else
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
/*
if ( ( gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 ) && ( gProfilesIMP[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else if ( ( gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex > 99 ) && ( gProfilesIMP[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else if(( gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 ) && ( gProfilesIMP[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ProfilId == -1 ))
{
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else if(( gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex > 99 ) && ( gProfilesIMP[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ProfilId == -1 ))
{
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
if( gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 )
{
// grab filename of face
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else
{
// grab filename of face
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iDoctorList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
*/
// load the face
// AddVideoObject( &VObjectDesc, (UINT32 *)&giAutoBandagesSoldierFaces[ iCounter ] );
if( !AddVideoObject( &VObjectDesc, (UINT32 *)&giAutoBandagesSoldierFaces[ iCounter ] ) )
{
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\speck.sti" );
AddVideoObject( &VObjectDesc, (UINT32 *)&giAutoBandagesSoldierFaces[ iCounter ] );
}
iNumberOfDoctors++;
++iNumberOfDoctors;
}
}
@@ -1105,11 +1067,10 @@ BOOLEAN AddFacesToAutoBandageBox( void )
// find a free slot
if( iPatientList[ iCounter ] != -1 )
{
if( gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 )
{
// grab filename of face
if ((iPatientList[ iCounter ] != -1) && ( gProfilesIMP[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ))
if ((iPatientList[ iCounter ] != -1) && gMercProfiles[( Menptr[iPatientList[iCounter]] ).ubProfile].Type == PROFILETYPE_IMP )
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
else
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
@@ -1117,56 +1078,22 @@ BOOLEAN AddFacesToAutoBandageBox( void )
else
{
// grab filename of face
if ((iPatientList[ iCounter ] != -1) && ( gProfilesIMP[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ))
if ( (iPatientList[ iCounter ] != -1) && gMercProfiles[( Menptr[iPatientList[iCounter]] ).ubProfile].Type == PROFILETYPE_IMP )
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
else
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
/*
if ( ( gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 ) && ( gProfilesIMP[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else if ( ( gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex > 99 ) && ( gProfilesIMP[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ProfilId == ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFaces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else if(( gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 ) && ( gProfilesIMP[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ProfilId == -1 ))
{
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else if(( gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex > 99 ) && ( gProfilesIMP[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ProfilId == -1 ))
{
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
if( gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex < 100 )
{
// grab filename of face
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%02d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
else
{
// grab filename of face
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\%03d.sti", gMercProfiles[ ( Menptr[ iPatientList[ iCounter ] ] ).ubProfile ].ubFaceIndex );
}
*/
// load the face
// AddVideoObject( &VObjectDesc, (UINT32 *)&giAutoBandagesSoldierFaces[ iCounter + iNumberOfDoctors ] );
if( !AddVideoObject( &VObjectDesc, (UINT32 *)&giAutoBandagesSoldierFaces[ iCounter + iNumberOfDoctors ] ) )
{
sprintf( VObjectDesc.ImageFile, "Faces\\65Face\\speck.sti" );
AddVideoObject( &VObjectDesc, (UINT32 *)&giAutoBandagesSoldierFaces[ iCounter + iNumberOfDoctors ] );
}
}
}
// grab panels
// grab panels
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
sprintf( VObjectDesc.ImageFile, "Interface\\panels.sti" );
if( !AddVideoObject( &VObjectDesc, (UINT32 *)&giMercPanelImage ) )
+5 -5
View File
@@ -1352,19 +1352,18 @@ void HandleUnhiredMercDeaths( INT32 iProfileID )
// keep count of how many there have been
gStrategicStatus.ubUnhiredMercDeaths++;
//send an email as long as the merc is from aim
#ifdef JA2UB
//ja25 ub
if( gubQuest[ QUEST_FIX_LAPTOP ] == QUESTDONE || gGameUBOptions.LaptopQuestEnabled == FALSE )
{
if ( gProfilesAIM[ iProfileID ].ProfilId == iProfileID && gGameUBOptions.fDeadMerc == TRUE ) //new profiles by Jazz
if ( gMercProfiles[iProfileID].Type == PROFILETYPE_AIM && gGameUBOptions.fDeadMerc == TRUE ) //new profiles by Jazz
//send an email to the player telling the player that a merc died
AddEmailWithSpecialData(206, MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH, AIM_SITE, GetWorldTotalMin(), 0, iProfileID, TYPE_EMAIL_DEAD_MERC_AIM_SITE_EMAIL_JA2_EDT, TYPE_E_AIM_L1 );
}
#else
// if( iProfileID < BIFF )
if ( gProfilesAIM[ iProfileID ].ProfilId == iProfileID ) //new profiles by Jazz
if ( gMercProfiles[iProfileID].Type == PROFILETYPE_AIM )
{
//send an email to the player telling the player that a merc died
AddEmailWithSpecialData(MERC_DIED_ON_OTHER_ASSIGNMENT, MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH, AIM_SITE, GetWorldTotalMin(), 0, iProfileID, TYPE_EMAIL_EMAIL_EDT, TYPE_E_NONE );
@@ -2021,7 +2020,8 @@ void MERCMercWentUpALevelSendEmail( UINT8 ubMercMercIdValue )
pMerc = oMerc + 1;
else
pMerc = 0;
if ( gProfilesMERC[ubMercMercIdValue].ProfilId == ubMercMercIdValue )
if ( gMercProfiles[ubMercMercIdValue].Type == PROFILETYPE_MERC )
if( IsSpeckComAvailable() )// anv: only send level up email if Speck is available at website
AddEmailTypeXML( pMerc, iMerc, iMerc, GetWorldTotalMin(), -1 , TYPE_EMAIL_MERC_LEVEL_UP);
}
+4 -6
View File
@@ -2338,9 +2338,7 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN
sprintf( zFileName, "NPCDATA\\d_%03d.EDT", usVoiceSet );
}
}
//else if ( ubCharacterNum >= FIRST_RPC && ubCharacterNum < GASTON &&
//new profiles by Jazz
else if ( ( gProfilesRPC[ubCharacterNum].ProfilId == ubCharacterNum || gProfilesNPC[ubCharacterNum].ProfilId == ubCharacterNum ) && //|| gProfilesVehicle[ubCharacterNum].ProfilId == ubCharacterNum ) &&
else if ( ( gMercProfiles[ubCharacterNum].Type == PROFILETYPE_RPC || gMercProfiles[ubCharacterNum].Type == PROFILETYPE_NPC ) &&
( !( gMercProfiles[ ubCharacterNum ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED )
|| ProfileCurrentlyTalkingInDialoguePanel( ubCharacterNum )
|| (gMercProfiles[ ubCharacterNum ].ubMiscFlags & PROFILE_MISC_FLAG_FORCENPCQUOTE) )
@@ -2420,9 +2418,9 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN
if ( fWavFile )
{
#ifdef RUSSIAN
// if( ubCharacterNum >= FIRST_RPC && ubCharacterNum < GASTON && gMercProfiles[ ubCharacterNum ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED )
//new profiles by Jazz
if ( ( gProfilesRPC[ubCharacterNum].ProfilId == ubCharacterNum || gProfilesNPC[ubCharacterNum].ProfilId == ubCharacterNum || gProfilesVehicle[ubCharacterNum].ProfilId == ubCharacterNum ) && gMercProfiles[ ubCharacterNum ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED )
if ( ( gMercProfiles[ubCharacterNum].Type == PROFILETYPE_RPC ||
gMercProfiles[ubCharacterNum].Type == PROFILETYPE_NPC ||
gMercProfiles[ubCharacterNum].Type == PROFILETYPE_VEHICLE ) && gMercProfiles[ ubCharacterNum ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED )
{
//inshy: fix for UB-1.13 version only sprintf( zFileName,"SPEECH\\r_%03d_%03d.ogg",ubCharacterNum,usQuoteNum );
if ( gSoundProfileValue[ubCharacterNum].EnabledSound == TRUE )
+36 -119
View File
@@ -182,17 +182,15 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
{
iFaceFileID = 151;
}
// Check if we are a big-face....
if ( uiInitFlags & FACE_BIGFACE )
{
if ( ( iFaceFileID < 100 ) && ( gProfilesIMP[ usMercProfileID ].ProfilId == usMercProfileID ) )
{
if ( ( iFaceFileID < 100 ) && ( gMercProfiles[usMercProfileID].Type == PROFILETYPE_IMP ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\b%02d.sti", iFaceFileID );
}
else if ( ( iFaceFileID > 99 ) && ( gProfilesIMP[ usMercProfileID ].ProfilId == usMercProfileID ) )
else if ( ( iFaceFileID > 99 ) && ( gMercProfiles[usMercProfileID].Type == PROFILETYPE_IMP ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\b%03d.sti", iFaceFileID );
}
@@ -204,18 +202,7 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
{
sprintf( VObjectDesc.ImageFile, "FACES\\b%03d.sti", iFaceFileID );
}
/*
// The filename is the profile ID!
if( iFaceFileID < 100 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\b%02d.sti", iFaceFileID );
}
else
{
sprintf( VObjectDesc.ImageFile, "FACES\\b%03d.sti", iFaceFileID );
}
*/
// ATE: Check for profile - if elliot , use special face :)
if ( usMercProfileID == ELLIOT )
{
@@ -283,14 +270,11 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
}
else
{
if (gGameExternalOptions.fShowCamouflageFaces == TRUE )
{
if ( ( iFaceFileID < 100 ) && ( gProfilesIMP[ usMercProfileID ].ProfilId == usMercProfileID ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%02d.sti", iFaceFileID );
if ( ( iFaceFileID < 100 ) && ( gMercProfiles[usMercProfileID].Type == PROFILETYPE_IMP ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%02d.sti", iFaceFileID );
if ( gCamoFace[usMercProfileID].gCamoface == TRUE )
{
@@ -309,12 +293,12 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
sprintf( VObjectDesc.ImageFile, "IMPFACES\\SnowCamo\\%02d.sti", iFaceFileID );
}
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%02d.sti", iFaceFileID );
}
else if ( ( iFaceFileID > 99 ) && ( gProfilesIMP[ usMercProfileID ].ProfilId == usMercProfileID ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%03d.sti", iFaceFileID );
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%02d.sti", iFaceFileID );
}
else if ( ( iFaceFileID > 99 ) && ( gMercProfiles[usMercProfileID].Type == PROFILETYPE_IMP ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%03d.sti", iFaceFileID );
if ( gCamoFace[usMercProfileID].gCamoface == TRUE )
{
@@ -333,12 +317,12 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
sprintf( VObjectDesc.ImageFile, "IMPFACES\\SnowCamo\\%03d.sti", iFaceFileID );
}
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%03d.sti", iFaceFileID );
}
else if( iFaceFileID < 100 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%03d.sti", iFaceFileID );
}
else if( iFaceFileID < 100 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
if ( gCamoFace[usMercProfileID].gCamoface == TRUE )
{
@@ -357,64 +341,12 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
sprintf( VObjectDesc.ImageFile, "FACES\\SnowCamo\\%02d.sti", iFaceFileID );
}
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
}
else if( iFaceFileID > 99 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
if ( gCamoFace[usMercProfileID].gCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\Woodcamo\\%03d.sti", iFaceFileID );
}
else if ( gCamoFace[usMercProfileID].gUrbanCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\UrbanCamo\\%03d.sti", iFaceFileID );
}
else if ( gCamoFace[usMercProfileID].gDesertCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\DesertCamo\\%03d.sti", iFaceFileID );
}
else if ( gCamoFace[usMercProfileID].gSnowCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\SnowCamo\\%03d.sti", iFaceFileID );
}
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
}
/*
if( iFaceFileID < 100 )
{
// The filename is the profile ID!
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
if ( gCamoFace[usMercProfileID].gCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\WoodCamo\\%02d.sti", iFaceFileID );
}
else if ( gCamoFace[usMercProfileID].gUrbanCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\UrbanCamo\\%02d.sti", iFaceFileID );
}
else if ( gCamoFace[usMercProfileID].gDesertCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\DesertCamo\\%02d.sti", iFaceFileID );
}
else if ( gCamoFace[usMercProfileID].gSnowCamoface == TRUE )
{
sprintf( VObjectDesc.ImageFile, "FACES\\SnowCamo\\%02d.sti", iFaceFileID );
}
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
}
else
else if( iFaceFileID > 99 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
if ( gCamoFace[usMercProfileID].gCamoface == TRUE )
{
@@ -433,43 +365,28 @@ INT32 InternalInitFace( UINT8 usMercProfileID, UINT8 ubSoldierID, UINT32 uiInitF
sprintf( VObjectDesc.ImageFile, "FACES\\SnowCamo\\%03d.sti", iFaceFileID );
}
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
if (!FileExists(VObjectDesc.ImageFile))
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
}
*/
}
else if (gGameExternalOptions.fShowCamouflageFaces == FALSE )
{
if ( ( iFaceFileID < 100 ) && ( gProfilesIMP[ usMercProfileID ].ProfilId == usMercProfileID ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%02d.sti", iFaceFileID );
}
else if ( ( iFaceFileID > 99 ) && ( gProfilesIMP[ usMercProfileID ].ProfilId == usMercProfileID ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%03d.sti", iFaceFileID );
}
else if( iFaceFileID < 100 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
}
else if( iFaceFileID > 99 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
}
/*
if( iFaceFileID < 100 )
if ( ( iFaceFileID < 100 ) && ( gMercProfiles[usMercProfileID].Type == PROFILETYPE_IMP ) )
{
// The filename is the profile ID!
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%02d.sti", iFaceFileID );
}
else if ( ( iFaceFileID > 99 ) && ( gMercProfiles[usMercProfileID].Type == PROFILETYPE_IMP ) )
{
sprintf( VObjectDesc.ImageFile, "IMPFACES\\%03d.sti", iFaceFileID );
}
else if( iFaceFileID < 100 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%02d.sti", iFaceFileID );
}
else
else if( iFaceFileID > 99 )
{
sprintf( VObjectDesc.ImageFile, "FACES\\%03d.sti", iFaceFileID );
}
*/
}
}
@@ -1847,7 +1764,7 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
BOOLEAN isIMP = FALSE;
//IMP
if ( gProfilesIMP[ MercPtrs[ pFace->ubSoldierID ]->ubProfile ].ProfilId == MercPtrs[ pFace->ubSoldierID ]->ubProfile )
if ( gMercProfiles[MercPtrs[pFace->ubSoldierID]->ubProfile].Type == PROFILETYPE_IMP )
{
isIMP = TRUE;
}
+4 -4
View File
@@ -4767,14 +4767,14 @@ void SoldierGiveItemFromAnimation( SOLDIERTYPE *pSoldier )
// Switch on target...
// Are we a player dude.. ( target? )
// if ( ubProfile < FIRST_RPC || RPC_RECRUITED( pTSoldier ) || ubProfile >= GASTON )
//new profiles by Jazz
if ( ( gProfilesAIM[ubProfile].ProfilId == ubProfile || gProfilesMERC[ubProfile].ProfilId == ubProfile || gProfilesIMP[ubProfile].ProfilId == ubProfile ) || RPC_RECRUITED( pTSoldier ) )
if ( gMercProfiles[ubProfile].Type == PROFILETYPE_AIM ||
gMercProfiles[ubProfile].Type == PROFILETYPE_MERC ||
gMercProfiles[ubProfile].Type == PROFILETYPE_IMP ||
RPC_RECRUITED( pTSoldier ) )
{
fToTargetPlayer = TRUE;
}
if ( fToTargetPlayer )
{
// begin giving
+3 -4
View File
@@ -6149,15 +6149,14 @@ BOOLEAN IsValidTalkableNPC( UINT8 ubSoldierID, BOOLEAN fGive , BOOLEAN fAllowMer
}
}
// if ( pSoldier->ubProfile != NO_PROFILE && pSoldier->ubProfile >= FIRST_RPC && pSoldier->ubProfile < GASTON && !RPC_RECRUITED( pSoldier ) && !AM_AN_EPC( pSoldier ) )
//new profiles by Jazz
if ( pSoldier->ubProfile != NO_PROFILE && ( gProfilesRPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesNPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile ) && !RPC_RECRUITED( pSoldier ) && !AM_AN_EPC( pSoldier ) )
if ( pSoldier->ubProfile != NO_PROFILE && ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_RPC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_NPC ) && !RPC_RECRUITED( pSoldier ) && !AM_AN_EPC( pSoldier ) )
{
fValidGuy = TRUE;
}
// Check for EPC...
if ( pSoldier->ubProfile != NO_PROFILE && ( gCurrentUIMode == TALKCURSOR_MODE || fGive ) && AM_AN_EPC( pSoldier ) )
if ( pSoldier->ubProfile != NO_PROFILE && ( gCurrentUIMode == TALKCURSOR_MODE || fGive ) && AM_AN_EPC( pSoldier ) )
{
fValidGuy = TRUE;
}
+4 -3
View File
@@ -9256,9 +9256,10 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
EndItemPointer( );
// If we are giving it to somebody not on our team....
//if ( MercPtrs[ ubSoldierID ]->ubProfile < FIRST_RPC || MercPtrs[ubSoldierID]->ubProfile >= GASTON || RPC_RECRUITED( MercPtrs[ ubSoldierID ] ) )
//new profiles by Jazz
if ( gProfilesIMP[MercPtrs[ ubSoldierID ]->ubProfile].ProfilId == MercPtrs[ ubSoldierID ]->ubProfile || gProfilesAIM[MercPtrs[ ubSoldierID ]->ubProfile].ProfilId == MercPtrs[ ubSoldierID ]->ubProfile || gProfilesMERC[MercPtrs[ ubSoldierID ]->ubProfile].ProfilId == MercPtrs[ ubSoldierID ]->ubProfile || RPC_RECRUITED( MercPtrs[ ubSoldierID ] ) )
if ( gMercProfiles[MercPtrs[ubSoldierID]->ubProfile].Type == PROFILETYPE_AIM ||
gMercProfiles[MercPtrs[ubSoldierID]->ubProfile].Type == PROFILETYPE_MERC ||
gMercProfiles[MercPtrs[ubSoldierID]->ubProfile].Type == PROFILETYPE_IMP
|| RPC_RECRUITED( MercPtrs[ubSoldierID] ) )
{
}
+2 -33
View File
@@ -71,24 +71,16 @@ STR pbCarPortraitFileNames[ ]={
"INTERFACE\\Jeep.sti",
};
// load int he portraits for the car faces that will be use in mapscreen
BOOLEAN LoadCarPortraitValues( void )
{
VOBJECT_DESC VObjectDesc;
/*
if( giCarPortraits[ 0 ] != -1 )
{
return FALSE;
}
*/
for ( INT32 iCounter = 0; iCounter < NUM_PROFILES; ++iCounter )
{
// silversurfer: fixed to make sure that we only create objects for vehicles that have a face defined
// otherwise CHECKF will fail and return FALSE breaking the for loop and ignoring any further vehicles
if ( gProfilesVehicle[ iCounter ].ProfilId == iCounter && gNewVehicle[ iCounter ].szIconFace[0] != 0 )
if ( gMercProfiles[iCounter].Type == PROFILETYPE_VEHICLE && gNewVehicle[ iCounter ].szIconFace[0] != 0 )
{
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
strcpy( VObjectDesc.ImageFile, gNewVehicle[ iCounter ].szIconFace );
@@ -96,44 +88,21 @@ BOOLEAN LoadCarPortraitValues( void )
}
}
/*
for( iCounter = 0; iCounter < NUMBER_CAR_PORTRAITS; iCounter++ )
{
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
sprintf( VObjectDesc.ImageFile, pbCarPortraitFileNames[ iCounter ] );
CHECKF( AddVideoObject( &VObjectDesc, (UINT32 *)&giCarPortraits[ iCounter ] ) );
}*/
return( TRUE );
}
// get rid of the images we loaded for the mapscreen car portraits
void UnLoadCarPortraits( void )
{
// car protraits loaded?
/*
if( giCarPortraits[ 0 ] == -1 )
{
return;
}
for( iCounter = 0; iCounter < NUMBER_CAR_PORTRAITS; iCounter++ )
{
DeleteVideoObjectFromIndex( giCarPortraits[ iCounter ] );
giCarPortraits[ iCounter ] = -1;
}
*/
for ( INT32 iCounter = 0; iCounter < NUM_PROFILES; ++iCounter )
{
if ( gProfilesVehicle[ iCounter ].ProfilId == iCounter )
if ( gMercProfiles[iCounter].Type == PROFILETYPE_VEHICLE )
{
DeleteVideoObjectFromIndex( giCarPortraits[ iCounter ] );
}
}
}
void DrawLifeUIBarEx( SOLDIERTYPE *pSoldier, INT16 sXPos, INT16 sYPos, INT16 sWidth, INT16 sHeight, BOOLEAN fErase, UINT32 uiBuffer )
{
FLOAT dStart, dEnd, dPercentage;
+4 -3
View File
@@ -2042,9 +2042,10 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
mprintf( sX, sY, NameStr );
}
// if ( pSoldier->ubProfile < FIRST_RPC || pSoldier->ubProfile >= GASTON || RPC_RECRUITED( pSoldier ) || AM_AN_EPC( pSoldier ) || ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
//new profiles by Jazz
if ( gProfilesIMP[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesAIM[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesMERC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || RPC_RECRUITED( pSoldier ) || AM_AN_EPC( pSoldier ) || ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ))
if ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_AIM ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_MERC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_IMP
|| RPC_RECRUITED( pSoldier ) || AM_AN_EPC( pSoldier ) || ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
{
if ( gGameExternalOptions.ubShowHealthBarsOnHead )
{
+17 -26
View File
@@ -182,26 +182,22 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
#ifdef JA2UB
//JA25 UB
//MErc mercs come with an umbrella
if ( gProfilesMERC[ubCurrentSoldier].ProfilId == ubCurrentSoldier )
// if( ( ubCurrentSoldier >= 40 && ubCurrentSoldier <= 50 ) || ubCurrentSoldier == 58 /*GASTON*/ || ubCurrentSoldier == 59 /*STOGIE*/ )
if ( gMercProfiles[ubCurrentSoldier].Type == PROFILETYPE_MERC )
{
AddItemToMerc( iNewIndex, MERC_UMBRELLA ); //Data-1.13\TableData\Items\items.xml, uiIndex = 1361 or Data\TableData\Items\items.xml, uiIndex = 336
}
//if this is an AIM or MERC merc
if( gJa25SaveStruct.fHaveAimandMercOffferItems )
{
//if its an aim merc
//if( ubCurrentSoldier < 40 )
if ( gProfilesAIM[ubCurrentSoldier].ProfilId == ubCurrentSoldier )
if ( gMercProfiles[ubCurrentSoldier].Type == PROFILETYPE_AIM )
{
//give the mercs one of the promo items
AddItemToMerc( iNewIndex, SAM_GARVER_COMBAT_KNIFE ); //1353
}
// if its a merc merc
else if ( gProfilesMERC[ubCurrentSoldier].ProfilId == ubCurrentSoldier )
//else if( ubCurrentSoldier <= 50 || ubCurrentSoldier == 58 /*GASTON*/ || ubCurrentSoldier == 59 /*STOGIE*/ )
else if ( gMercProfiles[ubCurrentSoldier].Type == PROFILETYPE_MERC )
{
//give the mercs one of the promo items
AddItemToMerc( iNewIndex, CHE_GUEVARA_CANTEEN ); //1359
@@ -338,28 +334,24 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
if (!is_client)
{
//if we are trying to hire a merc that should arrive later, put the merc in the queue
if( pHireMerc->uiTimeTillMercArrives != 0 )
{
AddStrategicEvent( EVENT_DELAYED_HIRING_OF_MERC, pHireMerc->uiTimeTillMercArrives, pSoldier->ubID );
//if we are trying to hire a merc that should arrive later, put the merc in the queue
if( pHireMerc->uiTimeTillMercArrives != 0 )
{
AddStrategicEvent( EVENT_DELAYED_HIRING_OF_MERC, pHireMerc->uiTimeTillMercArrives, pSoldier->ubID );
//specify that the merc is hired but hasnt arrived yet
pMerc->bMercStatus = MERC_HIRED_BUT_NOT_ARRIVED_YET;
}
//specify that the merc is hired but hasnt arrived yet
pMerc->bMercStatus = MERC_HIRED_BUT_NOT_ARRIVED_YET;
}
}
else
{
if(is_client)send_hire( iNewIndex, ubCurrentSoldier, pHireMerc->iTotalContractLength, MercCreateStruct.fCopyProfileItemsOver );
//send off hire info to network, also avail possibility for net-game exclusive hired pSoldier changes...
if(is_client)send_hire( iNewIndex, ubCurrentSoldier, pHireMerc->iTotalContractLength, MercCreateStruct.fCopyProfileItemsOver );
//send off hire info to network, also avail possibility for net-game exclusive hired pSoldier changes...
}
//if the merc is an AIM merc
//if( ubCurrentSoldier < 40 )
if ( gProfilesAIM[ ubCurrentSoldier ].ProfilId == ubCurrentSoldier ) //new profiles by Jazz
if ( gMercProfiles[ubCurrentSoldier].Type == PROFILETYPE_AIM )
{
pSoldier->ubWhatKindOfMercAmI = MERC_TYPE__AIM_MERC;
//determine how much the contract is, and remember what type of contract he got
if( pHireMerc->iTotalContractLength == 1 )
@@ -386,8 +378,7 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
pSoldier->usMedicalDeposit = gMercProfiles[ pSoldier->ubProfile ].sMedicalDepositAmount;
}
//if the merc is from M.E.R.C.
//else if( ( ubCurrentSoldier >= BIFF && ubCurrentSoldier <= BUBBA ) || ubCurrentSoldier >= GASTON )
else if ( gProfilesMERC[ ubCurrentSoldier ].ProfilId == ubCurrentSoldier ) //new profiles by Jazz
else if ( gMercProfiles[ubCurrentSoldier].Type == PROFILETYPE_MERC )
{
pSoldier->ubWhatKindOfMercAmI = MERC_TYPE__MERC;
//pSoldier->iTotalContractCharge = -1;
@@ -400,8 +391,7 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
if(!is_client)AddHistoryToPlayersLog(HISTORY_HIRED_MERC_FROM_MERC, ubCurrentSoldier, GetWorldTotalMin(), -1, -1 );
}
//If the merc is from IMP, (ie a player character)
//else if( ( ubCurrentSoldier >= 51 ) && ( ubCurrentSoldier < 57 ) )
else if ( gProfilesIMP[ ubCurrentSoldier ].ProfilId == ubCurrentSoldier ) //new profiles by Jazz
else if ( gMercProfiles[ubCurrentSoldier].Type == PROFILETYPE_IMP )
{
pSoldier->ubWhatKindOfMercAmI = MERC_TYPE__PLAYER_CHARACTER;
//pSoldier->iTotalContractCharge = -1;
@@ -423,6 +413,7 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
CheckForFriendsofHated( pSoldier );
gfAtLeastOneMercWasHired = TRUE;
return( MERC_HIRE_OK );
}
+1 -1
View File
@@ -904,7 +904,7 @@ BOOLEAN EnterShopKeeperInterface()
gubArrayOfEmployedMercs[ gubNumberMercsInArray ] = pSoldier->ubProfile;
//Create the string for the face file name
if ( gProfilesIMP[ pSoldier->ubProfile ].ProfilId == pSoldier->ubProfile )
if ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_IMP )
{
sprintf( zTemp, "IMPFACES\\33FACE\\%02d.sti", gMercProfiles[ pSoldier->ubProfile ].ubFaceIndex );
}
+3 -3
View File
@@ -1659,9 +1659,9 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
SoldierGiveItemFromAnimation( pSoldier );
// if (pSoldier->ubProfile != NO_PROFILE && pSoldier->ubProfile >= FIRST_NPC )
//new profiles by Jazz
if (pSoldier->ubProfile != NO_PROFILE && (gProfilesNPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile ||
gProfilesRPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile ||
gProfilesVehicle[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile))
if (pSoldier->ubProfile != NO_PROFILE && ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_RPC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_NPC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_VEHICLE ) )
{
TriggerNPCWithGivenApproach( pSoldier->ubProfile, APPROACH_DONE_GIVING_ITEM, FALSE );
}
+6 -7
View File
@@ -1550,6 +1550,7 @@ void MERCPROFILESTRUCT::initialize( )
memset( &sDynamicOpinionLongTerm, 0, sizeof(sDynamicOpinionLongTerm) );
memset( &usVoiceIndex, 0, sizeof(UINT32) );
memset( &Type, 0, sizeof( UINT32 ) );
}
// Initialize the soldier.
@@ -10542,10 +10543,9 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
}
}
}
// if ((ubAttacker != NOBODY) && (Menptr[ubAttacker].bTeam == OUR_TEAM) && (this->ubProfile != NO_PROFILE) && (this->ubProfile >= FIRST_RPC && this->ubProfile < GASTON ))
//new profiles by Jazz
if ( (ubAttacker != NOBODY) && (Menptr[ubAttacker].bTeam == OUR_TEAM) && (this->ubProfile != NO_PROFILE) && gProfilesRPC[this->ubProfile].ProfilId == this->ubProfile || gProfilesNPC[this->ubProfile].ProfilId == this->ubProfile )
if ( (ubAttacker != NOBODY) && (Menptr[ubAttacker].bTeam == OUR_TEAM) && (this->ubProfile != NO_PROFILE) && gMercProfiles[this->ubProfile].Type == PROFILETYPE_RPC ||
gMercProfiles[this->ubProfile].Type == PROFILETYPE_NPC )
{
gMercProfiles[this->ubProfile].ubMiscFlags |= PROFILE_MISC_FLAG_WOUNDEDBYPLAYER;
if ( this->ubProfile == 114 )
@@ -12955,9 +12955,8 @@ void SOLDIERTYPE::EVENT_SoldierBeginFirstAid( INT32 sGridNo, UINT8 ubDirection )
// OK, check if we should play quote...
if ( pTSoldier->bTeam != gbPlayerNum )
{
// if ( pTSoldier->ubProfile != NO_PROFILE && pTSoldier->ubProfile >= FIRST_RPC && pTSoldier->ubProfile < GASTON && !RPC_RECRUITED( pTSoldier ) )
//new profiles by Jazz
if ( pTSoldier->ubProfile != NO_PROFILE && (gProfilesRPC[pTSoldier->ubProfile].ProfilId == pTSoldier->ubProfile || gProfilesNPC[pTSoldier->ubProfile].ProfilId == pTSoldier->ubProfile) && !RPC_RECRUITED( pTSoldier ) )
if ( pTSoldier->ubProfile != NO_PROFILE && !RPC_RECRUITED( pTSoldier ) && ( gMercProfiles[pTSoldier->ubProfile].Type == PROFILETYPE_RPC ||
gMercProfiles[pTSoldier->ubProfile].Type == PROFILETYPE_NPC ) )
{
fRefused = PCDoesFirstAidOnNPC( pTSoldier->ubProfile );
}
+4 -5
View File
@@ -2595,12 +2595,11 @@ void AddProfilesUsingProfileInsertionData()
//for( i = FIRST_RPC; i < ( PROF_HUMMER ); i++ )
//new profiles by Jazz
for( i = 0; i < NUM_PROFILES; i++ )
for( i = 0; i < NUM_PROFILES; ++i )
{
if ( gProfilesRPC[i].ProfilId == i || gProfilesNPC[i].ProfilId == i )
{
if ( gMercProfiles[i].Type == PROFILETYPE_RPC ||
gMercProfiles[i].Type == PROFILETYPE_NPC )
{
//Perform various checks to make sure the soldier is actually in the same sector, alive, and so on.
//More importantly, the flag to use profile insertion data must be set.
if( gMercProfiles[ i ].sSectorX != gWorldSectorX ||
+82 -308
View File
@@ -81,14 +81,8 @@
class OBJECTTYPE;
class SOLDIERTYPE;
//new profiles by Jazz-------------------------------
AIM_PROFIL gProfilesAIM[ NUM_PROFILES ];
MERC_PROFIL gProfilesMERC[ NUM_PROFILES ];
NPC_PROFIL gProfilesNPC[ NUM_PROFILES ];
RPC_PROFIL gProfilesRPC[ NUM_PROFILES ];
VEHICLE_PROFIL gProfilesVehicle[ NUM_PROFILES ];
IMP_PROFIL gProfilesIMP[NUM_PROFILES];
//---------------------------------------------------
// Flugente: why do we require 6 different structures and arrays if all we keep track of is the profile type? A simple array is enough
UINT8 gProfileType[NUM_PROFILES];
BOOLEAN gfPotentialTeamChangeDuringDeath = FALSE;
@@ -260,185 +254,36 @@ void DecideActiveTerrorists( void );
extern SOLDIERTYPE *gpSMCurrentMerc;
extern BOOLEAN gfRerenderInterfaceFromHelpText;
BOOLEAN SaveNewSystemMercsToSaveGameFile( HWFILE hFile );
BOOLEAN LoadNewSystemMercsToSaveGameFile( HWFILE hFile );
void InitNewProfiles();
// WANNE: This method is not needed anymore. All the stuff is done in the LoadMercProfiles() method.
void InitNewProfiles()
{
UINT32 uiProfileId = 0;
UINT32 i = 0;
UINT32 uiLoop;
//new profiles by Jazz
for( uiProfileId = 0; uiProfileId < NUM_PROFILES; uiProfileId++ )
{
gProfilesAIM[ uiProfileId ].ProfilId = -1;
gProfilesMERC[ uiProfileId ].ProfilId = -1;
gProfilesNPC[ uiProfileId ].ProfilId = -1;
gProfilesRPC[ uiProfileId ].ProfilId = -1;
gProfilesVehicle[ uiProfileId ].ProfilId = -1;
gProfilesIMP[ uiProfileId ].ProfilId = -1;
}
for( uiProfileId = 0; uiProfileId < 40; uiProfileId++ )
{
gProfilesAIM[ uiProfileId ].ProfilId = uiProfileId;
}
for( uiProfileId = 40; uiProfileId < 51; uiProfileId++ )
{
gProfilesMERC[ uiProfileId ].ProfilId = uiProfileId;
}
for( uiProfileId = FIRST_RPC; uiProfileId < FIRST_NPC; uiProfileId++ )
{
gProfilesRPC[ uiProfileId ].ProfilId = uiProfileId;
}
for( uiProfileId = FIRST_NPC; uiProfileId < 160; uiProfileId++ )
{
gProfilesNPC[ uiProfileId ].ProfilId = uiProfileId;
}
//IMP
gProfilesIMP[ 51 ].ProfilId = 51; //IMP Male
gProfilesIMP[ 52 ].ProfilId = 52; //IMP Male
gProfilesIMP[ 53 ].ProfilId = 53; //IMP Male
gProfilesIMP[ 54 ].ProfilId = 54; //IMP Female
gProfilesIMP[ 55 ].ProfilId = 55; //IMP Female
gProfilesIMP[ 56 ].ProfilId = 56; //IMP Female
//Vehicle
gProfilesVehicle[ 160 ].ProfilId = 160; //Hummer
gProfilesVehicle[ 161 ].ProfilId = 161; //El Dorado
gProfilesVehicle[ 162 ].ProfilId = 162; //Truck
gProfilesVehicle[ 163 ].ProfilId = 163; //HELICOPTER
gProfilesVehicle[ 164 ].ProfilId = 164; //TANK_CAR
//NPC
gProfilesNPC[ 169 ].ProfilId = 169; //none
//MERC
gProfilesMERC[ 165 ].ProfilId = 165; //Gaston
gProfilesMERC[ 166 ].ProfilId = 166; //Stogie
gProfilesMERC[ 167 ].ProfilId = 167; //Tex
gProfilesMERC[ 168 ].ProfilId = 168; //Beggins
for(uiLoop=0; uiLoop < 40; uiLoop++)
{
if ( gProfilesAIM[uiLoop].ProfilId == uiLoop )
{
AimMercArray[ i ] = uiLoop;
}
i++;
}
MAX_NUMBER_MERCS = 40;
START_MERC = 0;
if ( gGameExternalOptions.fReadProfileDataFromXML == TRUE )
{
for( uiProfileId = 0; uiProfileId < NUM_PROFILES; uiProfileId++ )
{
gProfilesAIM[ uiProfileId ].ProfilId = -1;
gProfilesMERC[ uiProfileId ].ProfilId = -1;
gProfilesNPC[ uiProfileId ].ProfilId = -1;
gProfilesRPC[ uiProfileId ].ProfilId = -1;
gProfilesVehicle[ uiProfileId ].ProfilId = -1;
gProfilesIMP[ uiProfileId ].ProfilId = -1;
}
}
//------------------------------------------------------------------------
}
BOOLEAN SaveNewSystemMercsToSaveGameFile( HWFILE hFile )
{
UINT32 uiNumBytesWritten;
FileWrite( hFile, &gProfilesAIM, sizeof( gProfilesAIM), &uiNumBytesWritten );
if( uiNumBytesWritten != sizeof( gProfilesAIM ) )
{
return( FALSE );
}
FileWrite( hFile, &gProfilesMERC, sizeof( gProfilesMERC), &uiNumBytesWritten );
if( uiNumBytesWritten != sizeof( gProfilesMERC ) )
{
return( FALSE );
}
FileWrite( hFile, &gProfilesNPC, sizeof( gProfilesNPC), &uiNumBytesWritten );
if( uiNumBytesWritten != sizeof( gProfilesNPC ) )
{
return( FALSE );
}
FileWrite( hFile, &gProfilesRPC, sizeof( gProfilesRPC), &uiNumBytesWritten );
if( uiNumBytesWritten != sizeof( gProfilesRPC ) )
{
return( FALSE );
}
FileWrite( hFile, &gProfilesVehicle, sizeof( gProfilesVehicle), &uiNumBytesWritten );
if( uiNumBytesWritten != sizeof( gProfilesVehicle ) )
{
return( FALSE );
}
FileWrite( hFile, &gProfilesIMP, sizeof( gProfilesIMP), &uiNumBytesWritten );
if( uiNumBytesWritten != sizeof( gProfilesIMP ) )
{
return( FALSE );
}
return( TRUE );
}
BOOLEAN LoadNewSystemMercsToSaveGameFile( HWFILE hFile )
{
// read the old data from the save file and store it in the new array while you're at it
UINT32 uiNumBytesRead;
FileRead( hFile, &gProfilesAIM, sizeof( gProfilesAIM), &uiNumBytesRead );
if( uiNumBytesRead != sizeof( gProfilesAIM ) )
{
return( FALSE );
}
FileRead( hFile, &gProfilesMERC, sizeof( gProfilesMERC), &uiNumBytesRead );
if( uiNumBytesRead != sizeof( gProfilesMERC ) )
{
return( FALSE );
}
FileRead( hFile, &gProfilesNPC, sizeof( gProfilesNPC), &uiNumBytesRead );
if( uiNumBytesRead != sizeof( gProfilesNPC ) )
{
return( FALSE );
}
FileRead( hFile, &gProfilesRPC, sizeof( gProfilesRPC), &uiNumBytesRead );
if( uiNumBytesRead != sizeof( gProfilesRPC ) )
{
return( FALSE );
}
FileRead( hFile, &gProfilesVehicle, sizeof( gProfilesVehicle), &uiNumBytesRead );
if( uiNumBytesRead != sizeof( gProfilesVehicle ) )
{
return( FALSE );
}
FileRead( hFile, &gProfilesIMP, sizeof( gProfilesIMP), &uiNumBytesRead );
if( uiNumBytesRead != sizeof( gProfilesIMP ) )
{
return( FALSE );
}
for ( int i = 0; i < NUM_PROFILES; ++i )
gProfileType[i] = PROFILETYPE_NONE;
typedef struct
{
UINT8 ProfilId;
} TMP_PROFIL;
TMP_PROFIL tmpprofilewedontreallyneed[NUM_PROFILES];
for ( int profiletype = PROFILETYPE_AIM; profiletype < PROFILETYPE_MAX; ++profiletype )
{
FileRead( hFile, &tmpprofilewedontreallyneed, sizeof( tmpprofilewedontreallyneed ), &uiNumBytesRead );
if ( uiNumBytesRead != sizeof( tmpprofilewedontreallyneed ) )
{
return( FALSE );
}
for ( int i = 0; i < NUM_PROFILES; ++i )
{
if ( tmpprofilewedontreallyneed[i].ProfilId == i )
gProfileType[i] = profiletype;
}
}
return( TRUE );
}
@@ -711,12 +556,7 @@ BOOLEAN LoadMercProfiles(void)
UINT32 uiLoop, uiLoop2;//, uiLoop3;
UINT16 usItem;//, usNewGun, usAmmo, usNewAmmo;
// ----- WANNE.PROFILE: New Profile Loading - BEGIN
//InitNewProfiles();
// ----- WANNE.PROFILE: New Profile Loading - END
if (gGameExternalOptions.fUseDifficultyBasedProfDat == TRUE)
{
switch ( gGameOptions.ubDifficultyLevel)
@@ -764,8 +604,7 @@ BOOLEAN LoadMercProfiles(void)
#endif
}
if( !fptr )
{
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("FAILED to LoadMercProfiles from file %s", pFileName) );
@@ -773,21 +612,16 @@ BOOLEAN LoadMercProfiles(void)
}
// Reset
for( int uiProfileId = 0; uiProfileId < NUM_PROFILES; uiProfileId++ )
{
gProfilesAIM[ uiProfileId ].ProfilId = -1;
gProfilesMERC[ uiProfileId ].ProfilId = -1;
gProfilesNPC[ uiProfileId ].ProfilId = -1;
gProfilesRPC[ uiProfileId ].ProfilId = -1;
gProfilesVehicle[ uiProfileId ].ProfilId = -1;
gProfilesIMP[ uiProfileId ].ProfilId = -1;
for( int uiProfileId = 0; uiProfileId < NUM_PROFILES; ++uiProfileId )
{
gProfileType[uiProfileId] = PROFILETYPE_NONE;
}
int profileIndex = -1;
for(uiLoop=0; uiLoop< NUM_PROFILES; uiLoop++)
for(uiLoop=0; uiLoop< NUM_PROFILES; ++uiLoop)
{
profileIndex++;
++profileIndex;
// Changed by ADB, rev 1513
//if( !gMercProfiles[uiLoop].Load(fptr, true))
@@ -816,6 +650,7 @@ BOOLEAN LoadMercProfiles(void)
gMercProfiles[uiLoop].iMercMercContractLength = 0;
gMercProfiles[uiLoop].usBackground = 0;
gMercProfiles[uiLoop].Type = PROFILETYPE_NONE;
memset( &gMercProfiles[uiLoop].usDynamicOpinionFlagmask, 0, sizeof(gMercProfiles[uiLoop].usDynamicOpinionFlagmask) );
@@ -1010,25 +845,25 @@ BOOLEAN LoadMercProfiles(void)
gMercProfiles[ uiLoop ].usApproachFactor[3] = 100;
}
}
// AIM und MERC ( 0 - 51 )
if (uiLoop < 51)
{
// AIM
if (uiLoop < 40)
{
gProfilesAIM[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_AIM;
}
// MERC
else
{
gProfilesMERC[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_MERC;
}
}
// IMP (51 - 56)
else if (uiLoop >= 51 && uiLoop < FIRST_RPC)
{
gProfilesIMP[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_IMP;
}
else
{
@@ -1041,7 +876,7 @@ BOOLEAN LoadMercProfiles(void)
case REGMALE:
case BIGMALE:
case REGFEMALE:
gProfilesMERC[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_MERC;
break;
// Vehicle
case HUMVEE:
@@ -1051,11 +886,11 @@ BOOLEAN LoadMercProfiles(void)
case ICECREAMTRUCK:
case JEEP:
case COMBAT_JEEP:
gProfilesVehicle[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_VEHICLE;
break;
// Make it an RPC
default:
gProfilesRPC[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_RPC;
break;
}
}
@@ -1064,7 +899,7 @@ BOOLEAN LoadMercProfiles(void)
// Last Index -> NPC
if (uiLoop == 169)
{
gProfilesNPC[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_NPC;
}
// NPC, RPC or Vehicle
else
@@ -1079,19 +914,19 @@ BOOLEAN LoadMercProfiles(void)
case ICECREAMTRUCK:
case JEEP:
case COMBAT_JEEP:
gProfilesVehicle[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_VEHICLE;
break;
// RPC or NPC
default:
// RPC
if (uiLoop >= FIRST_RPC && uiLoop < FIRST_NPC)
{
gProfilesRPC[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_RPC;
}
// NPC
else
{
gProfilesNPC[uiLoop].ProfilId = uiLoop;
gProfileType[uiLoop] = PROFILETYPE_NPC;
}
break;
}
@@ -1553,21 +1388,14 @@ void MakeRemainingAssassinsTougher( void )
void StartSomeMercsOnAssignment(void)
{
UINT32 uiCnt;
MERCPROFILESTRUCT *pProfile;
UINT32 uiChance;
// some randomly picked A.I.M. mercs will start off "on assignment" at the beginning of each new game
for( uiCnt = 0; uiCnt < NUM_PROFILES; uiCnt++) // AIM_AND_MERC_MERCS
for( UINT32 uiCnt = 0; uiCnt < NUM_PROFILES; ++uiCnt) // AIM_AND_MERC_MERCS
{
//new profiles by Jazz
if ( gProfilesAIM[ uiCnt ].ProfilId == (UINT8)uiCnt || gProfilesMERC[ uiCnt ].ProfilId == (UINT8)uiCnt )
if ( IsProfileIdAnAimOrMERCMerc( (UINT8)uiCnt ) )
{
if( !IsProfileIdAnAimOrMERCMerc( (UINT8)uiCnt ) )
{
continue;
}
pProfile = &(gMercProfiles[ uiCnt ]);
#ifdef JA2UB
//Make sure stigie and Gaston are available at the start of the game
@@ -2234,12 +2062,11 @@ BOOLEAN IsProfileAHeadMiner( UINT8 ubProfile )
void UpdateSoldierPointerDataIntoProfile( BOOLEAN fPlayerMercs )
{
UINT32 uiCount;
SOLDIERTYPE *pSoldier = NULL;
MERCPROFILESTRUCT * pProfile;
BOOLEAN fDoCopy = FALSE;
for( uiCount=0; uiCount < guiNumMercSlots; uiCount++)
for( UINT32 uiCount=0; uiCount < guiNumMercSlots; ++uiCount)
{
pSoldier = MercSlots[ uiCount ];
@@ -2252,18 +2079,18 @@ void UpdateSoldierPointerDataIntoProfile( BOOLEAN fPlayerMercs )
// If we are above player mercs
if ( fPlayerMercs )
{
//if ( pSoldier->ubProfile < FIRST_RPC || pSoldier->ubProfile >= GASTON )
//new profiles by Jazz
if ( gProfilesIMP[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesAIM[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesMERC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile)
if ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_AIM ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_MERC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_IMP )
{
fDoCopy = TRUE;
}
}
else
{
//if ( pSoldier->ubProfile >= FIRST_RPC && pSoldier->ubProfile < GASTON )
//new profiles by Jazz
if ( gProfilesRPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesNPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesVehicle[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile )
if ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_RPC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_NPC ||
gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_VEHICLE )
{
fDoCopy = TRUE;
}
@@ -2604,9 +2431,7 @@ BOOLEAN DoesNPCOwnBuilding( SOLDIERTYPE *pSoldier, INT32 sGridNo )
BOOLEAN IsProfileIdAnAimOrMERCMerc( UINT8 ubProfileID )
{
//if( ubProfileID < BIFF || ( ubProfileID >= BIFF && ubProfileID <= BUBBA ) || ubProfileID >= GASTON )
if( gProfilesAIM[ ubProfileID ].ProfilId == ubProfileID || gProfilesMERC[ ubProfileID ].ProfilId == ubProfileID )
if ( gMercProfiles[ ubProfileID ].Type == PROFILETYPE_AIM || gMercProfiles[ubProfileID].Type == PROFILETYPE_MERC )
{
return( TRUE );
}
@@ -2801,82 +2626,35 @@ void OverwriteMercProfileWithXMLData( UINT32 uiLoop )
gMercProfiles[ uiLoop ].bTownAttachment = tempProfiles[uiLoop].bTownAttachment;
gMercProfiles[ uiLoop ].usBackground = tempProfiles[uiLoop].usBackground;
gMercProfiles[ uiLoop ].usVoiceIndex = tempProfiles[uiLoop].usVoiceIndex;
//None
if ( tempProfiles[uiLoop].Type == 0 )
{
//Reset
gMercProfiles[ uiLoop ].sSectorX = 0;
gMercProfiles[ uiLoop ].sSectorY = 0;
gMercProfiles[ uiLoop ].bSectorZ = 0;
gMercProfiles[ uiLoop ].bTown = 0;
gMercProfiles[ uiLoop ].bTownAttachment = 0;
}
//AIM
if ( tempProfiles[uiLoop].Type == 1 )
{
gProfilesAIM[ uiLoop ].ProfilId = uiLoop;
//Reset
gMercProfiles[ uiLoop ].sSectorX = 0;
gMercProfiles[ uiLoop ].sSectorY = 0;
gMercProfiles[ uiLoop ].bSectorZ = 0;
gMercProfiles[ uiLoop ].bTown = 0;
gMercProfiles[ uiLoop ].bTownAttachment = 0;
}
//MERC
if ( tempProfiles[uiLoop].Type == 2 )
{
gProfilesMERC[ uiLoop ].ProfilId = uiLoop;
//Reset
gMercProfiles[ uiLoop ].sSectorX = 0;
gMercProfiles[ uiLoop ].sSectorY = 0;
gMercProfiles[ uiLoop ].bSectorZ = 0;
gMercProfiles[ uiLoop ].bTown = 0;
gMercProfiles[ uiLoop ].bTownAttachment = 0;
}
//RPC
if ( tempProfiles[uiLoop].Type == 3 )
{
gProfilesRPC[ uiLoop ].ProfilId = uiLoop;
}
//NPC
if ( tempProfiles[uiLoop].Type == 4 )
{
gProfilesNPC[ uiLoop ].ProfilId = uiLoop;
}
//Vehicle
if ( tempProfiles[uiLoop].Type == 5 )
{
gProfilesVehicle[ uiLoop ].ProfilId = uiLoop;
}
//IMP
if ( tempProfiles[uiLoop].Type == 6 )
{
gProfilesIMP[ uiLoop ].ProfilId = uiLoop;
//Reset
gMercProfiles[ uiLoop ].sSectorX = 0;
gMercProfiles[ uiLoop ].sSectorY = 0;
gMercProfiles[ uiLoop ].bSectorZ = 0;
gMercProfiles[ uiLoop ].bTown = 0;
gMercProfiles[ uiLoop ].bTownAttachment = 0;
}
gMercProfiles[ uiLoop ].Type = tempProfiles[uiLoop].Type;
gProfileType[uiLoop] = gMercProfiles[uiLoop].Type;
switch ( tempProfiles[uiLoop].Type )
{
case PROFILETYPE_RPC:
case PROFILETYPE_NPC:
case PROFILETYPE_VEHICLE:
break;
case PROFILETYPE_NONE:
case PROFILETYPE_AIM:
case PROFILETYPE_MERC:
case PROFILETYPE_IMP:
default:
//Reset
gMercProfiles[uiLoop].sSectorX = 0;
gMercProfiles[uiLoop].sSectorY = 0;
gMercProfiles[uiLoop].bSectorZ = 0;
gMercProfiles[uiLoop].bTown = 0;
gMercProfiles[uiLoop].bTownAttachment = 0;
break;
}
}
void OverwriteMercOpinionsWithXMLData( UINT32 uiLoop )
{
UINT8 cnt;
for (cnt=0; cnt< NUMBER_OF_OPINIONS; ++cnt )
for ( UINT8 cnt=0; cnt< NUMBER_OF_OPINIONS; ++cnt )
{
gMercProfiles[ uiLoop ].bMercOpinion[cnt] = tempProfiles[ uiLoop ].bMercOpinion[cnt] ;
}
@@ -2892,14 +2670,10 @@ INT8 CheckMercsNearForCharTraits( UINT8 ubProfileID, INT8 bCharTraitID )
BOOLEAN fOnlyOneException = FALSE;
pSoldier = FindSoldierByProfileID( ubProfileID, FALSE );
if (!pSoldier)
if (!pSoldier || !( pSoldier->bActive ) || !( pSoldier->bInSector ) )
{
return( -1 );
}
if( !(pSoldier->bActive) || !(pSoldier->bInSector) )
{
return( -1 );
}
for ( uiLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; uiLoop < gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; uiLoop++)
{
+13 -36
View File
@@ -41,47 +41,24 @@ extern MERCPROFILEGEAR gMercProfileGear[ NUM_PROFILES ][ NUM_MERCSTARTINGGEAR_KI
//use this to sort out the above define
BOOLEAN IsProfileIdAnAimOrMERCMerc( UINT8 ubProfileID );
//enums for the mercs
//new profiles by Jazz-------------------------------
typedef struct
//enums for the mercs
enum ProfileType
{
UINT8 ProfilId;
} AIM_PROFIL;
PROFILETYPE_NONE = 0,
PROFILETYPE_AIM,
PROFILETYPE_MERC,
PROFILETYPE_RPC,
PROFILETYPE_NPC,
PROFILETYPE_VEHICLE,
PROFILETYPE_IMP,
typedef struct
{
UINT8 ProfilId;
} MERC_PROFIL;
PROFILETYPE_MAX
};
typedef struct
{
UINT8 ProfilId;
} NPC_PROFIL;
// Flugente: why do we require 6 different structures and arrays if all we keep track of is the profile type? A simple array is enough (and only needed during loading anyway)
extern UINT8 gProfileType[NUM_PROFILES];
typedef struct
{
UINT8 ProfilId;
} RPC_PROFIL;
typedef struct
{
UINT8 ProfilId;
} VEHICLE_PROFIL;
typedef struct
{
UINT8 ProfilId;
} IMP_PROFIL;
extern AIM_PROFIL gProfilesAIM[ NUM_PROFILES ];
extern MERC_PROFIL gProfilesMERC[ NUM_PROFILES ];
extern NPC_PROFIL gProfilesNPC[ NUM_PROFILES ];
extern RPC_PROFIL gProfilesRPC[ NUM_PROFILES ];
extern VEHICLE_PROFIL gProfilesVehicle[ NUM_PROFILES ];
extern IMP_PROFIL gProfilesIMP[NUM_PROFILES];
extern BOOLEAN SaveNewSystemMercsToSaveGameFile( HWFILE hFile );
extern BOOLEAN LoadNewSystemMercsToSaveGameFile( HWFILE hFile );
//---------------------------------------------------
+2 -21
View File
@@ -1133,8 +1133,7 @@ BOOLEAN CopyVehiclePathToSoldier( SOLDIERTYPE *pSoldier )
return( FALSE );
}
}
// reset mvt group for the grunt
// ATE: NOT if we are the vehicle
if ( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
@@ -1155,31 +1154,13 @@ BOOLEAN CopyVehiclePathToSoldier( SOLDIERTYPE *pSoldier )
pSoldier->pMercPath = CopyPaths(pVehicleList[ iId ].pMercPath, pSoldier->pMercPath );
return( TRUE );
}
BOOLEAN IsVehicle(SOLDIERTYPE *pSoldier)
{
if ( gProfilesVehicle[ pSoldier->ubProfile ].ProfilId == pSoldier->ubProfile )
return(TRUE);
else
return(FALSE);
/*switch(pSoldier->ubProfile)
{
case PROF_HUMMER:
case PROF_ELDERODO:
case PROF_ICECREAM:
return(TRUE);
default:
return(FALSE);
}
return(FALSE);
*/
return ( gMercProfiles[pSoldier->ubProfile].Type == PROFILETYPE_VEHICLE );
}
BOOLEAN SetUpMvtGroupForVehicle( SOLDIERTYPE *pSoldier )
{
// given this grunt, find out if asscoiated vehicle has a mvt group, if so, set this grunts mvt group tho the vehicle
+3 -41
View File
@@ -350,8 +350,6 @@ profileEndElementHandle(void *userData, const XML_Char *name)
tempProfiles[pData->curIndex].bArmourAttractiveness = pData->curProfile.bArmourAttractiveness;
tempProfiles[pData->curIndex].bMainGunAttractiveness = pData->curProfile.bMainGunAttractiveness;
tempProfiles[pData->curIndex].Type = pData->curProfile.Type;
tempProfiles[pData->curIndex].sSectorX = pData->curProfile.sSectorX;
tempProfiles[pData->curIndex].sSectorY = pData->curProfile.sSectorY;
tempProfiles[pData->curIndex].bSectorZ = pData->curProfile.bSectorZ;
@@ -360,10 +358,10 @@ profileEndElementHandle(void *userData, const XML_Char *name)
tempProfiles[pData->curIndex].bTownAttachment = pData->curProfile.bTownAttachment;
tempProfiles[pData->curIndex].usBackground = pData->curProfile.usBackground;
tempProfiles[pData->curIndex].usVoiceIndex = pData->curProfile.usVoiceIndex;
tempProfiles[pData->curIndex].Type = pData->curProfile.Type;
tempProfiles[pData->curIndex].fGoodGuy = pData->curProfile.fGoodGuy;
memcpy( &(tempProfiles[pData->curIndex].usApproachFactor), &(pData->curProfile.usApproachFactor), 4 * sizeof (UINT16));
memcpy( &(tempProfiles[pData->curIndex].usApproachFactor), &(pData->curProfile.usApproachFactor), 4 * sizeof (UINT16));
}
else
{
@@ -1245,43 +1243,6 @@ BOOLEAN WriteMercProfiles()
FilePrintf(hFile,"\t\t<uiIndex>%d</uiIndex>\r\n", cnt);
if (cnt >= 0 && cnt < 40 )
{
FilePrintf(hFile,"\t\t<Type>1</Type>\r\n");
}
else if (cnt >= 40 && cnt < 51 )
{
FilePrintf(hFile,"\t\t<Type>2</Type>\r\n");
}
else if ( cnt >= FIRST_RPC && cnt < FIRST_NPC )
{
FilePrintf(hFile,"\t\t<Type>3</Type>\r\n");
}
else if ( cnt >= FIRST_NPC && cnt < 160 )
{
FilePrintf(hFile,"\t\t<Type>4</Type>\r\n");
}
else if ( cnt == 169 )
{
FilePrintf(hFile,"\t\t<Type>4</Type>\r\n");
}
else if ( cnt == 165 || cnt == 166 || cnt == 167 || cnt == 168 )
{
FilePrintf(hFile,"\t\t<Type>2</Type>\r\n");
}
else if ( cnt == 51 || cnt == 52 || cnt == 53 || cnt == 54 || cnt == 55 || cnt == 56 )
{
FilePrintf(hFile,"\t\t<Type>6</Type>\r\n");
}
else if ( cnt == 160 || cnt == 161 || cnt == 162 || cnt == 163 || cnt == 164 )
{
FilePrintf(hFile,"\t\t<Type>5</Type>\r\n");
}
else
{
FilePrintf(hFile,"\t\t<Type>0</Type>\r\n");
}
//////////////////////////////
// Write Character Name
@@ -1391,6 +1352,7 @@ BOOLEAN WriteMercProfiles()
//
FilePrintf(hFile,"\t\t<ubFaceIndex>%d</ubFaceIndex>\r\n", gMercProfiles[ cnt ].ubFaceIndex);
FilePrintf(hFile,"\t\t<Type>%d</Type>\r\n", gMercProfiles[cnt].Type );
FilePrintf(hFile,"\t\t<usVoiceIndex>%d</usVoiceIndex>\r\n", gMercProfiles[cnt].usVoiceIndex );
FilePrintf(hFile,"\t\t<usEyesX>%d</usEyesX>\r\n", gMercProfiles[ cnt ].usEyesX);
FilePrintf(hFile,"\t\t<usEyesY>%d</usEyesY>\r\n", gMercProfiles[ cnt ].usEyesY);
+6 -5
View File
@@ -4651,11 +4651,13 @@ void DebugSoldierPage3( )
SetFontShade(LARGEFONT1, FONT_SHADE_NEUTRAL);
gprintf( 150, LINE_HEIGHT * ubLine, L"%d", pSoldier->flags.fRTInNonintAnim );
ubLine++;
// OPIONION OF SELECTED MERC
//if ( gusSelectedSoldier != NOBODY && ( MercPtrs[ gusSelectedSoldier ]->ubProfile < FIRST_NPC ) && pSoldier->ubProfile != NO_PROFILE )
//new profiles by Jazz
if ( gusSelectedSoldier != NOBODY && ( gProfilesIMP[MercPtrs[ gusSelectedSoldier ]->ubProfile].ProfilId == MercPtrs[ gusSelectedSoldier ]->ubProfile || gProfilesRPC[MercPtrs[ gusSelectedSoldier ]->ubProfile].ProfilId == MercPtrs[ gusSelectedSoldier ]->ubProfile || gProfilesAIM[MercPtrs[ gusSelectedSoldier ]->ubProfile].ProfilId == MercPtrs[ gusSelectedSoldier ]->ubProfile || gProfilesMERC[MercPtrs[ gusSelectedSoldier ]->ubProfile].ProfilId == MercPtrs[ gusSelectedSoldier ]->ubProfile ) && pSoldier->ubProfile != NO_PROFILE )
if ( gusSelectedSoldier != NOBODY && pSoldier->ubProfile != NO_PROFILE && (
gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_AIM ||
gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_MERC ||
gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_RPC ||
gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_IMP ) )
{
SetFontShade(LARGEFONT1, FONT_SHADE_GREEN);
gprintf( 0, LINE_HEIGHT * ubLine, L"NPC Opinion:");
@@ -4664,7 +4666,6 @@ void DebugSoldierPage3( )
gprintf( 150, LINE_HEIGHT * ubLine, L"%d", gMercProfiles[ pSoldier->ubProfile ].bMercOpinion[ MercPtrs[ gusSelectedSoldier ]->ubProfile ] );
ubLine++;
}
}
else if ( GetMouseMapPos( &usMapPos ) )
{
+3
View File
@@ -972,6 +972,9 @@ public:
// Flugente: voice set used
UINT32 usVoiceIndex;
// Flugente: type of profile
UINT32 Type;
}; // MERCPROFILESTRUCT;
// WANNE - BMP: DONE!