simplified a few lines concerning traits

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5569 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2012-09-16 17:44:33 +00:00
parent 665917e043
commit b7e5b324d1
4 changed files with 16 additions and 10 deletions
+2 -3
View File
@@ -1869,10 +1869,9 @@ void DisplayCharStats(INT32 iId, INT32 iSlot)
// Assign the text
UINT8 traitnr = ubTempSkillArray[ubCnt];
UINT8 mlas = NEWTRAIT_MERCSKILL_EXPERTOFFSET;
if ( traitnr > mlas )
if ( traitnr > NEWTRAIT_MERCSKILL_EXPERTOFFSET )
{
traitnr = traitnr - mlas;
traitnr = traitnr - (NEWTRAIT_MERCSKILL_EXPERTOFFSET);
}
// Flugente: as the whole trait display is fubar, we have to to a special treatment here for new traits
+10 -5
View File
@@ -17208,13 +17208,13 @@ BOOLEAN HAS_SKILL_TRAIT( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber )
{
for ( INT8 bCnt = 0; bCnt < min(30,bMaxTraits); bCnt++ )
{
if ( uiSkillTraitNumber > 0 && (uiSkillTraitNumber <= NUM_MAJOR_TRAITS || uiSkillTraitNumber == COVERT_NT) )
if ( TwoStagedTrait( uiSkillTraitNumber ) )
{
if (pSoldier->stats.ubSkillTraits[ bCnt ] == uiSkillTraitNumber)
{
return( TRUE );
}
else if ( pSoldier->stats.ubSkillTraits[ bCnt ] > 0 && (pSoldier->stats.ubSkillTraits[ bCnt ] <= NUM_MAJOR_TRAITS || pSoldier->stats.ubSkillTraits[ bCnt ] == COVERT_NT) )
else if ( TwoStagedTrait(pSoldier->stats.ubSkillTraits[ bCnt ]) )
{
bNumMajorTraitsCounted++;
}
@@ -17264,14 +17264,14 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber )
{
for ( INT8 bCnt = 0; bCnt < min(30,bMaxTraits); bCnt++ )
{
if ( uiSkillTraitNumber > 0 && (uiSkillTraitNumber <= NUM_MAJOR_TRAITS || uiSkillTraitNumber == COVERT_NT) )
if ( TwoStagedTrait( uiSkillTraitNumber ) )
{
if ( pSoldier->stats.ubSkillTraits[ bCnt ] == uiSkillTraitNumber )
{
bNumberOfTraits++;
bNumMajorTraitsCounted++;
}
else if ( pSoldier->stats.ubSkillTraits[ bCnt ] > 0 && (pSoldier->stats.ubSkillTraits[ bCnt ] <= NUM_MAJOR_TRAITS || pSoldier->stats.ubSkillTraits[ bCnt ] == COVERT_NT ) )
else if ( TwoStagedTrait( pSoldier->stats.ubSkillTraits[ bCnt ] ) )
{
bNumMajorTraitsCounted++;
}
@@ -17290,7 +17290,7 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber )
}
}
// cannot have more than one same minor trait
if( uiSkillTraitNumber > NUM_MAJOR_TRAITS && uiSkillTraitNumber != COVERT_NT)
if( !TwoStagedTrait(uiSkillTraitNumber) )
return ( min(1, bNumberOfTraits) );
else
return ( min(2, bNumberOfTraits) );
@@ -17980,3 +17980,8 @@ BOOLEAN DecideAltAnimForBigMerc( SOLDIERTYPE * pSoldier )
return FALSE;
}
BOOLEAN TwoStagedTrait( UINT8 uiSkillTraitNumber )
{
return( uiSkillTraitNumber > 0 && (uiSkillTraitNumber <= NUM_MAJOR_TRAITS || uiSkillTraitNumber == COVERT_NT) );
}
+2
View File
@@ -1620,6 +1620,8 @@ BOOLEAN ResolvePendingInterrupt( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType )
BOOLEAN AIDecideHipOrShoulderStance( SOLDIERTYPE * pSoldier, INT32 iGridNo );
BOOLEAN DecideAltAnimForBigMerc( SOLDIERTYPE * pSoldier );
BOOLEAN TwoStagedTrait( UINT8 uiSkillTraitNumber ); // Flugente: determine if this (new) trait has two stages
//typedef struct
class OLDSOLDIERTYPE_101
{
+2 -2
View File
@@ -2660,14 +2660,14 @@ INT8 ProfileHasSkillTrait( INT32 ubProfileID, INT8 bSkillTrait )
{
for ( INT8 bCnt = 0; bCnt < gSkillTraitValues.ubMaxNumberOfTraits; bCnt++ )
{
if ( bSkillTrait > 0 && (bSkillTrait <= DOCTOR_NT || bSkillTrait == COVERT_NT ) )
if ( TwoStagedTrait(bSkillTrait) )
{
if ( gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] == bSkillTrait )
{
bNumTraits++;
bNumMajorTraitsCounted++;
}
else if ( gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] > 0 && (gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] <= DOCTOR_NT || gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] <= COVERT_NT) )
else if ( TwoStagedTrait(gMercProfiles[ubProfileID].bSkillTraits[ bCnt ]) )
{
bNumMajorTraitsCounted++;
}