FIX: no GUI for random items

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8702 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2019-10-27 19:49:48 +00:00
parent 8b698f0633
commit 130272bbe5
+58
View File
@@ -272,6 +272,7 @@ enum
EDITING_ACTIONITEMS,
EDITING_TRIGGERS,
EDITING_KEYS,
EDITING_RANDOMITEM,
EDITING_OWNERSHIP,
};
@@ -332,6 +333,9 @@ void SetupKeysGUI();
void ExtractAndUpdateKeysGUI();
void RemoveKeysGUI();
void SetupRandomItemGUI();
void ExtractAndUpdateRandomItemGUI();
void RemoveRandomItemGUI();
void ReEvaluateAttachmentStatii();
@@ -387,6 +391,7 @@ void ExecuteItemStatsCmd( /*UINT8*/ UINT16 ubAction )
case EDITING_EXPLOSIVES: ExtractAndUpdateExplosivesGUI(); break;
case EDITING_MONEY: ExtractAndUpdateMoneyGUI(); break;
case EDITING_KEYS: ExtractAndUpdateKeysGUI(); break;
case EDITING_RANDOMITEM: ExtractAndUpdateRandomItemGUI(); break;
}
SetActiveField( 0 );
gfRenderTaskbar = TRUE;
@@ -439,6 +444,7 @@ void RemoveItemGUI()
case EDITING_EXPLOSIVES: RemoveExplosivesGUI(); break;
case EDITING_MONEY: RemoveMoneyGUI(); break;
case EDITING_KEYS: RemoveKeysGUI(); break;
case EDITING_RANDOMITEM: RemoveRandomItemGUI(); break;
}
}
@@ -546,6 +552,10 @@ void SpecifyItemToEdit( OBJECTTYPE *pItem, INT32 iMapIndex )
gbEditingMode = EDITING_KEYS;
SetupKeysGUI();
break;
case IC_RANDOMITEM:
gbEditingMode = EDITING_RANDOMITEM;
SetupRandomItemGUI();
break;
case IC_PUNCH:
if ( gpItem->exists() == true)
{
@@ -619,6 +629,9 @@ void UpdateItemStatsPanel()
return;
}
break;
case EDITING_RANDOMITEM:
mprintf( iScreenWidthOffset + 512, 2 * iScreenHeightOffset + 384, pUpdateItemStatsPanelText[8] );
break;
case EDITING_OWNERSHIP:
mprintf( iScreenWidthOffset + 512, 2 * iScreenHeightOffset + 384, pUpdateItemStatsPanelText[5] );
return;
@@ -1299,6 +1312,51 @@ void RemoveKeysGUI()
}
void SetupRandomItemGUI()
{
CHAR16 str[20];
swprintf( str, L"%d", ( *gpItem )[0]->data.objectStatus );
AddTextInputField( iScreenWidthOffset + 485, 2 * iScreenHeightOffset + 380, 25, 15, MSYS_PRIORITY_NORMAL, str, 3, INPUTTYPE_NUMERICSTRICT );
swprintf( str, L"%d", ( *gpItem )[0]->data.bTrap );
AddTextInputField( iScreenWidthOffset + 485, 2 * iScreenHeightOffset + 400, 25, 15, MSYS_PRIORITY_NORMAL, str, 2, INPUTTYPE_NUMERICSTRICT );
if ( gpEditingItemPool )
{
swprintf( str, L"%d", 100 - gWorldItems[gpEditingItemPool->iItemIndex].ubNonExistChance );
AddTextInputField( iScreenWidthOffset + 485, 2 * iScreenHeightOffset + 440, 25, 15, MSYS_PRIORITY_NORMAL, str, 3, INPUTTYPE_NUMERICSTRICT );
}
}
void ExtractAndUpdateRandomItemGUI()
{
//Update the equipment status
INT32 i = GetNumericStrictValueFromField( 1 );
if ( i == -1 )
i = 20 + Random( 81 );
else
i = min( i, 100 );
( *gpItem )[0]->data.objectStatus = (INT8)i;
SetInputFieldStringWithNumericStrictValue( 1, i );
//Update the trap level
i = GetNumericStrictValueFromField( 2 );
i = ( i == -1 ) ? 0 : min( i, 20 );
( *gpItem )[0]->data.bTrap = (INT8)i;
SetInputFieldStringWithNumericStrictValue( 2, i );
if ( gpEditingItemPool )
{
giDefaultExistChance = GetNumericStrictValueFromField( 3 );
giDefaultExistChance = ( giDefaultExistChance == -1 ) ? 100 : max( 1, min( giDefaultExistChance, 100 ) );
gWorldItems[gpEditingItemPool->iItemIndex].ubNonExistChance = (UINT8)( 100 - giDefaultExistChance );
SetInputFieldStringWithNumericStrictValue( 3, giDefaultExistChance );
}
}
void RemoveRandomItemGUI()
{
}
void SetupActionItemsGUI()
{
CHAR16 str[4];