New Feature: IMP gear selection allows choosing what items an IMP starts with instead of relying upon randomness.

Requires GameDir >= r2152, as required images were added.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7529 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2014-09-23 22:46:10 +00:00
parent 6de39a6ff2
commit 7558c84bc2
28 changed files with 2358 additions and 580 deletions
+22 -17
View File
@@ -2926,45 +2926,50 @@ INT8 ProfileHasSkillTrait( INT32 ubProfileID, INT8 bSkillTrait )
// bMaxMajorTraits++;
//}
for ( INT8 bCnt = 0; bCnt < bMaxTraits; bCnt++ )
if ( TwoStagedTrait( bSkillTrait ) )
{
if ( TwoStagedTrait(bSkillTrait) )
for ( INT8 bCnt = 0; bCnt < bMaxTraits; ++bCnt )
{
if ( gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] == bSkillTrait )
if ( gMercProfiles[ubProfileID].bSkillTraits[bCnt] == bSkillTrait )
{
bNumTraits++;
bNumMajorTraitsCounted++;
++bNumTraits;
++bNumMajorTraitsCounted;
}
else if ( TwoStagedTrait(gMercProfiles[ubProfileID].bSkillTraits[ bCnt ]) )
else if ( TwoStagedTrait( gMercProfiles[ubProfileID].bSkillTraits[bCnt] ) )
{
bNumMajorTraitsCounted++;
++bNumMajorTraitsCounted;
}
// if we exceeded the allowed number of major traits, ignore the rest of them
if ( bNumMajorTraitsCounted >= bMaxMajorTraits )
{
break;
}
}
else
// cannot have more than 2 grades of a major traits
return (min( 2, bNumTraits ));
}
else
{
for ( INT8 bCnt = 0; bCnt < bMaxTraits; ++bCnt )
{
if ( gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] == bSkillTrait )
if ( gMercProfiles[ubProfileID].bSkillTraits[bCnt] == bSkillTrait )
{
bNumTraits++;
++bNumTraits;
}
}
// cannot have more than 1 grade of minor traits
return (min( 1, bNumTraits ));
}
// cannot have more than 1 rade of minor traits or 2 grades of a major traits
if( bSkillTrait > DOCTOR_NT && bSkillTrait != COVERT_NT )
return ( min(1, bNumTraits) );
else
return ( min(2, bNumTraits) );
}
else
{
if (gMercProfiles[ubProfileID].bSkillTraits[ 0 ] == bSkillTrait)
bNumTraits++;
++bNumTraits;
if (gMercProfiles[ubProfileID].bSkillTraits[ 1 ] == bSkillTrait)
bNumTraits++;
++bNumTraits;
// Electronics, Ambidextrous and Camouflaged can only be of one grade
if( bSkillTrait == ELECTRONICS_OT ||