mirror of
https://github.com/1dot13/source.git
synced 2026-08-19 14:20:30 +02:00
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:
@@ -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 ) )
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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] ) )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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 );
|
||||
}
|
||||
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ) )
|
||||
{
|
||||
|
||||
@@ -972,6 +972,9 @@ public:
|
||||
|
||||
// Flugente: voice set used
|
||||
UINT32 usVoiceIndex;
|
||||
|
||||
// Flugente: type of profile
|
||||
UINT32 Type;
|
||||
}; // MERCPROFILESTRUCT;
|
||||
|
||||
// WANNE - BMP: DONE!
|
||||
|
||||
Reference in New Issue
Block a user