# HG changeset patch
# User Grumpy7
# Date 1393094689 -3600
# Node ID 8673f3aedfb95da1230a459ab9b11005f4de22d2
# Parent afca921547954525960fd241218a89e355c1262a
sub_4B1523 to sub_4B1523_showSpellbookInfo, changed input type, some vars renamed
diff -r afca92154795 -r 8673f3aedfb9 Build/Visual Studio 2012/World of Might and Magic.sln
--- a/Build/Visual Studio 2012/World of Might and Magic.sln Sat Feb 22 18:25:53 2014 +0100
+++ b/Build/Visual Studio 2012/World of Might and Magic.sln Sat Feb 22 19:44:49 2014 +0100
@@ -1,4 +1,3 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "World of Might and Magic", "World of Might and Magic.vcxproj", "{5DA49362-EF43-4753-85DC-88CC41F26764}"
diff -r afca92154795 -r 8673f3aedfb9 Build/Visual Studio 2012/World of Might and Magic.vcxproj
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj Sat Feb 22 18:25:53 2014 +0100
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj Sat Feb 22 19:44:49 2014 +0100
@@ -42,11 +42,12 @@
true
$(Configuration)\
- $(WoMM_MM7_INSTALL_DIR)\
+ D:\Program Files (x86)\GOG.com\Might and Magic VII\
false
$(SolutionDirectory)../../;$(IncludePath)
+ false
false
diff -r afca92154795 -r 8673f3aedfb9 UI/UIShops.cpp
--- a/UI/UIShops.cpp Sat Feb 22 18:25:53 2014 +0100
+++ b/UI/UIShops.cpp Sat Feb 22 19:44:49 2014 +0100
@@ -1789,7 +1789,10 @@
pMouse->GetCursorPos(&cursor);
v3 = pRenderer->pActiveZBuffer[cursor.x + pSRZBufferLineOffsets[cursor.y]] & 0xFFFF;
if ( v3 )
- sub_4B1523((int *)&pParty->pPlayers[1].uExpressionTimeLength + 9 * (v3 + 12 * (unsigned int)window_SpeakInHouse->ptr_1C));
+ {
+ unsigned int guildId = (unsigned int)window_SpeakInHouse->ptr_1C - 139;
+ sub_4B1523_showSpellbookInfo(pParty->SpellBooksInGuilds[guildId][v3].uItemID);
+ }
}
}
//----- (004B1D27) --------------------------------------------------------
diff -r afca92154795 -r 8673f3aedfb9 mm7_4.cpp
--- a/mm7_4.cpp Sat Feb 22 18:25:53 2014 +0100
+++ b/mm7_4.cpp Sat Feb 22 19:44:49 2014 +0100
@@ -1731,10 +1731,10 @@
}
//----- (004B1523) --------------------------------------------------------
-void sub_4B1523(int *_this)
+void sub_4B1523_showSpellbookInfo(int spellItemId)
{
- int v1; // esi@1
- int v2; // edx@1
+ int spellId; // esi@1
+ int spellLevel; // edx@1
unsigned int v3; // eax@2
int v4; // eax@4
LONG v5; // ecx@4
@@ -1742,14 +1742,14 @@
char *v7; // ST44_4@12
unsigned __int16 v8; // ax@12
GUIWindow a1; // [sp+Ch] [bp-68h]@4
- unsigned int v11; // [sp+60h] [bp-14h]@1
+ unsigned int spellSchool; // [sp+60h] [bp-14h]@1
POINT a2; // [sp+64h] [bp-10h]@1
int v13; // [sp+6Ch] [bp-8h]@4
int v14; // [sp+70h] [bp-4h]@4
- v1 = *_this - 399;
- v2 = (*_this - 400) % 11 + 1;
- v11 = 4 * (*_this - 400) / 11;
+ spellId = spellItemId - 399;
+ spellLevel = (spellItemId - 400) % 11 + 1;
+ spellSchool = 4 * (spellItemId - 400) / 11;
// sprintf(pTmpBuf.data(), "%s%03d", spellbook_texture_filename_suffices[v11 / 4], v2); not used
if ( pMouse->GetCursorPos(&a2)->y <= 320 )
v3 = pMouse->GetCursorPos(&a2)->y + 30;
@@ -1774,11 +1774,11 @@
if ( v4 > v5 )
v5 = v4;
sprintf(pTmpBuf2.data(), "%s\n\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s\t000\n%s\t%03d:\t%03d%s",
- pSpellStats->pInfos[v1].pDescription, pGlobalTXT_LocalizationStrings[431], // "Normal"
- v5 + 3, v5 + 10, pSpellStats->pInfos[v1].pBasicSkillDesc, pGlobalTXT_LocalizationStrings[433], // "Expert"
- v5 + 3, v5 + 10, pSpellStats->pInfos[v1].pExpertSkillDesc, pGlobalTXT_LocalizationStrings[432], // "Master"
- v5 + 3, v5 + 10, pSpellStats->pInfos[v1].pMasterSkillDesc, pGlobalTXT_LocalizationStrings[96], // "Grand"
- v5 + 3, v5 + 10, pSpellStats->pInfos[v1].pGrandmasterSkillDesc);
+ pSpellStats->pInfos[spellId].pDescription, pGlobalTXT_LocalizationStrings[431], // "Normal"
+ v5 + 3, v5 + 10, pSpellStats->pInfos[spellId].pBasicSkillDesc, pGlobalTXT_LocalizationStrings[433], // "Expert"
+ v5 + 3, v5 + 10, pSpellStats->pInfos[spellId].pExpertSkillDesc, pGlobalTXT_LocalizationStrings[432], // "Master"
+ v5 + 3, v5 + 10, pSpellStats->pInfos[spellId].pMasterSkillDesc, pGlobalTXT_LocalizationStrings[96], // "Grand"
+ v5 + 3, v5 + 10, pSpellStats->pInfos[spellId].pGrandmasterSkillDesc);
v6 = pFontSmallnum->CalcTextHeight(pTmpBuf2.data(), &a1, 0, 0);
a1.uFrameHeight += v6;
if ( (signed int)a1.uFrameHeight < 150 )
@@ -1787,7 +1787,7 @@
a1.DrawMessageBox(0);
a1.uFrameWidth -= 12;
a1.uFrameHeight -= 12;
- v7 = pSpellStats->pInfos[v1].pName;
+ v7 = pSpellStats->pInfos[spellId].pName;
a1.uFrameZ = a1.uFrameX + a1.uFrameWidth - 1;
a1.uFrameW = a1.uFrameHeight + a1.uFrameY - 1;
v8 = Color16(0xFFu, 0xFFu, 0x9Bu);
@@ -1795,8 +1795,8 @@
a1.DrawText(pFontSmallnum, 120, 44, 0, pTmpBuf2.data(), 0, 0, 0);
a1.uFrameZ = a1.uFrameX + 107;
a1.uFrameWidth = 108;
- a1.DrawTitleText(pFontComic, 0xCu, 0x4Bu, 0, pSkillNames[v11 / 4 + 12], 3u);
- sprintfex(pTmpBuf.data(), "%s\n%d", pGlobalTXT_LocalizationStrings[522], *(&pSpellDatas[0].uNormalLevelMana + 10 * v1));
+ a1.DrawTitleText(pFontComic, 0xCu, 0x4Bu, 0, pSkillNames[spellSchool / 4 + 12], 3u);
+ sprintfex(pTmpBuf.data(), "%s\n%d", pGlobalTXT_LocalizationStrings[522], *(&pSpellDatas[0].uNormalLevelMana + 10 * spellId));
a1.DrawTitleText(pFontComic, 0xCu, a1.uFrameHeight - LOBYTE(pFontComic->uFontHeight) - 16, 0, pTmpBuf.data(), 3);
}
diff -r afca92154795 -r 8673f3aedfb9 mm7_unsorted_subs.h
--- a/mm7_unsorted_subs.h Sat Feb 22 18:25:53 2014 +0100
+++ b/mm7_unsorted_subs.h Sat Feb 22 19:44:49 2014 +0100
@@ -220,7 +220,7 @@
void PlayLevelMusic();
unsigned int __fastcall sub_4B0E07(unsigned int uFaceID); // idb
void sub_4B1447_party_fine(int a1, int a2, int a3);
-void sub_4B1523(int *_this);
+void sub_4B1523_showSpellbookInfo(int spellId);
void ShowPopupShopItem();
void RestAndHeal(__int64 uNumMinutes); // idb
void GetHouseGoodbyeSpeech();