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 // Assign the text
UINT8 traitnr = ubTempSkillArray[ubCnt]; UINT8 traitnr = ubTempSkillArray[ubCnt];
UINT8 mlas = NEWTRAIT_MERCSKILL_EXPERTOFFSET; if ( traitnr > NEWTRAIT_MERCSKILL_EXPERTOFFSET )
if ( traitnr > mlas )
{ {
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 // 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++ ) 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) if (pSoldier->stats.ubSkillTraits[ bCnt ] == uiSkillTraitNumber)
{ {
return( TRUE ); 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++; bNumMajorTraitsCounted++;
} }
@@ -17264,14 +17264,14 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber )
{ {
for ( INT8 bCnt = 0; bCnt < min(30,bMaxTraits); bCnt++ ) 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 ) if ( pSoldier->stats.ubSkillTraits[ bCnt ] == uiSkillTraitNumber )
{ {
bNumberOfTraits++; bNumberOfTraits++;
bNumMajorTraitsCounted++; 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++; bNumMajorTraitsCounted++;
} }
@@ -17290,7 +17290,7 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber )
} }
} }
// cannot have more than one same minor trait // cannot have more than one same minor trait
if( uiSkillTraitNumber > NUM_MAJOR_TRAITS && uiSkillTraitNumber != COVERT_NT) if( !TwoStagedTrait(uiSkillTraitNumber) )
return ( min(1, bNumberOfTraits) ); return ( min(1, bNumberOfTraits) );
else else
return ( min(2, bNumberOfTraits) ); return ( min(2, bNumberOfTraits) );
@@ -17980,3 +17980,8 @@ BOOLEAN DecideAltAnimForBigMerc( SOLDIERTYPE * pSoldier )
return FALSE; 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 AIDecideHipOrShoulderStance( SOLDIERTYPE * pSoldier, INT32 iGridNo );
BOOLEAN DecideAltAnimForBigMerc( SOLDIERTYPE * pSoldier ); BOOLEAN DecideAltAnimForBigMerc( SOLDIERTYPE * pSoldier );
BOOLEAN TwoStagedTrait( UINT8 uiSkillTraitNumber ); // Flugente: determine if this (new) trait has two stages
//typedef struct //typedef struct
class OLDSOLDIERTYPE_101 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++ ) 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 ) if ( gMercProfiles[ubProfileID].bSkillTraits[ bCnt ] == bSkillTrait )
{ {
bNumTraits++; bNumTraits++;
bNumMajorTraitsCounted++; 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++; bNumMajorTraitsCounted++;
} }