mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
- The number of possible IMP voices is no lnger limited
- If no IMP voices could be read, IMP creation is not allowed git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8368 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -60,9 +60,7 @@ typedef struct
|
|||||||
BOOLEAN exists; // set upon reading the xml: this voice exists
|
BOOLEAN exists; // set upon reading the xml: this voice exists
|
||||||
} IMP_VOICESET;
|
} IMP_VOICESET;
|
||||||
|
|
||||||
#define NUM_IMP_VOICESETS 100
|
extern std::vector<IMP_VOICESET> gIMPVoice;
|
||||||
|
|
||||||
extern IMP_VOICESET gIMPVoice[NUM_IMP_VOICESETS];
|
|
||||||
|
|
||||||
BOOLEAN AddCharacterToPlayersTeam( void );
|
BOOLEAN AddCharacterToPlayersTeam( void );
|
||||||
BOOLEAN LoadImpCharacter( STR fileName );
|
BOOLEAN LoadImpCharacter( STR fileName );
|
||||||
|
|||||||
@@ -401,6 +401,13 @@ void ProcessPlayerInputActivationString( void )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Flugente: don't proceed if there are no voices
|
||||||
|
if ( gIMPVoice.empty() )
|
||||||
|
{
|
||||||
|
DoLapTopMessageBox( MSG_BOX_IMP_STYLE, pImpPopUpStrings[13], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (CountFilledIMPSlots(-1) < gGameOptions.ubMaxIMPCharacters)
|
if (CountFilledIMPSlots(-1) < gGameOptions.ubMaxIMPCharacters)
|
||||||
{
|
{
|
||||||
// Kaiden: Need to reset skills, attributes and personalities with the new UB Method.
|
// Kaiden: Need to reset skills, attributes and personalities with the new UB Method.
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ void IMPPortraitRegionButtonCallback(MOUSE_REGION * pRegion, INT32 iReason );
|
|||||||
void EnterIMPVoices( void )
|
void EnterIMPVoices( void )
|
||||||
{
|
{
|
||||||
// Set the initial voice
|
// Set the initial voice
|
||||||
for ( int i = 0; i < NUM_IMP_VOICESETS; ++i )
|
for ( int i = 0; i < gIMPVoice.size(); ++i )
|
||||||
{
|
{
|
||||||
// MALE is 0, FEMALE is 1, thus the negation
|
// MALE is 0, FEMALE is 1, thus the negation
|
||||||
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
||||||
@@ -124,7 +124,7 @@ void IncrementVoice()
|
|||||||
{
|
{
|
||||||
++iCurrentVoice;
|
++iCurrentVoice;
|
||||||
|
|
||||||
for ( int i = iCurrentVoice; i < NUM_IMP_VOICESETS; ++i )
|
for ( int i = iCurrentVoice; i < gIMPVoice.size( ); ++i )
|
||||||
{
|
{
|
||||||
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
||||||
{
|
{
|
||||||
@@ -134,7 +134,7 @@ void IncrementVoice()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// still here? Start from the beginning then
|
// still here? Start from the beginning then
|
||||||
for ( int i = 0; i < NUM_IMP_VOICESETS; ++i )
|
for ( int i = 0; i < gIMPVoice.size( ); ++i )
|
||||||
{
|
{
|
||||||
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
||||||
{
|
{
|
||||||
@@ -158,7 +158,7 @@ void DecrementVoice( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// still here? Start from the beginning then
|
// still here? Start from the beginning then
|
||||||
for ( int i = NUM_IMP_VOICESETS - 1; i > 0; --i )
|
for ( int i = gIMPVoice.size( ) - 1; i > 0; --i )
|
||||||
{
|
{
|
||||||
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
if ( gIMPVoice[i].exists && !fCharacterIsMale == gIMPVoice[i].bSex )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ struct
|
|||||||
}
|
}
|
||||||
typedef impVoiceParseData;
|
typedef impVoiceParseData;
|
||||||
|
|
||||||
IMP_VOICESET gIMPVoice[NUM_IMP_VOICESETS];
|
std::vector<IMP_VOICESET> gIMPVoice;
|
||||||
|
|
||||||
static void XMLCALL
|
static void XMLCALL
|
||||||
impVoicesStartElementHandle( void *userData, const XML_Char *name, const XML_Char **atts )
|
impVoicesStartElementHandle( void *userData, const XML_Char *name, const XML_Char **atts )
|
||||||
@@ -87,10 +87,9 @@ impVoicesEndElementHandle( void *userData, const XML_Char *name )
|
|||||||
{
|
{
|
||||||
pData->curElement = ELEMENT_LIST;
|
pData->curElement = ELEMENT_LIST;
|
||||||
|
|
||||||
wcscpy( gIMPVoice[pData->curIndex].szVoiceSetName, pData->curIMPVoice.szVoiceSetName );
|
pData->curIMPVoice.exists = TRUE;
|
||||||
gIMPVoice[pData->curIndex].voiceset = pData->curIMPVoice.voiceset;
|
|
||||||
gIMPVoice[pData->curIndex].bSex = pData->curIMPVoice.bSex;
|
gIMPVoice.push_back( pData->curIMPVoice );
|
||||||
gIMPVoice[pData->curIndex].exists = TRUE;
|
|
||||||
|
|
||||||
++pData->curIndex;
|
++pData->curIndex;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4765,6 +4765,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"你无法支付此I.M.P.人物的费用。", // 10
|
L"你无法支付此I.M.P.人物的费用。", // 10
|
||||||
L"新的I.M.P.人物加入了你的队伍。",
|
L"新的I.M.P.人物加入了你的队伍。",
|
||||||
L"你已经设置了最大数量的佣兵特性。",
|
L"你已经设置了最大数量的佣兵特性。",
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4769,6 +4769,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"You cannot afford the I.M.P character.", // 10
|
L"You cannot afford the I.M.P character.", // 10
|
||||||
L"The new I.M.P character has joined your team.",
|
L"The new I.M.P character has joined your team.",
|
||||||
L"You have already selected the maximum number of traits.", // TODO.Translate
|
L"You have already selected the maximum number of traits.", // TODO.Translate
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4766,6 +4766,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"You cannot afford the I.M.P character.", // 10
|
L"You cannot afford the I.M.P character.", // 10
|
||||||
L"The new I.M.P character has joined your team.",
|
L"The new I.M.P character has joined your team.",
|
||||||
L"You have already selected the maximum number of traits.",
|
L"You have already selected the maximum number of traits.",
|
||||||
|
L"No voicesets found.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4774,6 +4774,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Vous n'avez pas les moyens.", // 10
|
L"Vous n'avez pas les moyens.", // 10
|
||||||
L"Le nouvel IMP a rejoint votre escouade.",
|
L"Le nouvel IMP a rejoint votre escouade.",
|
||||||
L"Vous avez déjà sélectionné le maximal de traits de caractères.",
|
L"Vous avez déjà sélectionné le maximal de traits de caractères.",
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4727,6 +4727,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Sie können sich den B.S.E.-Charakter nicht leisten.", // 10
|
L"Sie können sich den B.S.E.-Charakter nicht leisten.", // 10
|
||||||
L"Der neue B.S.E.-Charakter ist nun in ihrem Team.",
|
L"Der neue B.S.E.-Charakter ist nun in ihrem Team.",
|
||||||
L"You have already selected the maximum number of traits.", // TODO.Translate
|
L"You have already selected the maximum number of traits.", // TODO.Translate
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
// button labels used on the IMP site
|
// button labels used on the IMP site
|
||||||
|
|||||||
@@ -4762,6 +4762,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"You cannot afford the I.M.P character.", // 10
|
L"You cannot afford the I.M.P character.", // 10
|
||||||
L"The new I.M.P character has joined your team.",
|
L"The new I.M.P character has joined your team.",
|
||||||
L"You have already selected the maximum number of traits.", // TODO.Translate
|
L"You have already selected the maximum number of traits.", // TODO.Translate
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4775,6 +4775,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Nie stać cię na postać I.M.P.", // 10
|
L"Nie stać cię na postać I.M.P.", // 10
|
||||||
L"Nowa postać I.M.P. dołączyła do oddziału.",
|
L"Nowa postać I.M.P. dołączyła do oddziału.",
|
||||||
L"You have already selected the maximum number of traits.", // TODO.Translate
|
L"You have already selected the maximum number of traits.", // TODO.Translate
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4766,6 +4766,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Вы не можете позволить себе такой I.M.P.-персонаж.", // 10
|
L"Вы не можете позволить себе такой I.M.P.-персонаж.", // 10
|
||||||
L"Новый I.M.P.-персонаж присоединился к команде.",
|
L"Новый I.M.P.-персонаж присоединился к команде.",
|
||||||
L"Вы уже выбрали максимальное количество навыков.",
|
L"Вы уже выбрали максимальное количество навыков.",
|
||||||
|
L"No voicesets found.", // TODO.Translate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user