# HG changeset patch
# User Ritor1
# Date 1362767584 -21600
# Node ID bd9f43d4fc3dae2f8d067afd609434f8b5001693
# Parent d92de5102da8545f0e93c200adb59f3b1998460a
Height text in Armor shop dialog
diff -r d92de5102da8 -r bd9f43d4fc3d GUIWindow.h
--- a/GUIWindow.h Fri Mar 08 22:41:24 2013 +0600
+++ b/GUIWindow.h Sat Mar 09 00:33:04 2013 +0600
@@ -325,7 +325,17 @@
UIMSG_ToggleTint = 0x1A8,
UIMSG_1A9 = 0x1A9,
};
-
+enum DIALOG_MENU
+{
+ DIALOG_SHOP_MAIN = 1,
+ DIALOG_SHOP_BUY_STANDART = 2,
+ DIALOG_SHOP_SELL = 3,
+ DIALOG_SHOP_IDENTIFY = 4,
+ DIALOG_SHOP_REPAIR = 5,
+ DIALOG_SHOP_DISPLAY_EQUIPMENT = 94,
+ DIALOG_SHOP_BUY_SPECIAL = 95,
+ DIALOG_SHOP_SKILLS = 96,
+};
enum CURRENT_SCREEN
{
SCREEN_GAME = 0x0,
diff -r d92de5102da8 -r bd9f43d4fc3d MM7.vcxproj.filters
--- a/MM7.vcxproj.filters Fri Mar 08 22:41:24 2013 +0600
+++ b/MM7.vcxproj.filters Sat Mar 09 00:33:04 2013 +0600
@@ -200,6 +200,8 @@
+
+
@@ -319,6 +321,7 @@
+
diff -r d92de5102da8 -r bd9f43d4fc3d mm7_2.cpp
--- a/mm7_2.cpp Fri Mar 08 22:41:24 2013 +0600
+++ b/mm7_2.cpp Sat Mar 09 00:33:04 2013 +0600
@@ -976,9 +976,9 @@
//----- (004B910F) --------------------------------------------------------
-char *__cdecl WeaponShopDialog()
-{
- Player *v0; // ebx@1
+void __cdecl WeaponShopDialog()
+{
+ //Player *v0; // ebx@1
char *result; // eax@6
signed int v2; // esi@8
unsigned int v3; // ebx@10
@@ -1043,7 +1043,7 @@
int v62; // ecx@90
ItemGen *v63; // esi@90
int v64; // eax@95
- int v65; // esi@96
+ int all_text_height; // esi@96
char **v66; // edi@96
int v67; // eax@97
GUIWindow *v68; // ecx@98
@@ -1079,71 +1079,65 @@
POINT a2; // [sp+64h] [bp-94h]@8
POINT v99; // [sp+6Ch] [bp-8Ch]@32
POINT v100; // [sp+74h] [bp-84h]@8
- GUIWindow v101; // [sp+7Ch] [bp-7Ch]@1
+ GUIWindow dialog_window; // [sp+7Ch] [bp-7Ch]@1
char *Str; // [sp+D0h] [bp-28h]@55
__int32 v103; // [sp+D4h] [bp-24h]@25
- int v104; // [sp+D8h] [bp-20h]@1
- int v105; // [sp+DCh] [bp-1Ch]@1
+ int pColor2; // [sp+D8h] [bp-20h]@1
+ int pColorWhite; // [sp+DCh] [bp-1Ch]@1
POINT v106; // [sp+E0h] [bp-18h]@8
- Player *_this; // [sp+E8h] [bp-10h]@1
+ Player *pPlayer; // [sp+E8h] [bp-10h]@1
int v108; // [sp+ECh] [bp-Ch]@26
const char **v109; // [sp+F0h] [bp-8h]@26
unsigned __int8 v110; // [sp+F7h] [bp-1h]@16
- v0 = pPlayers[uActiveCharacter];
- _this = pPlayers[uActiveCharacter];
- memcpy(&v101, window_SpeakInHouse, sizeof(v101));
- v101.uFrameX = 483;
- v101.uFrameWidth = 148;
- v101.uFrameZ = 334;
- v105 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
- v104 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xE1u, 0xCDu, 0x23u);
+ //v0 = pPlayers[uActiveCharacter];
+ pPlayer = pPlayers[uActiveCharacter];
+ memcpy(&dialog_window, window_SpeakInHouse, sizeof(dialog_window));
+ dialog_window.uFrameX = 483;
+ dialog_window.uFrameWidth = 148;
+ dialog_window.uFrameZ = 334;
+ pColorWhite = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
+ pColor2 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xE1u, 0xCDu, 0x23u);
switch(dialog_menu_id)
{
- case 94:
- {
+ case DIALOG_SHOP_DISPLAY_EQUIPMENT:
+ {
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
- pShopOptions[0] = pGlobalTXT_LocalizationStrings[200];
- pShopOptions[1] = pGlobalTXT_LocalizationStrings[113];
- pShopOptions[2] = pGlobalTXT_LocalizationStrings[179];
- v65 = 0;
- v66 = pShopOptions;
- do
- {
- v67 = pFontArrus->CalcTextHeight(*v66, &v101, 0, 0);
- ++v66;
- v65 += v67;
- }
- while ( (signed int)v66 < (signed int)&pShopOptions[3] );
+ pShopOptions[0] = pGlobalTXT_LocalizationStrings[200];//sell
+ pShopOptions[1] = pGlobalTXT_LocalizationStrings[113];//identify
+ pShopOptions[2] = pGlobalTXT_LocalizationStrings[179];//repair
+ all_text_height = 0;
+ for(int i = 0; i < 3; ++i)
+ all_text_height += pFontArrus->CalcTextHeight(pShopOptions[i], &dialog_window, 0, 0);
v68 = pDialogueWindow;
- v109 = (const char **)((174 - v65) / 3);
+ v109 = (const char **)((174 - all_text_height) / 3);
result = (char *)pDialogueWindow->pStartingPosActiveItem;
v69 = (int)&result[pDialogueWindow->pNumPresenceButton];
- v70 = (3 * (58 - (signed int)v109) - v65) / 2 - (174 - v65) / 3 / 2 + 138;
+ v70 = (3 * (58 - (signed int)v109) - all_text_height) / 2 - ((174 - all_text_height) / 3) / 2 + 138;
v20 = -pDialogueWindow->pNumPresenceButton < 0;
v106.y = pDialogueWindow->pStartingPosActiveItem;
if ( v20 ^ __OFSUB__((int)result, (int)v69) )
{
- _this = (Player *)2;
+ pPlayer = (Player *)2;
v108 = (int)pShopOptions;
do
{
v71 = v68->GetControl(v106.y);
v72 = (const char **)v108;
v71->uY = (unsigned int)((char *)v109 + v70);
- v73 = pFontArrus->CalcTextHeight(*v72, &v101, 0, 0);
+ v73 = pFontArrus->CalcTextHeight(*v72, &dialog_window, 0, 0);
v74 = v71->uY;
- v75 = _this;
+ v75 = pPlayer;
v71->uHeight = v73;
v70 = v73 + v74 - 1;
v71->uW = v70;
- v76 = v104;
+ v76 = pColor2;
if ( (Player *)pDialogueWindow->pCurrentPosActiveItem != v75 )
- v76 = v105;
- v101.DrawTitleText(pFontArrus, 0, v74, v76, *(const char **)v108, 3u);
+ v76 = pColorWhite;
+ dialog_window.DrawTitleText(pFontArrus, 0, v74, v76, *(const char **)v108, 3u);
v68 = pDialogueWindow;
- _this = (Player *)((char *)_this + 1);
+ pPlayer = (Player *)((char *)pPlayer + 1);
v108 += 4;
++v106.y;
result = (char *)(pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem);
@@ -1152,7 +1146,7 @@
}
break;
}
- case 96:
+ case DIALOG_SHOP_SKILLS:
{
result = (char *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
if ( result )
@@ -1163,7 +1157,7 @@
v106.y = 0;
//v32 = (signed __int64)(*(float *)&p2DEvents_minus1__24[13 * (signed int)v31] * 500.0);
v32 = (signed __int64)(p2DEvents[(signed int)v31 - 1].flt_24 * 500.0);
- v108 = v32 * (100 - _this->GetMerchant()) / 100;
+ v108 = v32 * (100 - pPlayer->GetMerchant()) / 100;
if ( v108 < v32 / 3 )
v108 = v32 / 3;
v33 = v30->pStartingPosActiveItem;
@@ -1171,25 +1165,25 @@
v109 = 0;
if ( (signed int)v33 >= v34 )
{
- sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->classType]);
+ sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], pPlayer->pName, pClassNames[pPlayer->classType]);
strcat(pTmpBuf, "\n \n");
strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);
v7 = pTmpBuf;
v86 = 3;
v84 = pTmpBuf;
- v82 = v104;
+ v82 = pColor2;
v80 = 0;
v78 = 0;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
do
{
v35 = v30->GetControl(v33)->uControlParam - 36;
- if ( byte_4ED970_skill_learn_ability_by_class_table[_this->classType][v35] && !_this->pActiveSkills[v35] )
- {
- v36 = pFontArrus->CalcTextHeight(pSkillNames[v35], &v101, 0, 0);
+ if ( byte_4ED970_skill_learn_ability_by_class_table[pPlayer->classType][v35] && !pPlayer->pActiveSkills[v35] )
+ {
+ v36 = pFontArrus->CalcTextHeight(pSkillNames[v35], &dialog_window, 0, 0);
v106.y += v36;
v109 = (const char **)((char *)v109 + 1);
}
@@ -1199,21 +1193,21 @@
if ( !v109 )
{
//LABEL_105:
- sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->classType]);
+ sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], pPlayer->pName, pClassNames[pPlayer->classType]);
strcat(pTmpBuf, "\n \n");
strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]);
v7 = pTmpBuf;
v86 = 3;
v84 = pTmpBuf;
- v82 = v104;
+ v82 = pColor2;
v80 = 0;
v78 = 0;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[401], v108);
- v101.DrawTitleText(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u);
+ dialog_window.DrawTitleText(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u);
v108 = (149 - v106.y) / (signed int)v109;
if ( (149 - v106.y) / (signed int)v109 > 32 )
v108 = 32;
@@ -1229,7 +1223,7 @@
v38 = v30->GetControl(v106.y);
v39 = v38;
v40 = v38->uControlParam - 36;
- if ( !byte_4ED970_skill_learn_ability_by_class_table[_this->classType][v40] || _this->pActiveSkills[v40] )
+ if ( !byte_4ED970_skill_learn_ability_by_class_table[pPlayer->classType][v40] || pPlayer->pActiveSkills[v40] )
{
v39->uW = 0;
v39->uHeight = 0;
@@ -1240,17 +1234,17 @@
v41 = pSkillNames[v40];
v39->uY = v108 + v103;
Str = v41;
- v42 = pFontArrus->CalcTextHeight(v41, &v101, 0, 0);
+ v42 = pFontArrus->CalcTextHeight(v41, &dialog_window, 0, 0);
v43 = v39->uY;
v44 = v109;
v39->uHeight = v42;
v45 = v43 + v42 - 1;
v39->uW = v45;
v103 = v45;
- v46 = v104;
+ v46 = pColor2;
if ( (const char **)pDialogueWindow->pCurrentPosActiveItem != v44 )
- v46 = v105;
- v101.DrawTitleText(pFontArrus, 0, v43, v46, Str, 3u);
+ v46 = pColorWhite;
+ dialog_window.DrawTitleText(pFontArrus, 0, v43, v46, Str, 3u);
}
v47 = v30->pStartingPosActiveItem;
++v106.y;
@@ -1262,7 +1256,7 @@
}
break;
}
- case 95:
+ case DIALOG_SHOP_BUY_SPECIAL:
{
pRenderer->DrawTextureIndexed(8u, 8u, ShopTexture);
v3 = 0;
@@ -1300,7 +1294,7 @@
}
while ( v55 < 6 );
v56 = GetAsyncKeyState(17);
- v57 = _this->CanSteal();
+ v57 = pPlayer->CanSteal();
Str = (char *)v57;
if ( v56 && v57 )
{
@@ -1333,18 +1327,18 @@
v81 = window_SpeakInHouse->ptr_1C;
v79 = v63;
v110 = uActiveCharacter - 1;
- v64 = _this->_490EEE(v63, 1, v61, 2);
+ v64 = pPlayer->_490EEE(v63, 1, v61, 2);
v6 = v110;
v5 = (char *)pMerchantsBuyPhrases[v64];
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
v5 = pGlobalTXT_LocalizationStrings[181];
v85 = 0;
@@ -1355,23 +1349,23 @@
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
}
else
{
- v101.DrawCurrentTime( pParty->field_3C.field_50[(unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
+ dialog_window.DrawCurrentTime( pParty->field_3C.field_50[(unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
result =0; //added
}
}
break;
}
- case 2:
+ case DIALOG_SHOP_BUY_STANDART:
{
pRenderer->DrawTextureIndexed(8u, 8u, ShopTexture);
v3 = 0;
@@ -1413,7 +1407,7 @@
}
while ( v55 < 6 );
v56 = GetAsyncKeyState(17);
- v57 = _this->CanSteal();
+ v57 = pPlayer->CanSteal();
Str = (char *)v57;
if ( v56 && v57 )
{
@@ -1446,18 +1440,18 @@
v81 = window_SpeakInHouse->ptr_1C;
v79 = v63;
v110 = uActiveCharacter - 1;
- v64 = _this->_490EEE(v63, 1, v61, 2);
+ v64 = pPlayer->_490EEE(v63, 1, v61, 2);
v6 = v110;
v5 = (char *)pMerchantsBuyPhrases[v64];
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
v5 = pGlobalTXT_LocalizationStrings[181];
v85 = 0;
@@ -1468,23 +1462,23 @@
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
}
else
{
- v101.DrawCurrentTime( pParty->field_3C.field_50[(unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
+ dialog_window.DrawCurrentTime( pParty->field_3C.field_50[(unsigned int)window_SpeakInHouse->ptr_1C] - pParty->uTimePlayed);
result =0; //added
}
}
break;
}
- case 3:
+ case DIALOG_SHOP_SELL:
{
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
@@ -1500,35 +1494,35 @@
result = (char *)pMouse->GetCursorPos(&v90);
if ( *(int *)result < 462 )
{
- result = (char *)v0->GetItemIDAtInventoryIndex((int *)&v106.x);
+ result = (char *)pPlayer->GetItemIDAtInventoryIndex((int *)&v106.x);
v3 = 0;
if ( result )
{
v85 = 0;
v83 = 3;
v81 = window_SpeakInHouse->ptr_1C;
- v79 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
+ v79 = (ItemGen *)&pPlayer->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
v12 = (int)window_SpeakInHouse->ptr_1C;
v110 = uActiveCharacter - 1;
- v13 = _this->_490EEE(v79, 1, v12, 3);
+ v13 = pPlayer->_490EEE(v79, 1, v12, 3);
v6 = v110;
v5 = (char *)pMerchantsSellPhrases[v13];
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
}
}
}
break;
}
- case 4:
+ case DIALOG_SHOP_IDENTIFY:
{
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
@@ -1544,31 +1538,31 @@
result = (char *)pMouse->GetCursorPos(&v92);
if ( *(int *)result < 462 )
{
- result = (char *)v0->GetItemIDAtInventoryIndex((int *)&v106.x);
+ result = (char *)pPlayer->GetItemIDAtInventoryIndex((int *)&v106.x);
v3 = 0;
if ( result )
{
v85 = 0;
v83 = 4;
- v4 = (ItemGen *)&_this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
+ v4 = (ItemGen *)&pPlayer->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * (int)result + 5];
if (!v4->Identified())
{
v81 = window_SpeakInHouse->ptr_1C;
v79 = v4;
v9 = (int)window_SpeakInHouse->ptr_1C;
v110 = uActiveCharacter - 1;
- v10 = _this->_490EEE(v4, 1, v9, 4);
+ v10 = pPlayer->_490EEE(v4, 1, v9, 4);
v6 = v110;
v5 = (char *)pMerchantsIdentifyPhrases[v10];
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
v81 = window_SpeakInHouse->ptr_1C;
v5 = "%24";
@@ -1579,20 +1573,20 @@
v7 = BuilDialogueString(v5, v6, v79, (char *)v81, v83, v85);
v86 = 3;
v84 = v7;
- v82 = v105;
+ v82 = pColorWhite;
v80 = v3;
v78 = v3;
- v77 = &v101;
+ v77 = &dialog_window;
//LABEL_15:
v8 = pFontArrus->CalcTextHeight(v7, v77, v78, v80);
- return v101.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
+ dialog_window.DrawTitleText(pFontArrus, v3, (174 - v8) / 2 + 138, v82, v84, v86);
}
}
}
}
break;
}
- case 1:
+ case DIALOG_SHOP_MAIN:
{
result = (char *)sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win();
if ( result )
@@ -1600,49 +1594,52 @@
pShopOptions[0] = pGlobalTXT_LocalizationStrings[134];
pShopOptions[1] = pGlobalTXT_LocalizationStrings[152];
pShopOptions[2] = pGlobalTXT_LocalizationStrings[159];
- v14 = 0;
+ //v14 = 0;
pShopOptions[3] = pGlobalTXT_LocalizationStrings[160];
- v15 = pShopOptions;
+ all_text_height = 0;
+ /*v15 = pShopOptions;
do
{
- v16 = pFontArrus->CalcTextHeight(*v15, &v101, 0, 0);
+ v16 = pFontArrus->CalcTextHeight(*v15, &dialog_window, 0, 0);
++v15;
v14 += v16;
}
- while ( (signed int)v15 < (signed int)&unk_F8B1C8 );
+ while ( (signed int)v15 < (signed int)&unk_F8B1C8 );*/
+ for(int i =0; i < 4; ++i)
+ all_text_height += pFontArrus->CalcTextHeight(pShopOptions[i], &dialog_window, 0, 0);
v17 = pDialogueWindow;
- v103 = (174 - v14) / 4;
+ v103 = (174 - all_text_height) / 4;
result = (char *)pDialogueWindow->pStartingPosActiveItem;
v18 = (int)&result[pDialogueWindow->pNumPresenceButton];
- v19 = (174 - 4 * (174 - v14) / 4 - v14) / 2 - (174 - v14) / 4 / 2 + 138;
+ v19 = (174 - 4 * (174 - all_text_height) / 4 - all_text_height) / 2 - (174 - all_text_height) / 4 / 2 + 138;
v20 = -pDialogueWindow->pNumPresenceButton < 0;
- _this = (Player *)pDialogueWindow->pStartingPosActiveItem;
+ pPlayer = (Player *)pDialogueWindow->pStartingPosActiveItem;
if ( v20 ^ __OFSUB__((int)result, v18) )
{
v108 = 2;
v109 = (const char **)pShopOptions;
do
{
- v21 = v17->GetControl((unsigned int)_this);
+ v21 = v17->GetControl((unsigned int)pPlayer);
v22 = v109;
v21->uY = v103 + v19;
- v23 = pFontArrus->CalcTextHeight(*v22, &v101, 0, 0);
+ v23 = pFontArrus->CalcTextHeight(*v22, &dialog_window, 0, 0);
v24 = v21->uY;
v25 = v108;
v21->uHeight = v23;
v19 = v24 + v23 - 1;
v21->uW = v19;
- v26 = v104;
+ v26 = pColor2;
if ( pDialogueWindow->pCurrentPosActiveItem != v25 )
- v26 = v105;
- v101.DrawTitleText(pFontArrus, 0, v24, v26, *v109, 3u);
+ v26 = pColorWhite;
+ dialog_window.DrawTitleText(pFontArrus, 0, v24, v26, *v109, 3u);
v17 = pDialogueWindow;
++v108;
++v109;
- _this = (Player *)((char *)_this + 1);
+ pPlayer = (Player *)((char *)pPlayer + 1);
result = (char *)(pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem);
}
- while ( (signed int)_this < (signed int)result );
+ while ( (signed int)pPlayer < (signed int)result );
}
}
break;
@@ -1656,7 +1653,6 @@
break;
}
}
- return result;
}
@@ -2528,8 +2524,8 @@
m_text_color = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
hilight_color = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xE1u, 0xCDu, 0x23u);
switch (dialog_menu_id)
- {
- case 1: //main shop text
+ {
+ case DIALOG_SHOP_MAIN:
{
if ( !sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() )
return;
@@ -2566,7 +2562,7 @@
}
}
break;
- case 2: //buy standart
+ case DIALOG_SHOP_BUY_STANDART:
{
pRenderer->DrawTextureIndexed(8, 8, ShopTexture);
textureW = 0;
@@ -2646,7 +2642,7 @@
return;
}
break;
- case 3: //sell
+ case DIALOG_SHOP_SELL:
{
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
@@ -2673,7 +2669,7 @@
return;
}
break;
- case 4: //identify
+ case DIALOG_SHOP_IDENTIFY:
{
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
@@ -2717,7 +2713,7 @@
}
}
break;
- case 5: //repair
+ case DIALOG_SHOP_REPAIR:
{
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
@@ -2813,7 +2809,7 @@
return;
}
break;
- case 94: //character inventory
+ case DIALOG_SHOP_DISPLAY_EQUIPMENT:
{
draw_leather();
CharacterUI_InventoryTab_Draw(uActiveCharacter, 1);
@@ -2860,11 +2856,9 @@
return;
}
break;
- case 95: //buy spesial
- {
-
+ case DIALOG_SHOP_BUY_SPECIAL:
+ {
pRenderer->DrawTextureIndexed(8, 8, ShopTexture);
-
v11 = 0;
v61 = 0;
v153 = 0;
@@ -2951,11 +2945,9 @@
dialog_window.DrawCurrentTime( pParty->field_3C.field_50[window_SpeakInHouse->par1C]- pParty->uTimePlayed);
return;
}
-
break;
- case 96: //skills
- {
-
+ case DIALOG_SHOP_SKILLS:
+ {
if (!sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() )
return;
v152 = 0;
@@ -3041,9 +3033,7 @@
return;
}
break;
-
- }
-
+ }
}
//----- (004BB756) --------------------------------------------------------
diff -r d92de5102da8 -r bd9f43d4fc3d mm7_data.h
--- a/mm7_data.h Fri Mar 08 22:41:24 2013 +0600
+++ b/mm7_data.h Sat Mar 09 00:33:04 2013 +0600
@@ -2330,7 +2330,7 @@
void __cdecl BankDialog();
void __cdecl TavernDialog();
-char *__cdecl WeaponShopDialog();
+void __cdecl WeaponShopDialog();
POINT *__cdecl AlchemistDialog();
void __cdecl ArmorShopDialog();
signed int __fastcall sub_4BB756(signed int a1);