mirror of
https://github.com/1dot13/source.git
synced 2026-09-16 14:47:17 +02:00
made sure that faulty xmls don't lead to three major traits
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6094 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1423,7 +1423,7 @@ INT32 ChooseHairColor( SOLDIERTYPE *pSoldier, INT32 skin )
|
|||||||
return hair;
|
return hair;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeneratePaletteForSoldier( SOLDIERTYPE *pSoldier, UINT8 ubSoldierClass )
|
void GeneratePaletteForSoldier( SOLDIERTYPE *pSoldier, UINT8 ubSoldierClass, UINT8 ubTeam )
|
||||||
{
|
{
|
||||||
INT32 skin, hair;
|
INT32 skin, hair;
|
||||||
BOOLEAN fMercClothingScheme;
|
BOOLEAN fMercClothingScheme;
|
||||||
@@ -1441,7 +1441,7 @@ void GeneratePaletteForSoldier( SOLDIERTYPE *pSoldier, UINT8 ubSoldierClass )
|
|||||||
|
|
||||||
if ( pSoldier->usSoldierProfile )
|
if ( pSoldier->usSoldierProfile )
|
||||||
{
|
{
|
||||||
INT8 type = pSoldier->GetSoldierProfileType(pSoldier->bTeam);
|
INT8 type = pSoldier->GetSoldierProfileType(ubTeam);
|
||||||
|
|
||||||
if ( type > -1 && zSoldierProfile[type][pSoldier->usSoldierProfile].uiSkin )
|
if ( type > -1 && zSoldierProfile[type][pSoldier->usSoldierProfile].uiSkin )
|
||||||
skin = zSoldierProfile[type][pSoldier->usSoldierProfile].uiSkin - 1;
|
skin = zSoldierProfile[type][pSoldier->usSoldierProfile].uiSkin - 1;
|
||||||
@@ -1884,7 +1884,7 @@ BOOLEAN TacticalCopySoldierFromCreateStruct( SOLDIERTYPE *pSoldier, SOLDIERCREAT
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Generate colors for soldier based on the body type.
|
//Generate colors for soldier based on the body type.
|
||||||
GeneratePaletteForSoldier( pSoldier, pCreateStruct->ubSoldierClass );
|
GeneratePaletteForSoldier( pSoldier, pCreateStruct->ubSoldierClass, pCreateStruct->bTeam );
|
||||||
|
|
||||||
// Copy item info over
|
// Copy item info over
|
||||||
pSoldier->inv = pCreateStruct->Inv;
|
pSoldier->inv = pCreateStruct->Inv;
|
||||||
@@ -2667,7 +2667,7 @@ void UpdateSoldierWithStaticDetailedInformation( SOLDIERTYPE *s, SOLDIERCREATE_S
|
|||||||
case SOLDIER_CLASS_ADMINISTRATOR:
|
case SOLDIER_CLASS_ADMINISTRATOR:
|
||||||
case SOLDIER_CLASS_ARMY:
|
case SOLDIER_CLASS_ARMY:
|
||||||
case SOLDIER_CLASS_ELITE:
|
case SOLDIER_CLASS_ELITE:
|
||||||
GeneratePaletteForSoldier( s, spp->ubSoldierClass );
|
GeneratePaletteForSoldier( s, spp->ubSoldierClass, spp->bTeam );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4069,7 +4069,7 @@ BOOLEAN AssignTraitsToSoldier( SOLDIERTYPE *pSoldier, SOLDIERCREATE_STRUCT *pCre
|
|||||||
ubSolClass = pSoldier->ubSoldierClass;
|
ubSolClass = pSoldier->ubSoldierClass;
|
||||||
|
|
||||||
// Flugente: soldier profiles - if any traits are in the xml, use them, but fill up empty slots afterwards
|
// Flugente: soldier profiles - if any traits are in the xml, use them, but fill up empty slots afterwards
|
||||||
if ( pSoldier->usSoldierProfile )
|
if ( gGameOptions.fNewTraitSystem && pSoldier->usSoldierProfile )
|
||||||
{
|
{
|
||||||
INT8 type = pSoldier->GetSoldierProfileType(pCreateStruct->bTeam);
|
INT8 type = pSoldier->GetSoldierProfileType(pCreateStruct->bTeam);
|
||||||
|
|
||||||
@@ -4089,8 +4089,14 @@ BOOLEAN AssignTraitsToSoldier( SOLDIERTYPE *pSoldier, SOLDIERCREATE_STRUCT *pCre
|
|||||||
|
|
||||||
if ( zSoldierProfile[type][pSoldier->usSoldierProfile].uiTrait[2] > 0 )
|
if ( zSoldierProfile[type][pSoldier->usSoldierProfile].uiTrait[2] > 0 )
|
||||||
{
|
{
|
||||||
pSoldier->stats.ubSkillTraits[2] = zSoldierProfile[type][pSoldier->usSoldierProfile].uiTrait[2];
|
// we have to make sure that not all 3 traits are major traits - if that happens, we ignore the third one
|
||||||
CTraitAssigned = TRUE;
|
if ( TwoStagedTrait(pSoldier->stats.ubSkillTraits[0]) && TwoStagedTrait(pSoldier->stats.ubSkillTraits[1]) && TwoStagedTrait(zSoldierProfile[type][pSoldier->usSoldierProfile].uiTrait[2]) )
|
||||||
|
;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pSoldier->stats.ubSkillTraits[2] = zSoldierProfile[type][pSoldier->usSoldierProfile].uiTrait[2];
|
||||||
|
CTraitAssigned = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -497,7 +497,7 @@ void ModifySoldierAttributesWithNewRelativeLevel( SOLDIERTYPE *s, INT8 bLevel );
|
|||||||
// Force the soldier to be a different ID
|
// Force the soldier to be a different ID
|
||||||
void ForceSoldierProfileID( SOLDIERTYPE *pSoldier, UINT8 ubProfileID );
|
void ForceSoldierProfileID( SOLDIERTYPE *pSoldier, UINT8 ubProfileID );
|
||||||
|
|
||||||
void GeneratePaletteForSoldier( SOLDIERTYPE *pSoldier, UINT8 ubSoldierClass );
|
void GeneratePaletteForSoldier( SOLDIERTYPE *pSoldier, UINT8 ubSoldierClass, UINT8 ubTeam );
|
||||||
|
|
||||||
void QuickCreateProfileMerc( INT8 bTeam, UINT8 ubProfileID );
|
void QuickCreateProfileMerc( INT8 bTeam, UINT8 ubProfileID );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user