mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Fix: skill display crashed and/or was badly aligned when selecting many traits (by cres)
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7253 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1889,7 +1889,7 @@ void DisplayCharStats(INT32 iId, INT32 iSlot)
|
||||
|
||||
for ( UINT8 ubCnt = 0; ubCnt < bNumSkillTraits; ubCnt++ )
|
||||
{
|
||||
if ( ubCnt >= 4 && bNumSkillTraits > 5 )
|
||||
if ( ubCnt >= 3 && bNumSkillTraits > 4 )
|
||||
{
|
||||
fDisplayMoreTraits = TRUE;
|
||||
swprintf( sString, L"%s\n", gzMercSkillTextNew[ ubTempSkillArray[ubCnt] ] );
|
||||
@@ -1953,14 +1953,14 @@ void DisplayCharStats(INT32 iId, INT32 iSlot)
|
||||
// if we have more skills than we can display, show "more" and create a tooltip box with the rest of them
|
||||
if ( fDisplayMoreTraits )
|
||||
{
|
||||
swprintf( sString, L"%s", gzMercSkillTextNew[ 2 * NEWTRAIT_MERCSKILL_OFFSET_ALL + 1 ]); // display "More..."
|
||||
swprintf( sString, L"%s", gzMercSkillTextNew[2 * NEWTRAIT_MERCSKILL_EXPERTOFFSET + 1] ); // display "More..."
|
||||
FindFontRightCoordinates((INT16)(pPersonnelScreenPoints[19].x+(iSlot*TEXT_BOX_WIDTH)),0,TEXT_BOX_WIDTH-20,0,sString, PERS_FONT, &sX, &sY);
|
||||
if( sX <= iMinimumX )
|
||||
{
|
||||
FindFontRightCoordinates((INT16)(pPersonnelScreenPoints[19].x+(iSlot*TEXT_BOX_WIDTH) + TEXT_BOX_WIDTH-20 +TEXT_DELTA_OFFSET),0,30,0,sString, PERS_FONT, &sX, &sY);
|
||||
sX = (INT16)max( sX, iMinimumX );
|
||||
}
|
||||
sY = (INT16)(pPersonnelScreenPoints[19].y + 48);
|
||||
sY = (INT16)(pPersonnelScreenPoints[19].y + 36);
|
||||
|
||||
mprintf(sX,sY,sString);
|
||||
|
||||
|
||||
@@ -1983,7 +1983,7 @@ void RemoveMapStatusBarsRegion( void )
|
||||
|
||||
void UpdateCharRegionHelpText( void )
|
||||
{
|
||||
CHAR16 sString[ 128 ], sTemp[ 20 ];
|
||||
CHAR16 sString[ 256 ], sTemp[ 20 ];
|
||||
CHAR16 pMoraleStr[ 128 ];
|
||||
SOLDIERTYPE *pSoldier = NULL;
|
||||
|
||||
@@ -2000,8 +2000,7 @@ void UpdateCharRegionHelpText( void )
|
||||
if ( AM_A_ROBOT( MercPtrs[ gCharactersList[ bSelectedInfoChar ].usSolID ] ) )
|
||||
{
|
||||
// robot (condition only)
|
||||
swprintf( sString, L"%s: %d/%d",
|
||||
pMapScreenStatusStrings[ 3 ], pSoldier->stats.bLife, pSoldier->stats.bLifeMax );
|
||||
swprintf( sString, L"%s: %d/%d", pMapScreenStatusStrings[ 3 ], pSoldier->stats.bLife, pSoldier->stats.bLifeMax );
|
||||
}
|
||||
else if ( Menptr[ gCharactersList[ bSelectedInfoChar ].usSolID ].flags.uiStatusFlags & SOLDIER_VEHICLE )
|
||||
{
|
||||
@@ -2085,17 +2084,17 @@ void UpdateCharRegionHelpText( void )
|
||||
|
||||
// lets rearrange our skills to a temp array
|
||||
// we also get the number of lines (skills) to be displayed
|
||||
for ( UINT8 ubCnt = 1; ubCnt < NUM_SKILLTRAITS_NT; ubCnt++ )
|
||||
for ( UINT8 ubCnt = 1; ubCnt < NUM_SKILLTRAITS_NT; ++ubCnt )
|
||||
{
|
||||
if ( ProfileHasSkillTrait( pSoldier->ubProfile, ubCnt ) == 2 )
|
||||
{
|
||||
ubTempSkillArray[bNumSkillTraits] = (ubCnt + NEWTRAIT_MERCSKILL_EXPERTOFFSET);
|
||||
bNumSkillTraits++;
|
||||
++bNumSkillTraits;
|
||||
}
|
||||
else if ( ProfileHasSkillTrait( pSoldier->ubProfile, ubCnt ) == 1 )
|
||||
{
|
||||
ubTempSkillArray[bNumSkillTraits] = ubCnt;
|
||||
bNumSkillTraits++;
|
||||
++bNumSkillTraits;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2136,6 +2135,7 @@ void UpdateCharRegionHelpText( void )
|
||||
{
|
||||
swprintf( sString, L"%s\n", gzMercSkillText[bSkill1] );
|
||||
}
|
||||
|
||||
if( bSkill2 != 0 )
|
||||
{
|
||||
swprintf( sTemp, L"%s", gzMercSkillText[bSkill2] );
|
||||
@@ -2163,7 +2163,6 @@ void UpdateCharRegionHelpText( void )
|
||||
DisableButton( giMapContractButton );
|
||||
}
|
||||
|
||||
|
||||
if ( CanToggleSelectedCharInventory( ) )
|
||||
{
|
||||
// inventory
|
||||
|
||||
Reference in New Issue
Block a user