@ -150,7 +150,7 @@ void OffsetSTextY(int y, int yo)
stext [ y ] . _syoff = yo ;
}
void AddSText ( int x , int y , const char * str , uint16_t flags , bool sel )
void AddSText ( int x , int y , const char * str , UiFlags flags , bool sel )
{
stext [ y ] . _sx = x ;
stext [ y ] . _syoff = 0 ;
@ -160,7 +160,7 @@ void AddSText(int x, int y, const char *str, uint16_t flags, bool sel)
stext [ y ] . _ssel = sel ;
}
void PrintStoreItem ( ItemStruct * x , int l , uint16_t flags )
void PrintStoreItem ( ItemStruct * x , int l , UiFlags flags )
{
char sstr [ 128 ] ;
@ -239,15 +239,15 @@ void StartSmith()
{
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 1 , _ ( " Welcome to the " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 3 , _ ( " Blacksmith's shop " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 7 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 10 , _ ( " Talk to Griswold " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 12 , _ ( " Buy basic items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Buy premium items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 16 , _ ( " Sell items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Repair items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " Leave the shop " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 1 , _ ( " Welcome to the " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 3 , _ ( " Blacksmith's shop " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 7 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 10 , _ ( " Talk to Griswold " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 12 , _ ( " Buy basic items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Buy premium items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 16 , _ ( " Sell items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Repair items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " Leave the shop " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
storenumh = 20 ;
}
@ -259,16 +259,16 @@ void ScrollSmithBuy(int idx)
for ( int l = 5 ; l < 20 ; l + = 4 ) {
if ( ! smithitem [ idx ] . isEmpty ( ) ) {
uint16_t icl r = smithitem [ idx ] . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = smithitem [ idx ] . getTextColorWithStatCheck ( ) ;
if ( smithitem [ idx ] . _iMagical ! = ITEM_QUALITY_NORMAL ) {
AddSText ( 20 , l , smithitem [ idx ] . _iIName , icl r , true ) ;
AddSText ( 20 , l , smithitem [ idx ] . _iIName , itemColo r , true ) ;
} else {
AddSText ( 20 , l , smithitem [ idx ] . _iName , icl r , true ) ;
AddSText ( 20 , l , smithitem [ idx ] . _iName , itemColo r , true ) ;
}
AddSTextVal ( l , smithitem [ idx ] . _iIvalue ) ;
PrintStoreItem ( & smithitem [ idx ] , l + 1 , icl r ) ;
PrintStoreItem ( & smithitem [ idx ] , l + 1 , itemColo r ) ;
stextdown = l ;
idx + + ;
}
@ -287,11 +287,11 @@ void StartSmithBuy()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " I have these items for sale: Your gold: {:d} " ) , Players [ MyPlayerId ] . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollSmithBuy ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
OffsetSTextY ( 22 , 6 ) ;
storenumh = 0 ;
@ -317,10 +317,10 @@ void ScrollSmithPremiumBuy(int boughtitems)
for ( int l = 5 ; l < 20 & & idx < SMITH_PREMIUM_ITEMS ; l + = 4 ) {
if ( ! premiumitems [ idx ] . isEmpty ( ) ) {
uint16_t icl r = premiumitems [ idx ] . getTextColorWithStatCheck ( ) ;
AddSText ( 20 , l , premiumitems [ idx ] . _iIName , icl r , true ) ;
UiFlags itemColo r = premiumitems [ idx ] . getTextColorWithStatCheck ( ) ;
AddSText ( 20 , l , premiumitems [ idx ] . _iIName , itemColo r , true ) ;
AddSTextVal ( l , premiumitems [ idx ] . _iIvalue ) ;
PrintStoreItem ( & premiumitems [ idx ] , l + 1 , icl r ) ;
PrintStoreItem ( & premiumitems [ idx ] , l + 1 , itemColo r ) ;
stextdown = l ;
} else {
l - = 4 ;
@ -351,10 +351,10 @@ bool StartSmithPremiumBuy()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " I have these premium items for sale: Your gold: {:d} " ) , Players [ MyPlayerId ] . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
OffsetSTextY ( 22 , 6 ) ;
stextsmax = storenumh - 4 ;
@ -405,17 +405,17 @@ void ScrollSmithSell(int idx)
if ( idx > = storenumh )
break ;
if ( ! storehold [ idx ] . isEmpty ( ) ) {
uint16_t icl r = storehold [ idx ] . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = storehold [ idx ] . getTextColorWithStatCheck ( ) ;
if ( storehold [ idx ] . _iMagical ! = ITEM_QUALITY_NORMAL & & storehold [ idx ] . _iIdentified ) {
AddSText ( 20 , l , storehold [ idx ] . _iIName , icl r , true ) ;
AddSText ( 20 , l , storehold [ idx ] . _iIName , itemColo r , true ) ;
AddSTextVal ( l , storehold [ idx ] . _iIvalue ) ;
} else {
AddSText ( 20 , l , storehold [ idx ] . _iName , icl r , true ) ;
AddSText ( 20 , l , storehold [ idx ] . _iName , itemColo r , true ) ;
AddSTextVal ( l , storehold [ idx ] . _ivalue ) ;
}
PrintStoreItem ( & storehold [ idx ] , l + 1 , icl r ) ;
PrintStoreItem ( & storehold [ idx ] , l + 1 , itemColo r ) ;
stextdown = l ;
}
idx + + ;
@ -478,10 +478,10 @@ void StartSmithSell()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " You have nothing I want. Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
return ;
}
@ -493,11 +493,11 @@ void StartSmithSell()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " Which item is for sale? Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollSmithSell ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
}
@ -568,10 +568,10 @@ void StartSmithRepair()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " You have nothing to repair. Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
return ;
}
@ -583,11 +583,11 @@ void StartSmithRepair()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " Repair which item? Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollSmithSell ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
}
@ -611,13 +611,13 @@ void StartWitch()
FillManaPlayer ( ) ;
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 2 , _ ( " Witch's shack " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Adria " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Buy items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 16 , _ ( " Sell items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Recharge staves " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " Leave the shack " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 2 , _ ( " Witch's shack " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Adria " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Buy items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 16 , _ ( " Sell items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Recharge staves " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " Leave the shack " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
storenumh = 20 ;
}
@ -629,16 +629,16 @@ void ScrollWitchBuy(int idx)
for ( int l = 5 ; l < 20 ; l + = 4 ) {
if ( ! witchitem [ idx ] . isEmpty ( ) ) {
uint16_t icl r = witchitem [ idx ] . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = witchitem [ idx ] . getTextColorWithStatCheck ( ) ;
if ( witchitem [ idx ] . _iMagical ! = ITEM_QUALITY_NORMAL ) {
AddSText ( 20 , l , witchitem [ idx ] . _iIName , icl r , true ) ;
AddSText ( 20 , l , witchitem [ idx ] . _iIName , itemColo r , true ) ;
} else {
AddSText ( 20 , l , witchitem [ idx ] . _iName , icl r , true ) ;
AddSText ( 20 , l , witchitem [ idx ] . _iName , itemColo r , true ) ;
}
AddSTextVal ( l , witchitem [ idx ] . _iIvalue ) ;
PrintStoreItem ( & witchitem [ idx ] , l + 1 , icl r ) ;
PrintStoreItem ( & witchitem [ idx ] , l + 1 , itemColo r ) ;
stextdown = l ;
idx + + ;
}
@ -658,11 +658,11 @@ void StartWitchBuy()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " I have these items for sale: Your gold: {:d} " ) , Players [ MyPlayerId ] . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollWitchBuy ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
OffsetSTextY ( 22 , 6 ) ;
storenumh = 0 ;
@ -752,10 +752,10 @@ void StartWitchSell()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " You have nothing I want. Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
return ;
}
@ -767,11 +767,11 @@ void StartWitchSell()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " Which item is for sale? Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollSmithSell ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
}
@ -833,10 +833,10 @@ void StartWitchRecharge()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " You have nothing to recharge. Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
return ;
}
@ -848,11 +848,11 @@ void StartWitchRecharge()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " Recharge which item? Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollSmithSell ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
}
@ -862,7 +862,7 @@ void StoreNoMoney()
stextscrl = false ;
stextsize = true ;
ClearSText ( 5 , 23 ) ;
AddSText ( 0 , 14 , _ ( " You do not have enough gold " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " You do not have enough gold " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
}
void StoreNoRoom ( )
@ -870,7 +870,7 @@ void StoreNoRoom()
StartStore ( stextshold ) ;
stextscrl = false ;
ClearSText ( 5 , 23 ) ;
AddSText ( 0 , 14 , _ ( " You do not have enough room in inventory " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " You do not have enough room in inventory " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
}
void StoreConfirm ( )
@ -881,7 +881,7 @@ void StoreConfirm()
auto & item = Players [ MyPlayerId ] . HoldItem ;
uint16_t icl r = item . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = item . getTextColorWithStatCheck ( ) ;
bool idprint = item . _iMagical ! = ITEM_QUALITY_NORMAL ;
@ -898,12 +898,12 @@ void StoreConfirm()
idprint = false ;
}
if ( idprint )
AddSText ( 20 , 8 , item . _iIName , icl r , false ) ;
AddSText ( 20 , 8 , item . _iIName , itemColo r , false ) ;
else
AddSText ( 20 , 8 , item . _iName , icl r , false ) ;
AddSText ( 20 , 8 , item . _iName , itemColo r , false ) ;
AddSTextVal ( 8 , item . _iIvalue ) ;
PrintStoreItem ( & item , 9 , icl r ) ;
PrintStoreItem ( & item , 9 , itemColo r ) ;
switch ( stextshold ) {
case STORE_BBOY :
@ -931,27 +931,27 @@ void StoreConfirm()
default :
app_fatal ( " Unknown store dialog %i " , stextshold ) ;
}
AddSText ( 0 , 15 , tempstr , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 18 , _ ( " Yes " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " No " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 15 , tempstr , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 18 , _ ( " Yes " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " No " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
}
void StartBoy ( )
{
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 2 , _ ( " Wirt the Peg-legged boy " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 2 , _ ( " Wirt the Peg-legged boy " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 5 ) ;
if ( ! boyitem . isEmpty ( ) ) {
AddSText ( 0 , 8 , _ ( " Talk to Wirt " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 12 , _ ( " I have something for sale, " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 14 , _ ( " but it will cost 50 gold " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 16 , _ ( " just to take a look. " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 18 , _ ( " What have you got? " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " Say goodbye " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 8 , _ ( " Talk to Wirt " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 12 , _ ( " I have something for sale, " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 14 , _ ( " but it will cost 50 gold " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 16 , _ ( " just to take a look. " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 18 , _ ( " What have you got? " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 20 , _ ( " Say goodbye " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
} else {
AddSText ( 0 , 12 , _ ( " Talk to Wirt " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say goodbye " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 12 , _ ( " Talk to Wirt " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say goodbye " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
}
}
@ -963,22 +963,22 @@ void SStartBoyBuy()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " I have this item for sale: Your gold: {:d} " ) , Players [ MyPlayerId ] . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
uint16_t icl r = boyitem . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = boyitem . getTextColorWithStatCheck ( ) ;
if ( boyitem . _iMagical ! = ITEM_QUALITY_NORMAL )
AddSText ( 20 , 10 , boyitem . _iIName , icl r , true ) ;
AddSText ( 20 , 10 , boyitem . _iIName , itemColo r , true ) ;
else
AddSText ( 20 , 10 , boyitem . _iName , icl r , true ) ;
AddSText ( 20 , 10 , boyitem . _iName , itemColo r , true ) ;
if ( gbIsHellfire )
AddSTextVal ( 10 , boyitem . _iIvalue - ( boyitem . _iIvalue / 4 ) ) ;
else
AddSTextVal ( 10 , boyitem . _iIvalue + ( boyitem . _iIvalue / 2 ) ) ;
PrintStoreItem ( & boyitem , 11 , icl r ) ;
AddSText ( 0 , 22 , _ ( " Leave " ) , UIS_SILVER | UIS_CENTER , true ) ;
PrintStoreItem ( & boyitem , 11 , itemColo r ) ;
AddSText ( 0 , 22 , _ ( " Leave " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
}
@ -999,12 +999,12 @@ void StartHealer()
HealPlayer ( ) ;
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 1 , _ ( " Welcome to the " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 3 , _ ( " Healer's home " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Pepin " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Buy items " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 16 , _ ( " Leave Healer's home " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 1 , _ ( " Welcome to the " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 3 , _ ( " Healer's home " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Pepin " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Buy items " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 16 , _ ( " Leave Healer's home " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
storenumh = 20 ;
}
@ -1015,11 +1015,11 @@ void ScrollHealerBuy(int idx)
stextup = 5 ;
for ( int l = 5 ; l < 20 ; l + = 4 ) {
if ( ! healitem [ idx ] . isEmpty ( ) ) {
uint16_t icl r = healitem [ idx ] . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = healitem [ idx ] . getTextColorWithStatCheck ( ) ;
AddSText ( 20 , l , healitem [ idx ] . _iName , icl r , true ) ;
AddSText ( 20 , l , healitem [ idx ] . _iName , itemColo r , true ) ;
AddSTextVal ( l , healitem [ idx ] . _iIvalue ) ;
PrintStoreItem ( & healitem [ idx ] , l + 1 , icl r ) ;
PrintStoreItem ( & healitem [ idx ] , l + 1 , itemColo r ) ;
stextdown = l ;
idx + + ;
}
@ -1038,11 +1038,11 @@ void StartHealerBuy()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " I have these items for sale: Your gold: {:d} " ) , Players [ MyPlayerId ] . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollHealerBuy ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
OffsetSTextY ( 22 , 6 ) ;
storenumh = 0 ;
@ -1058,11 +1058,11 @@ void StartStoryteller()
{
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 2 , _ ( " The Town Elder " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Cain " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Identify an item " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say goodbye " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 2 , _ ( " The Town Elder " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Cain " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 14 , _ ( " Identify an item " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say goodbye " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
}
@ -1156,10 +1156,10 @@ void StartStorytellerIdentify()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " You have nothing to identify. Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
return ;
}
@ -1171,11 +1171,11 @@ void StartStorytellerIdentify()
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
strcpy ( tempstr , fmt : : format ( _ ( " Identify which item? Your gold: {:d} " ) , myPlayer . _pGold ) . c_str ( ) ) ;
AddSText ( 0 , 1 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 1 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 3 ) ;
AddSLine ( 21 ) ;
ScrollSmithSell ( stextsval ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
OffsetSTextY ( 22 , 6 ) ;
}
@ -1187,12 +1187,12 @@ void StartStorytellerIdentifyShow()
auto & item = Players [ MyPlayerId ] . HoldItem ;
uint16_t icl r = item . getTextColorWithStatCheck ( ) ;
UiFlags itemColo r = item . getTextColorWithStatCheck ( ) ;
AddSText ( 0 , 7 , _ ( " This item is: " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 20 , 11 , item . _iIName , icl r , false ) ;
PrintStoreItem ( & item , 12 , icl r ) ;
AddSText ( 0 , 18 , _ ( " Done " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 7 , _ ( " This item is: " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 20 , 11 , item . _iIName , itemColo r , false ) ;
PrintStoreItem ( & item , 12 , itemColo r ) ;
AddSText ( 0 , 18 , _ ( " Done " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
}
void StartTalk ( )
@ -1202,15 +1202,15 @@ void StartTalk()
stextsize = false ;
stextscrl = false ;
strcpy ( tempstr , fmt : : format ( _ ( " Talk to {:s} " ) , TownerNames [ talker ] ) . c_str ( ) ) ;
AddSText ( 0 , 2 , tempstr , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 2 , tempstr , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSLine ( 5 ) ;
if ( gbIsSpawn ) {
strcpy ( tempstr , fmt : : format ( _ ( " Talking to {:s} " ) , TownerNames [ talker ] ) . c_str ( ) ) ;
AddSText ( 0 , 10 , tempstr , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " is not available " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 14 , _ ( " in the shareware " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 16 , _ ( " version " ) , UIS_SILVER | UIS_CENTER , false ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 10 , tempstr , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " is not available " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 14 , _ ( " in the shareware " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 16 , _ ( " version " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
return ;
}
@ -1232,23 +1232,23 @@ void StartTalk()
for ( int i = 0 ; i < MAXQUESTS ; i + + ) {
if ( Quests [ i ] . _qactive = = QUEST_ACTIVE & & QuestDialogTable [ talker ] [ i ] ! = TEXT_NONE & & Quests [ i ] . _qlog ) {
AddSText ( 0 , sn , _ ( QuestData [ i ] . _qlstr ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , sn , _ ( QuestData [ i ] . _qlstr ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
sn + = la ;
}
}
AddSText ( 0 , sn2 , _ ( " Gossip " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , sn2 , _ ( " Gossip " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 22 , _ ( " Back " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
}
void StartTavern ( )
{
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 1 , _ ( " Welcome to the " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 3 , _ ( " Rising Sun " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Ogden " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Leave the tavern " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 1 , _ ( " Welcome to the " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 3 , _ ( " Rising Sun " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Ogden " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Leave the tavern " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
storenumh = 20 ;
}
@ -1257,10 +1257,10 @@ void StartBarmaid()
{
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 2 , " Gillian " , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Gillian " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say goodbye " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 2 , " Gillian " , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Gillian " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say goodbye " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
storenumh = 20 ;
}
@ -1269,10 +1269,10 @@ void StartDrunk()
{
stextsize = false ;
stextscrl = false ;
AddSText ( 0 , 2 , _ ( " Farnham the Drunk " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UIS_GOLD | UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Farnham " ) , UIS_BLUE | UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say Goodbye " ) , UIS_SILVER | UIS_CENTER , true ) ;
AddSText ( 0 , 2 , _ ( " Farnham the Drunk " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 9 , _ ( " Would you like to: " ) , UiFlags : : U IS_GOLD | UiFlags : : UIS_CENTER , false ) ;
AddSText ( 0 , 12 , _ ( " Talk to Farnham " ) , UiFlags : : U IS_BLUE | UiFlags : : UIS_CENTER , true ) ;
AddSText ( 0 , 18 , _ ( " Say Goodbye " ) , UiFlags : : U IS_SILVER | UiFlags : : UIS_CENTER , true ) ;
AddSLine ( 5 ) ;
storenumh = 20 ;
}
@ -2161,18 +2161,18 @@ int TakeGold(PlayerStruct &player, int cost, bool skipMaxPiles)
return cost ;
}
void DrawSelector ( const Surface & out , const Rectangle & rect , const char * text , uint16_t flags )
void DrawSelector ( const Surface & out , const Rectangle & rect , const char * text , UiFlags flags )
{
int lineWidth = GetLineWidth ( text ) ;
int x1 = rect . position . x - 20 ;
if ( ( flags & UIS_CENTER ) ! = 0 )
if ( HasAnyOf ( flags , UiFlags : : UIS_CENTER ) )
x1 + = ( rect . size . width - lineWidth ) / 2 ;
CelDrawTo ( out , { x1 , rect . position . y + 1 } , * pSPentSpn2Cels , PentSpn2Spin ( ) ) ;
int x2 = rect . position . x + rect . size . width + 5 ;
if ( ( flags & UIS_CENTER ) ! = 0 )
if ( HasAnyOf ( flags , UiFlags : : UIS_CENTER ) )
x2 = rect . position . x + ( rect . size . width - lineWidth ) / 2 + lineWidth + 5 ;
CelDrawTo ( out , { x2 , rect . position . y + 1 } , * pSPentSpn2Cels , PentSpn2Spin ( ) ) ;
@ -2251,7 +2251,7 @@ void FreeStoreMem()
pSTextSlidCels = std : : nullopt ;
}
void PrintSString ( const Surface & out , int margin , int line , const char * text , uint16_t flags , int price )
void PrintSString ( const Surface & out , int margin , int line , const char * text , UiFlags flags , int price )
{
int sx = PANEL_X + 32 + margin ;
if ( ! stextsize ) {
@ -2271,7 +2271,7 @@ void PrintSString(const Surface &out, int margin, int line, const char *text, ui
if ( price > 0 ) {
char valstr [ 32 ] ;
sprintf ( valstr , " %i " , price ) ;
DrawString ( out , valstr , rect , flags | UIS_RIGHT ) ;
DrawString ( out , valstr , rect , flags | UiFlags : : U IS_RIGHT ) ;
}
if ( stextsel = = line ) {
@ -2309,7 +2309,7 @@ void ClearSText(int s, int e)
stext [ i ] . _sx = 0 ;
stext [ i ] . _syoff = 0 ;
stext [ i ] . _sstr [ 0 ] = 0 ;
stext [ i ] . flags = 0 ;
stext [ i ] . flags = UiFlags : : NONE ;
stext [ i ] . _sline = 0 ;
stext [ i ] . _ssel = false ;
stext [ i ] . _sval = 0 ;