# HG changeset patch
# User Grumpy7
# Date 1382580787 25200
# Node ID df4e27f2a541117fd3641d0943e7027405fff3ca
# Parent 4cce1e24b7e7796ef01d9c0b5d633cb406d7c719# Parent 3eb0c4f3d89960e326898dfe89f748a38e731f80
Merge
diff -r 4cce1e24b7e7 -r df4e27f2a541 Build/Visual Studio 2012/World of Might and Magic.sln
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Build/Visual Studio 2012/World of Might and Magic.sln Wed Oct 23 19:13:07 2013 -0700
@@ -0,0 +1,20 @@
+
+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}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5DA49362-EF43-4753-85DC-88CC41F26764}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5DA49362-EF43-4753-85DC-88CC41F26764}.Debug|Win32.Build.0 = Debug|Win32
+ {5DA49362-EF43-4753-85DC-88CC41F26764}.Release|Win32.ActiveCfg = Release|Win32
+ {5DA49362-EF43-4753-85DC-88CC41F26764}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff -r 4cce1e24b7e7 -r df4e27f2a541 Build/Visual Studio 2012/World of Might and Magic.v11.suo
Binary file Build/Visual Studio 2012/World of Might and Magic.v11.suo has changed
diff -r 4cce1e24b7e7 -r df4e27f2a541 Build/Visual Studio 2012/World of Might and Magic.vcxproj
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj Wed Oct 23 19:13:07 2013 -0700
@@ -0,0 +1,378 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {5DA49362-EF43-4753-85DC-88CC41F26764}
+ Win32Proj
+ WorldofMightandMagic
+
+
+
+ Application
+ true
+ v110
+ Unicode
+
+
+ Application
+ false
+ v110
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(Configuration)\
+ $(WoMM_MM7_INSTALL_DIR)\
+ false
+
+
+ false
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ $(IntDir)%(Directory)
+ ProgramDatabase
+
+
+ Windows
+ true
+ ..\..\lib\legacy_dx\lib\ddraw.lib;..\..\lib\legacy_dx\lib\dxguid.lib;%(AdditionalDependencies)
+ $(OutDir)$(TargetName)$(TargetExt)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 4cce1e24b7e7 -r df4e27f2a541 Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Wed Oct 23 19:13:07 2013 -0700
@@ -0,0 +1,592 @@
+
+
+
+
+ {01df770d-32ca-4bfa-8448-de7b6ae4b15c}
+
+
+ {e6df15ec-967c-40ca-b954-c78fe66daed1}
+
+
+ {23711e0a-ee63-4da3-9c0d-22d02dd41747}
+
+
+ {9448e73a-c435-43ee-8586-08607774a0d0}
+
+
+ {1d2c44d0-de33-46dd-a3bf-dce44afda794}
+
+
+ {501083c0-a7b6-445f-a8fb-fa12cd345924}
+
+
+ {6fea8cb0-1887-4477-a64d-16e64b5de807}
+
+
+ {8f45576f-cc60-4d3a-837e-deb373a67f8a}
+
+
+ {d61aec30-ad58-4a9f-8f0a-e129f1947429}
+
+
+ {c0b8b696-9a12-4b22-b8c1-0262d7fbb306}
+
+
+
+
+ Level
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ NewUI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI
+
+
+ UI\Books
+
+
+ UI\Books
+
+
+ UI\Books
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\legacy_dx
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\zlib
+
+
+ lib\lua
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ lib\lua\lua-5.2.2
+
+
+ NewUI
+
+
+ NewUI\Core
+
+
+ UI
+
+
+ UI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lib\legacy_dx
+
+
+
\ No newline at end of file
diff -r 4cce1e24b7e7 -r df4e27f2a541 Build/Visual Studio 2012/World of Might and Magic.vcxproj.user
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.user Wed Oct 23 19:13:07 2013 -0700
@@ -0,0 +1,9 @@
+
+
+
+ $(OutDir)$(TargetName)$(TargetExt)
+ $(OutDir)
+ WindowsLocalDebugger
+ -novideo -nomarg
+
+
\ No newline at end of file
diff -r 4cce1e24b7e7 -r df4e27f2a541 Build/init_win.bat
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Build/init_win.bat Wed Oct 23 19:13:07 2013 -0700
@@ -0,0 +1,58 @@
+@echo off
+set _mm7_install_dir=E:\g\mm collection\MM_VII
+
+
+
+
+REM Check Windows Version
+
+ver | findstr /i "5\.0\." > nul
+IF %ERRORLEVEL% EQU 0 goto win_2000
+
+ver | findstr /i "5\.1\." > nul
+IF %ERRORLEVEL% EQU 0 goto win_xp
+
+ver | findstr /i "5\.2\." > nul
+IF %ERRORLEVEL% EQU 0 goto win_2003
+
+ver | findstr /i "6\.0\." > nul
+IF %ERRORLEVEL% EQU 0 goto win_vista
+
+ver | findstr /i "6\.1\." > nul
+IF %ERRORLEVEL% EQU 0 goto win_7
+
+echo Machine OS cannot be determined.
+goto end
+
+:win_7
+echo Win 7
+reg add HKCU\Environment /f /v "WoMM_MM7_INSTALL_DIR" /t REG_SZ /d "%_mm7_install_dir%"
+
+reg query HKCU\Environment /v "WoMM_MM7_INSTALL_DIR"
+goto end
+
+:win_2000
+echo Win 2000
+goto end
+
+:win_xp
+echo Win XP
+reg add HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /f /v "WoMM_MM7_INSTALL_DIR" /t REG_SZ /d "%_mm7_install_dir%"
+
+
+reg query HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v "WoMM_MM7_INSTALL_DIR"
+goto end
+
+:win_vista
+echo Win Vista
+goto end
+
+:win_2003
+echo Win 2003
+goto end
+
+:check_vars
+goto end
+
+:end
+pause
\ No newline at end of file
diff -r 4cce1e24b7e7 -r df4e27f2a541 Events.cpp
--- a/Events.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Events.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -700,7 +700,7 @@
{
if ( pEventID == 78 )
{
- sub_4BD8B5();
+ HouseDialogPressCloseBtn();
window_SpeakInHouse->Release();
pParty->uFlags &= ~2;
if ( EnterHouse(HOUSE_DARK_GUILD_PIT) )
@@ -797,7 +797,7 @@
if ( window_SpeakInHouse->par1C == 165 )
{
- sub_4BD8B5();
+ HouseDialogPressCloseBtn();
pVideoPlayer->Unload();
window_SpeakInHouse->Release();
pParty->uFlags &= ~2;
@@ -1434,7 +1434,7 @@
{
pAudioPlayer->StopChannels(-1, -1);
dialog_menu_id = HOUSE_DIALOGUE_NULL;
- while ( sub_4BD8B5() )
+ while ( HouseDialogPressCloseBtn() )
;
pVideoPlayer->Unload();
window_SpeakInHouse->Release();
diff -r 4cce1e24b7e7 -r df4e27f2a541 Game.cpp
--- a/Game.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Game.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -2437,12 +2437,12 @@
uDialogueType = 0;
if ( uGameState == GAME_STATE_2 )
{
- while ( sub_4BD8B5() )
+ while ( HouseDialogPressCloseBtn() )
;
}
else
{
- if ( sub_4BD8B5() )
+ if ( HouseDialogPressCloseBtn() )
continue;
}
GetHouseGoodbyeSpeech();
@@ -3069,7 +3069,7 @@
_5B65B0_npcdata_rep_or_other = v56;
dword_5B65C0 = v55 | _5B65AC_npcdata_fame_or_other | v56 | v57;
}
- sub_4BD8B5();
+ HouseDialogPressCloseBtn();
//goto LABEL_434;
/*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 )
{
diff -r 4cce1e24b7e7 -r df4e27f2a541 Indoor.cpp
--- a/Indoor.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Indoor.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -561,7 +561,7 @@
stru_F7B60C.face_plane.dist = pFace->pFacePlane.dist;
}
- if (stru_F8AD28.uNumLightsApplied > 0 && !(pFace->uAttributes & FACE_DO_NOT_LIGHT))
+ if (stru_F8AD28.uNumLightsApplied > 0 && !(pFace->uAttributes & FACE_INDOOR_SKY))
pGame->pLightmapBuilder->ApplyLights(&stru_F8AD28, &stru_F7B60C, uNumVerticesa, array_507D30, pVertices, 0);
if (pDecalBuilder->uNumDecals > 0)
@@ -601,8 +601,8 @@
v27 = pBitmaps_LOD->pHardwareTextures[v23];
}
- if (pFace->uAttributes & FACE_DO_NOT_LIGHT)
- pRenderer->DrawIndoorPolygonNoLight(uNumVerticesa, uFaceID);
+ if (pFace->uAttributes & FACE_INDOOR_SKY)
+ pRenderer->DrawIndoorSky(uNumVerticesa, uFaceID);
else
pRenderer->DrawIndoorPolygon(uNumVerticesa, pFace, v27, v28, PID(OBJECT_BModel, uFaceID), v17, 0);
return;
diff -r 4cce1e24b7e7 -r df4e27f2a541 Indoor.h
--- a/Indoor.h Wed Oct 23 00:02:06 2013 -0700
+++ b/Indoor.h Wed Oct 23 19:13:07 2013 -0700
@@ -235,7 +235,7 @@
#define FACE_TEXTURE_FRAME 0x00004000 // Texture ID is a frameset from TextureFrameTable, otherwise BitmapID
#define FACE_OUTLINED 0x00010000 // outline face edges
#define FACE_TEXTURE_FLOW 0x00040000 // The texture moves slowly. For horizontal facets only.
-#define FACE_DO_NOT_LIGHT 0x00400000
+#define FACE_INDOOR_SKY 0x00400000
#define FACE_CLICKABLE 0x02000000 // Event can be triggered by clicking on the facet.
#define FACE_PRESSURE_PLATE 0x04000000 // Event can be triggered by stepping on the facet.
#define FACE_ETHEREAL 0x20000000 // Untouchable. You can pass through it.
diff -r 4cce1e24b7e7 -r df4e27f2a541 Items.cpp
--- a/Items.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Items.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -2428,109 +2428,109 @@
}
//----- (004B8E3D) --------------------------------------------------------
void GenerateStandartShopItems()
- {
- signed int item_count;
- signed int shop_index;
- int treasure_lvl;
- int item_class;
- int mdf;
+{
+ signed int item_count;
+ signed int shop_index;
+ int treasure_lvl;
+ int item_class;
+ int mdf;
- shop_index = (signed int)window_SpeakInHouse->ptr_1C;
- if ( uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType] )
- {
- for (item_count=0; item_count<=uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType]; ++item_count )
- {
- if (shop_index<=14) //weapon shop
- {
- treasure_lvl = shopWeap_variation_ord[shop_index].treasure_level;
- item_class =shopWeap_variation_ord[shop_index].item_class[rand() % 4];
- }
- else if (shop_index<=28) //armor shop
- {
- mdf =0;
- if (item_count > 3)
- ++mdf;// rechek offsets
- treasure_lvl = shopArmr_variation_ord[2*(shop_index-15)+mdf].treasure_level;
- item_class =shopArmr_variation_ord[2*(shop_index-15)+mdf].item_class[rand() % 4];
- }
- else if (shop_index<=41) //magic shop
- {
- treasure_lvl = shopMagic_treasure_lvl[shop_index-28];
- item_class = 22; //misc
- }
- else if (shop_index<=53) //alchemist shop
- {
- if (item_count<6)
- {
- pParty->StandartItemsInShops[shop_index][item_count].Reset();
- pParty->StandartItemsInShops[shop_index][item_count].uItemID = 220; //potion bottle
- continue;
- }
- else
- {
- treasure_lvl = shopAlch_treasure_lvl[shop_index-41];
- item_class = 45; //reagent
- }
- }
- pItemsTable->GenerateItem(treasure_lvl, item_class, &pParty->StandartItemsInShops[shop_index][item_count]);
- pParty->StandartItemsInShops[shop_index][item_count].SetIdentified(); //identified
- }
- }
- pParty->InTheShopFlags[shop_index] = 0;
- }
+ shop_index = (signed int)window_SpeakInHouse->ptr_1C;
+ if ( uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType] )
+ {
+ for (item_count = 0; item_count < uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType]; ++item_count )
+ {
+ if (shop_index <= 14) //weapon shop
+ {
+ treasure_lvl = shopWeap_variation_ord[shop_index].treasure_level;
+ item_class = shopWeap_variation_ord[shop_index].item_class[rand() % 4];
+ }
+ else if (shop_index <= 28) //armor shop
+ {
+ mdf = 0;
+ if (item_count > 3)
+ ++mdf;// rechek offsets
+ treasure_lvl = shopArmr_variation_ord[2*(shop_index - 15) + mdf].treasure_level;
+ item_class = shopArmr_variation_ord[2*(shop_index - 15) + mdf].item_class[rand() % 4];
+ }
+ else if (shop_index <= 41) //magic shop
+ {
+ treasure_lvl = shopMagic_treasure_lvl[shop_index - 28];
+ item_class = 22; //misc
+ }
+ else if (shop_index <= 53) //alchemist shop
+ {
+ if (item_count < 6)
+ {
+ pParty->StandartItemsInShops[shop_index][item_count].Reset();
+ pParty->StandartItemsInShops[shop_index][item_count].uItemID = 220; //potion bottle
+ continue;
+ }
+ else
+ {
+ treasure_lvl = shopAlch_treasure_lvl[shop_index - 41];
+ item_class = 45; //reagent
+ }
+ }
+ pItemsTable->GenerateItem(treasure_lvl, item_class, &pParty->StandartItemsInShops[shop_index][item_count]);
+ pParty->StandartItemsInShops[shop_index][item_count].SetIdentified(); //identified
+ }
+ }
+ pParty->InTheShopFlags[shop_index] = 0;
+}
//----- (004B8F94) --------------------------------------------------------
void GenerateSpecialShopItems()
- {
- signed int item_count;
- signed int shop_index;
- int treasure_lvl;
- int item_class;
- int mdf;
+{
+ signed int item_count;
+ signed int shop_index;
+ int treasure_lvl;
+ int item_class;
+ int mdf;
- shop_index = (signed int)window_SpeakInHouse->ptr_1C;
- if ( uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType] )
- {
- for (item_count=0; item_count<=uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType]; ++item_count )
- {
- if (shop_index<=14) //weapon shop
- {
- treasure_lvl = shopWeap_variation_spc[shop_index].treasure_level;
- item_class = shopWeap_variation_spc[shop_index].item_class[rand() % 4];
- }
- else if (shop_index<=28) //armor shop
- {
- mdf =0;
- if (item_count > 3)
- ++mdf;
- treasure_lvl = shopArmr_variation_spc[2*(shop_index-15)+mdf].treasure_level;
- item_class =shopArmr_variation_spc[2*(shop_index-15)+mdf].item_class[rand() % 4];
- }
- else if (shop_index<=41) //magic shop
- {
- treasure_lvl = shopMagicSpc_treasure_lvl[shop_index-28];
- item_class = 22; //misc
- }
- else if (shop_index<=53) //alchemist shop
- {
- if (item_count<6)
- {
- pParty->SpecialItemsInShops[shop_index][item_count].Reset();
- pParty->SpecialItemsInShops[shop_index][item_count].uItemID = rand() % 32 + 740; //mscrool
- continue;
- }
- else
- {
- treasure_lvl = shopAlchSpc_treasure_lvl[shop_index-41];
- item_class = 44; //potion
- }
- }
- pItemsTable->GenerateItem(treasure_lvl, item_class, &pParty->SpecialItemsInShops[shop_index][item_count]);
- pParty->SpecialItemsInShops[shop_index][item_count].SetIdentified(); //identified
- }
- }
- pParty->InTheShopFlags[shop_index] = 0;
- }
+ shop_index = (signed int)window_SpeakInHouse->ptr_1C;
+ if ( uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType] )
+ {
+ for ( item_count = 0; item_count < uItemsAmountPerShopType[p2DEvents[shop_index - 1].uType]; ++item_count )
+ {
+ if (shop_index <= 14) //weapon shop
+ {
+ treasure_lvl = shopWeap_variation_spc[shop_index].treasure_level;
+ item_class = shopWeap_variation_spc[shop_index].item_class[rand() % 4];
+ }
+ else if (shop_index <= 28) //armor shop
+ {
+ mdf = 0;
+ if (item_count > 3)
+ ++mdf;
+ treasure_lvl = shopArmr_variation_spc[2*(shop_index - 15) + mdf].treasure_level;
+ item_class = shopArmr_variation_spc[2*(shop_index - 15) + mdf].item_class[rand() % 4];
+ }
+ else if (shop_index <= 41) //magic shop
+ {
+ treasure_lvl = shopMagicSpc_treasure_lvl[shop_index - 28];
+ item_class = 22; //misc
+ }
+ else if (shop_index <= 53) //alchemist shop
+ {
+ if (item_count < 6)
+ {
+ pParty->SpecialItemsInShops[shop_index][item_count].Reset();
+ pParty->SpecialItemsInShops[shop_index][item_count].uItemID = rand() % 32 + 740; //mscrool
+ continue;
+ }
+ else
+ {
+ treasure_lvl = shopAlchSpc_treasure_lvl[shop_index - 41];
+ item_class = 44; //potion
+ }
+ }
+ pItemsTable->GenerateItem(treasure_lvl, item_class, &pParty->SpecialItemsInShops[shop_index][item_count]);
+ pParty->SpecialItemsInShops[shop_index][item_count].SetIdentified(); //identified
+ }
+ }
+ pParty->InTheShopFlags[shop_index] = 0;
+}
//----- (00450218) --------------------------------------------------------
diff -r 4cce1e24b7e7 -r df4e27f2a541 MM7_manifest.rc
Binary file MM7_manifest.rc has changed
diff -r 4cce1e24b7e7 -r df4e27f2a541 Might and Magic Trilogy.rc
Binary file Might and Magic Trilogy.rc has changed
diff -r 4cce1e24b7e7 -r df4e27f2a541 OSAPI.cpp
--- a/OSAPI.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/OSAPI.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -7,6 +7,7 @@
+
//----- (00462C94) --------------------------------------------------------
int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE, wchar_t *lpCmdLine, int nShowCmd)
{
diff -r 4cce1e24b7e7 -r df4e27f2a541 OSWindow.cpp
--- a/OSWindow.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/OSWindow.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -787,4 +787,4 @@
}
return true;
-}
\ No newline at end of file
+}
diff -r 4cce1e24b7e7 -r df4e27f2a541 Outdoor.cpp
--- a/Outdoor.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Outdoor.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -113,7 +113,7 @@
if (pRenderer->pRenderD3D) // d3d - redraw always
{
- pRenderer->DrawSkyD3D();
+ pRenderer->DrawOutdoorSkyD3D();
pRenderer->DrawBuildingsD3D();
pRenderer->RenderTerrainD3D();
}
diff -r 4cce1e24b7e7 -r df4e27f2a541 Player.cpp
--- a/Player.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Player.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -5003,7 +5003,8 @@
case VAR_QBits_QuestsDone:
return _449B57_test_bit(pParty->_quest_bits, pValue);
case VAR_PlayerItemInHands:
- for (int i = 0; i < 138; i++)
+ //for (int i = 0; i < 138; i++)
+ for (int i = 0; i < 126; i++)
{
if (pInventoryItemList[i].uItemID == pValue)
{
diff -r 4cce1e24b7e7 -r df4e27f2a541 Render.cpp
--- a/Render.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/Render.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -34,8 +34,8 @@
#include "Lights.h"
#include "Level/Decoration.h"
-#pragma comment(lib, "lib\\legacy_dx\\lib\\ddraw.lib")
-#pragma comment(lib, "lib\\legacy_dx\\lib\\dxguid.lib")
+//#pragma comment(lib, "lib\\legacy_dx\\lib\\ddraw.lib")
+//#pragma comment(lib, "lib\\legacy_dx\\lib\\dxguid.lib")
struct IDirectDrawClipper *pDDrawClipper;
struct Render *pRenderer; // idb
@@ -4925,7 +4925,7 @@
// 4D864C: using guessed type char byte_4D864C;
//----- (004A2DA3) --------------------------------------------------------
-void Render::DrawSkyPolygon(unsigned int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture)
+void Render::DrawOutdoorSkyPolygon(unsigned int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture)
{
int v7; // eax@7
@@ -4962,7 +4962,7 @@
}
//----- (004A2ED5) --------------------------------------------------------
-void Render::_4A2ED5(signed int a2, struct Polygon *a3, IDirect3DTexture2 *pHwTex)
+void Render::DrawIndoorSkyPolygon(signed int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture)
{
signed int v4; // edi@2
int v5; // eax@3
@@ -4975,15 +4975,15 @@
if ( this->uNumD3DSceneBegins )
{
- v4 = a2;
- if ( a2 >= 3 )
+ v4 = uNumVertices;
+ if ( uNumVertices >= 3 )
{
ErrD3D(pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, D3DTADDRESS_WRAP));
- v5 = 31 - (a3->dimming_level & 0x1F);
+ v5 = 31 - (pSkyPolygon->dimming_level & 0x1F);
if ( v5 < pOutdoor->max_terrain_dimming_level )
v5 = pOutdoor->max_terrain_dimming_level;
v6 = 8 * v5 | ((8 * v5 | (v5 << 11)) << 8);
- for (uint i = 0; i < a2; ++i)
+ for (uint i = 0; i < uNumVertices; ++i)
{
d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX;
d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY;
@@ -4995,19 +4995,18 @@
d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v;
}
- ErrD3D(pRenderD3D->pDevice->SetTexture(0, pHwTex));
+ ErrD3D(pRenderD3D->pDevice->SetTexture(0, pTexture));
ErrD3D(pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,
D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1,
d3d_vertex_buffer,
- a2,
+ uNumVertices,
28));
}
}
}
-
//----- (00479A53) --------------------------------------------------------
-void Render::DrawIndoorPolygonNoLight(unsigned int uNumVertices, unsigned int uFaceID)
+void Render::DrawIndoorSky(unsigned int uNumVertices, unsigned int uFaceID)
{
BLVFace *pFace; // esi@1
//unsigned int v3; // edi@1
@@ -5034,7 +5033,7 @@
double v24; // st7@16
unsigned __int8 v25; // sf@16
unsigned __int8 v26; // of@16
- Render *v27; // ecx@17
+ //Render *v27; // ecx@17
double v28; // st7@20
char *v29; // ebx@20
char *v30; // edx@20
@@ -5069,7 +5068,7 @@
signed int v59; // [sp-4h] [bp-178h]@17
struct Polygon *v60; // [sp+0h] [bp-174h]@17
IDirect3DTexture2 *v61; // [sp+4h] [bp-170h]@17
- struct Polygon v62; // [sp+14h] [bp-160h]@6
+ struct Polygon pSkyPoligon; // [sp+14h] [bp-160h]@6
unsigned int v63; // [sp+120h] [bp-54h]@7
//double v64; // [sp+124h] [bp-50h]@7
unsigned int v65; // [sp+128h] [bp-4Ch]@1
@@ -5104,55 +5103,55 @@
return;
}
- *(float *)&v74 = (double)pBLVRenderParams->uViewportCenterY;
+ //*(float *)&v74 = (double)pBLVRenderParams->uViewportCenterY;
v70 = (signed __int64)((double)(pBLVRenderParams->fov_rad_fixpoint * pGame->pIndoorCameraD3D->vPartyPos.z)
/ (((double)pBLVRenderParams->fov_rad_fixpoint + 16192.0)
* 65536.0)
- + *(float *)&v74);
+ + (double)pBLVRenderParams->uViewportCenterY);
v5 = (double)pGame->pIndoorCameraD3D->sRotationX * 0.0030664064;
- *(float *)&v75 = v5;
- v6 = (signed __int64)(*(float *)&v74
+ //*(float *)&v75 = v5;
+ v6 = (signed __int64)((double)pBLVRenderParams->uViewportCenterY
- (double)pBLVRenderParams->fov_rad_fixpoint
/ ((cos(v5) * 16192.0 + 0.0000001)
* 65535.0)
- * (sin(*(float *)&v75) * -16192.0 - (double)pGame->pIndoorCameraD3D->vPartyPos.z));
+ * (sin(v5) * -16192.0 - (double)pGame->pIndoorCameraD3D->vPartyPos.z));
stru_8019C8._48653D_frustum_blv(65536, 0, 0, 0, 65536, 0);
- v62.Create_48607B(&stru_8019C8);
- v62.uTileBitmapID = pFace->uBitmapID;
-
- v62.pTexture = pBitmaps_LOD->GetTexture(v62.uTileBitmapID);
- if ( !v62.pTexture )
+ pSkyPoligon.Create_48607B(&stru_8019C8);
+ pSkyPoligon.uTileBitmapID = pFace->uBitmapID;
+
+ pSkyPoligon.pTexture = pBitmaps_LOD->GetTexture(pSkyPoligon.uTileBitmapID);
+ if ( !pSkyPoligon.pTexture )
return;
- v62.dimming_level = 0;
- v62.uNumVertices = uNumVertices;
- v62.v_18.y = 0;
- v62.v_18.x = -stru_5C6E00->Sin(pGame->pIndoorCameraD3D->sRotationX + 16);
- v62.v_18.z = -stru_5C6E00->Cos(pGame->pIndoorCameraD3D->sRotationX + 16);
+ pSkyPoligon.dimming_level = 0;
+ pSkyPoligon.uNumVertices = uNumVertices;
+ pSkyPoligon.v_18.y = 0;
+ pSkyPoligon.v_18.x = -stru_5C6E00->Sin(pGame->pIndoorCameraD3D->sRotationX + 16);
+ pSkyPoligon.v_18.z = -stru_5C6E00->Cos(pGame->pIndoorCameraD3D->sRotationX + 16);
memcpy(&array_507D30[uNumVertices], array_507D30, sizeof(array_507D30[uNumVertices]));
- v62.field_24 = 0x2000000;
+ pSkyPoligon.field_24 = 0x2000000;
extern float _calc_fov(int viewport_width, int angle_degree);
//v64 = (double)(signed int)(pBLVRenderParams->uViewportZ - pBLVRenderParams->uViewportX) * 0.5;
//v72 = 65536 / (signed int)(signed __int64)(v64 / tan(0.6457717418670654) + 0.5);
v72 = 65536.0f / _calc_fov(pBLVRenderParams->uViewportZ - pBLVRenderParams->uViewportX, 74);
- v12 = v62.pTexture->uWidthMinus1;
- v13 = v62.pTexture->uHeightMinus1;
- v67 = 1.0 / (double)v62.pTexture->uTextureWidth;
+ v12 = pSkyPoligon.pTexture->uWidthMinus1;
+ v13 = pSkyPoligon.pTexture->uHeightMinus1;
+ v67 = 1.0 / (double)pSkyPoligon.pTexture->uTextureWidth;
v63 = 224 * pMiscTimer->uTotalGameTimeElapsed & v13;
v66 = 224 * pMiscTimer->uTotalGameTimeElapsed & v12;
v78 = 0;
v81 = 0;
- float v68 = 1.0 / (double)v62.pTexture->uTextureHeight;
- if ( (signed int)v62.uNumVertices <= 0 )
+ float v68 = 1.0 / (double)pSkyPoligon.pTexture->uTextureHeight;
+ if ( (signed int)pSkyPoligon.uNumVertices <= 0 )
{
LABEL_17:
- v61 = pBitmaps_LOD->pHardwareTextures[(signed __int16)v62.uTileBitmapID];
- v27 = pRenderer;
- v60 = &v62;
- v59 = v62.uNumVertices;
+ v61 = pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID];
+ //v27 = pRenderer;
+ v60 = &pSkyPoligon;
+ v59 = pSkyPoligon.uNumVertices;
goto LABEL_18;
}
@@ -5161,18 +5160,18 @@
while ( 2 )
{
v15 = (void *)(v72 * (v70 - (int)array_507D30[_507D30_idx].vWorldViewProjY));
- v77 = (unsigned __int64)(v62.ptr_38->viewing_angle_from_west_east * (signed __int64)(signed int)v15) >> 16;
- v74 = v77 + v62.ptr_38->angle_from_north;
+ v77 = (unsigned __int64)(pSkyPoligon.ptr_38->viewing_angle_from_west_east * (signed __int64)(signed int)v15) >> 16;
+ v74 = v77 + pSkyPoligon.ptr_38->angle_from_north;
v77 = (int)v15;
- v77 = (unsigned __int64)(v62.ptr_38->viewing_angle_from_north_south * (signed __int64)(signed int)v15) >> 16;
+ v77 = (unsigned __int64)(pSkyPoligon.ptr_38->viewing_angle_from_north_south * (signed __int64)(signed int)v15) >> 16;
v79 = v15;
- v75 = (RenderVertexSoft *)(v77 + v62.ptr_38->angle_from_east);
- v79 = (void *)((unsigned __int64)(v62.v_18.z * (signed __int64)(signed int)v15) >> 16);
+ v75 = (RenderVertexSoft *)(v77 + pSkyPoligon.ptr_38->angle_from_east);
+ v79 = (void *)((unsigned __int64)(pSkyPoligon.v_18.z * (signed __int64)(signed int)v15) >> 16);
v17 = v72 * (pBLVRenderParams->uViewportCenterX - (int)array_507D30[_507D30_idx].vWorldViewProjX);
v18 = array_507D30[_507D30_idx].vWorldViewProjY - 1.0;
- v19 = -v62.field_24;
- v77 = -v62.field_24;
- X = (int)((char *)v79 + v62.v_18.x);
+ v19 = -pSkyPoligon.field_24;
+ v77 = -pSkyPoligon.field_24;
+ X = (int)((char *)v79 + pSkyPoligon.v_18.x);
LODWORD(v76) = (signed __int64)v18;
v20 = (void *)(v72 * (v70 - LODWORD(v76)));
while ( 1 )
@@ -5188,11 +5187,11 @@
v19 = v77;
v20 = v79;
LABEL_14:
- v79 = (void *)((unsigned __int64)(v62.v_18.z * (signed __int64)(signed int)v20) >> 16);
- v22 = (unsigned __int64)(v62.v_18.z * (signed __int64)(signed int)v20) >> 16;
+ v79 = (void *)((unsigned __int64)(pSkyPoligon.v_18.z * (signed __int64)(signed int)v20) >> 16);
+ v22 = (unsigned __int64)(pSkyPoligon.v_18.z * (signed __int64)(signed int)v20) >> 16;
--LODWORD(v76);
v20 = (char *)v20 + v72;
- X = v22 + v62.v_18.x;
+ X = v22 + pSkyPoligon.v_18.x;
v78 = 1;
}
if ( !v78 )
@@ -5202,8 +5201,8 @@
v79 = (void *)(v23 / X);
v77 = v17;
v77 = v17;
- LODWORD(v76) = v74 + ((unsigned __int64)(v62.ptr_38->angle_from_west * (signed __int64)v17) >> 16);
- v75 = (RenderVertexSoft *)((char *)v75 + ((unsigned __int64)(v62.ptr_38->angle_from_south * (signed __int64)v17) >> 16));
+ LODWORD(v76) = v74 + ((unsigned __int64)(pSkyPoligon.ptr_38->angle_from_west * (signed __int64)v17) >> 16);
+ v75 = (RenderVertexSoft *)((char *)v75 + ((unsigned __int64)(pSkyPoligon.ptr_38->angle_from_south * (signed __int64)v17) >> 16));
v77 = (unsigned __int64)(SLODWORD(v76) * v23 / X) >> 16;
LODWORD(v73) = (unsigned __int64)((signed int)v75 * v23 / X) >> 16;
//v14 += 48;
@@ -5211,8 +5210,8 @@
v81 = (char *)v81 + 1;
v24 = (double)SLODWORD(v80) * 0.000015259022;
LODWORD(v80) = v63 + ((signed int)((unsigned __int64)((signed int)v75 * v23 / X) >> 16) >> 4);
- v26 = __OFSUB__((int)v81, v62.uNumVertices);
- v25 = (signed int)((char *)v81 - v62.uNumVertices) < 0;
+ v26 = __OFSUB__((int)v81, pSkyPoligon.uNumVertices);
+ v25 = (signed int)((char *)v81 - pSkyPoligon.uNumVertices) < 0;
array_507D30[_507D30_idx].u = v24 * v67;
array_507D30[_507D30_idx].v = (double)SLODWORD(v80) * 0.000015259022 * v68;
array_507D30[_507D30_idx]._rhw = 65536.0 / (double)(signed int)v79;
@@ -5225,7 +5224,7 @@
}
LODWORD(v73) = 0;
v80 = v76;
- if ( (signed int)v62.uNumVertices > 0 )
+ if ( (signed int)pSkyPoligon.uNumVertices > 0 )
{
v28 = (double)SLODWORD(v76);
LODWORD(v76) = (int)(char *)array_50AC10 + 28;
@@ -5233,7 +5232,7 @@
v30 = (char *)&array_507D30[1].vWorldViewProjY;
v79 = array_50AC10;
v81 = array_507D30;
- v78 = v62.uNumVertices;
+ v78 = pSkyPoligon.uNumVertices;
do
{
v31 = v28 < *((float *)v30 - 12);
@@ -5276,17 +5275,17 @@
do
{
v35 = (const void *)(v72 * (v70 - (unsigned __int64)(signed __int64)*(float *)v34));
- v78 = v62.ptr_38->viewing_angle_from_west_east;
+ v78 = pSkyPoligon.ptr_38->viewing_angle_from_west_east;
v81 = (const void *)((unsigned __int64)(v78 * (signed __int64)(signed int)v35) >> 16);
- v36 = (int)((char *)v81 + v62.ptr_38->angle_from_north);
+ v36 = (int)((char *)v81 + pSkyPoligon.ptr_38->angle_from_north);
v81 = v35;
v74 = v36;
- v78 = v62.ptr_38->viewing_angle_from_north_south;
+ v78 = pSkyPoligon.ptr_38->viewing_angle_from_north_south;
v81 = (const void *)((unsigned __int64)(v78 * (signed __int64)(signed int)v35) >> 16);
v78 = (int)v35;
- v75 = (RenderVertexSoft *)((char *)v81 + v62.ptr_38->angle_from_east);
- v81 = (const void *)v62.v_18.z;
- v78 = (unsigned __int64)(v62.v_18.z * (signed __int64)(signed int)v35) >> 16;
+ v75 = (RenderVertexSoft *)((char *)v81 + pSkyPoligon.ptr_38->angle_from_east);
+ v81 = (const void *)pSkyPoligon.v_18.z;
+ v78 = (unsigned __int64)(pSkyPoligon.v_18.z * (signed __int64)(signed int)v35) >> 16;
v37 = (const void *)(v72
* (pBLVRenderParams->uViewportCenterX - (unsigned __int64)(signed __int64)*((float *)v34 - 1)));
v38 = (signed __int64)(*(float *)v34 - 1.0);
@@ -5305,34 +5304,34 @@
break;
v39 = v78;
LABEL_36:
- v78 = v62.v_18.z;
- v41 = (unsigned __int64)(v62.v_18.z * (signed __int64)v39) >> 16;
+ v78 = pSkyPoligon.v_18.z;
+ v41 = (unsigned __int64)(pSkyPoligon.v_18.z * (signed __int64)v39) >> 16;
--LODWORD(v76);
v39 += v72;
- X = v41 + v62.v_18.x;
+ X = v41 + pSkyPoligon.v_18.x;
v81 = (const void *)1;
}
if ( v81 )
{
- v79 = (void *)v62.v_18.z;
+ v79 = (void *)pSkyPoligon.v_18.z;
v78 = 2 * LODWORD(v76);
- v81 = (const void *)((unsigned __int64)(v62.v_18.z
+ v81 = (const void *)((unsigned __int64)(pSkyPoligon.v_18.z
* (signed __int64)(signed int)(signed __int64)(((double)v70
- ((double)(2 * LODWORD(v76))
- *(float *)v34))
* (double)v72)) >> 16);
- X = (int)((char *)v81 + v62.v_18.x);
+ X = (int)((char *)v81 + pSkyPoligon.v_18.x);
}
LODWORD(v42) = v77 << 16;
HIDWORD(v42) = v77 >> 16;
v79 = (void *)(v42 / X);
v81 = v37;
- v78 = v62.ptr_38->angle_from_west;
+ v78 = pSkyPoligon.ptr_38->angle_from_west;
v81 = (const void *)((unsigned __int64)(v78 * (signed __int64)(signed int)v37) >> 16);
v43 = v74 + ((unsigned __int64)(v78 * (signed __int64)(signed int)v37) >> 16);
v74 = (unsigned int)v37;
LODWORD(v76) = v43;
- v78 = v62.ptr_38->angle_from_south;
+ v78 = pSkyPoligon.ptr_38->angle_from_south;
v75 = (RenderVertexSoft *)((char *)v75 + ((unsigned __int64)(v78 * (signed __int64)(signed int)v37) >> 16));
v74 = (unsigned __int64)(v43 * v42 / X) >> 16;
v81 = (const void *)((unsigned __int64)((signed int)v75 * v42 / X) >> 16);
@@ -5370,8 +5369,8 @@
}
while ( HIDWORD(v69) );
}
- v62.uNumVertices = v47;
- pRenderer->_4A2ED5(v47, &v62, pBitmaps_LOD->pHardwareTextures[(signed __int16)v62.uTileBitmapID]);
+ pSkyPoligon.uNumVertices = v47;
+ pRenderer->DrawIndoorSkyPolygon(v47, &pSkyPoligon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID]);
*(float *)&v74 = 0.0;
if ( SLODWORD(v73) > 0 )
{
@@ -5393,13 +5392,13 @@
}
while ( v80 != 0.0 );
}
- v62.uNumVertices = v74;
- v61 = pBitmaps_LOD->pHardwareTextures[(signed __int16)v62.uTileBitmapID];
- v60 = &v62;
+ pSkyPoligon.uNumVertices = v74;
+ v61 = pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID];
+ v60 = &pSkyPoligon;
v59 = v74;
- v27 = pRenderer;
+ //v27 = pRenderer;
LABEL_18:
- v27->_4A2ED5(v59, v60, v61);
+ pRenderer->DrawIndoorSkyPolygon(v59, v60, v61);
}
@@ -8885,7 +8884,7 @@
array_77EC08[pODMRenderParams->uNumPolygons].pTexture = pFaceTexture;
if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_FLUID)
array_77EC08[pODMRenderParams->uNumPolygons].flags |= 2;
- if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_DO_NOT_LIGHT )
+ if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_INDOOR_SKY )
HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 4;
if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & 4 )
HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 4;
@@ -9046,7 +9045,7 @@
return;
}
//----- (00479543) --------------------------------------------------------
-void Render::DrawSkyD3D()
+void Render::DrawOutdoorSkyD3D()
{
int v9; // eax@4
int v10; // ebx@4
@@ -9189,12 +9188,12 @@
array_50AC10[i].vWorldViewPosition.x = (double)0x2000;//pODMRenderParams->shading_dist_mist
array_50AC10[i]._rhw = 1.0 / (double)(v18 >> 16);
}
- pRenderer->DrawSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
+ pRenderer->DrawOutdoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
array_50AC10[0].vWorldViewProjY = (double)v38;
array_50AC10[1].vWorldViewProjY = array_50AC10[1].vWorldViewProjY + 30.0;
array_50AC10[2].vWorldViewProjY = array_50AC10[2].vWorldViewProjY + 30.0;
array_50AC10[3].vWorldViewProjY = (double)v38;
- pRenderer->DrawSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
+ pRenderer->DrawOutdoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
return;
}
}
diff -r 4cce1e24b7e7 -r df4e27f2a541 Render.h
--- a/Render.h Wed Oct 23 00:02:06 2013 -0700
+++ b/Render.h Wed Oct 23 19:13:07 2013 -0700
@@ -320,10 +320,10 @@
unsigned int GetActorTintColor(float a2, int tint, int a4, int a5, RenderBillboard *a6);
void DrawPolygon(unsigned int uNumVertices, struct Polygon *a3, ODMFace *a4, IDirect3DTexture2 *pTexture);
void DrawTerrainPolygon(unsigned int uNumVertices, struct Polygon *a4, IDirect3DTexture2 *a5, bool transparent, bool clampAtTextureBorders);
- void DrawSkyPolygon(unsigned int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture);
- void _4A2ED5(signed int a2, struct Polygon *a3, IDirect3DTexture2 *pHwTex);
+ void DrawOutdoorSkyPolygon(unsigned int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture);
+ void DrawIndoorSkyPolygon(signed int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture);
void DrawIndoorPolygon(unsigned int uNumVertices, struct BLVFace *a3, IDirect3DTexture2 *pHwTex, struct Texture *pTex, int uPackedID, unsigned int uColor, int a8);
- void DrawIndoorPolygonNoLight(unsigned int uNumVertices, unsigned int uFaceID);
+ void DrawIndoorSky(unsigned int uNumVertices, unsigned int uFaceID);
void MakeParticleBillboardAndPush_BLV(RenderBillboardTransform_local0 *a2, IDirect3DTexture2 *a3, unsigned int uDiffuse, int angle);
void MakeParticleBillboardAndPush_ODM(RenderBillboardTransform_local0 *a2, IDirect3DTexture2 *a3, unsigned int uDiffuse, int angle);
void TransformBillboard(RenderBillboardTransform_local0 *a2, Sprite *pSprite, int dimming_level, RenderBillboard *pBillboard);
@@ -357,7 +357,7 @@
void DrawBuildingsD3D();
//struct BSPModel *DrawBuildingsSW();
//int OnOutdoorRedrawSW();
- void DrawSkyD3D();
+ void DrawOutdoorSkyD3D();
//int DrawSkySW(struct Span *a1, Polygon *a2, int a3);
void PrepareDecorationsRenderList_ODM();
void DrawSpriteObjects_ODM();
diff -r 4cce1e24b7e7 -r df4e27f2a541 UI/UIGuilds.cpp
--- a/UI/UIGuilds.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/UI/UIGuilds.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -16,46 +16,20 @@
void GuildDialog()
{
signed int base_teach_price; // ebx@1
- int v3; // edi@6
- int result; // eax@11
int v6; // esi@13
signed int v7; // esi@17
int v8; // esi@22
- signed int v9; // ecx@22
- char *v10; // eax@22
const char *statusbar_string; // ecx@26
- POINT *v12; // esi@30
int v13; // ecx@30
ItemGen *v15; // ST18_4@31
int v17; // eax@31
char *v18; // edx@31
- int pActiveItem; // esi@35
- int v24; // eax@39
- int v25; // eax@40
int v26; // ecx@47
GUIButton *pButton; // eax@49
int pTextHeight; // eax@55
unsigned __int16 pTextColor; // ax@55
- int v35; // eax@58
- const char *v36; // ST20_4@61
- unsigned __int16 v37; // ST1C_2@61
- int v40; // [sp-14h] [bp-300h]@31
- int v41; // [sp-10h] [bp-2FCh]@31
- unsigned __int16 v42; // [sp-Ch] [bp-2F8h]@31
- char *v43; // [sp-8h] [bp-2F4h]@31
- unsigned int v44; // [sp-4h] [bp-2F0h]@31
- char Dest[100]; // [sp+Ch] [bp-2E0h]@3
- char v46[100]; // [sp+70h] [bp-27Ch]@3
- char v47[100]; // [sp+D4h] [bp-218h]@3
- char v48[100]; // [sp+138h] [bp-1B4h]@3
- char v49[100]; // [sp+19Ch] [bp-150h]@3
- POINT v50; // [sp+264h] [bp-88h]@30
- POINT v51; // [sp+26Ch] [bp-80h]@30
+ POINT cursor; // [sp+26Ch] [bp-80h]@30
GUIWindow working_window; // [sp+274h] [bp-78h]@1
- signed int v53; // [sp+27Ch] [bp-70h]@1
- signed int v54; // [sp+284h] [bp-68h]@1
- int pColorWhite; // [sp+2CCh] [bp-20h]@1
- int pColorYellow; // [sp+2D0h] [bp-1Ch]@1
int v58; // [sp+2D4h] [bp-18h]@1
bool pSkillFlag; // [sp+2DCh] [bp-10h]@35
int v61; // [sp+2E0h] [bp-Ch]@35
@@ -68,24 +42,17 @@
working_window.uFrameX = 483;
working_window.uFrameWidth = 148;
working_window.uFrameZ = 334;
- pColorWhite = TargetColor(0xFFu, 0xFFu, 0xFFu);
- pColorYellow = TargetColor(0xFFu, 0xFFu, 0x9Bu);
base_teach_price = (signed __int64)(p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].fPriceMultiplier * 500.0);
pPrice = base_teach_price * (100 - pPlayers[uActiveCharacter]->GetMerchant()) / 100;
if ( pPrice < base_teach_price / 3 )
pPrice = base_teach_price / 3;
- strcpy(Dest, "");
- strcpy(v46, "");
- strcpy(v47, "");
- strcpy(v48, "");
- strcpy(v49, "");
if ( dialog_menu_id == HOUSE_DIALOGUE_MAIN )
{
if ( !(unsigned __int16)_449B57_test_bit((unsigned __int8 *)pPlayers[uActiveCharacter]->_achieved_awards_bits,
- guild_mambership_flags[(unsigned int)window_SpeakInHouse->ptr_1C-139]) )
+ guild_mambership_flags[(unsigned int)window_SpeakInHouse->ptr_1C - 139]) )
{ //you must me member
pTextHeight = pFontArrus->CalcTextHeight(pNPCTopics[121].pText, &working_window, 0, 0);
- working_window.DrawTitleText(pFontArrus, 0, (212 - pTextHeight) / 2 + 101, pColorYellow, pNPCTopics[121].pText, 3);
+ working_window.DrawTitleText(pFontArrus, 0, (212 - pTextHeight) / 2 + 101, TargetColor(0xFFu, 0xFFu, 0x9Bu), pNPCTopics[121].pText, 3);
pDialogueWindow->pNumPresenceButton = 0;
return;
}
@@ -97,7 +64,7 @@
strcat(pTmpBuf.data(), "\n \n");
strcat(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[528]); //"I can offer you nothing further."
pTextHeight = pFontArrus->CalcTextHeight(pTmpBuf.data(), &working_window, 0, 0);
- working_window.DrawTitleText(pFontArrus, 0, (174 - pTextHeight) / 2 + 138, pColorYellow, pTmpBuf.data(), 3);
+ working_window.DrawTitleText(pFontArrus, 0, (174 - pTextHeight) / 2 + 138, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3);
return;
}
v61 = 0;
@@ -128,7 +95,7 @@
strcat(pTmpBuf.data(), "\n \n");
strcat(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[528]); //"I can offer you nothing further."
pTextHeight = pFontArrus->CalcTextHeight(pTmpBuf.data(), &working_window, 0, 0);
- working_window.DrawTitleText(pFontArrus, 0, (174 - pTextHeight) / 2 + 138, pColorYellow, pTmpBuf.data(), 3);
+ working_window.DrawTitleText(pFontArrus, 0, (174 - pTextHeight) / 2 + 138, TargetColor(0xFFu, 0xFFu, 0x9Bu), pTmpBuf.data(), 3);
return;
}
if ( pSkillFlag )
@@ -151,9 +118,9 @@
pButton->uHeight = pTextHeight;
v26 = pButton->uY + pTextHeight - 1;
pButton->uW = v26;
- pTextColor = pColorYellow;
+ pTextColor = TargetColor(0xFFu, 0xFFu, 0x9Bu);
if ( pDialogueWindow->pCurrentPosActiveItem != i )
- pTextColor = pColorWhite;
+ pTextColor = TargetColor(0xFFu, 0xFFu, 0xFFu);
working_window.DrawTitleText(pFontArrus, 0, pButton->uY, pTextColor, pGlobalTXT_LocalizationStrings[400], 3);//"Buy Spells"
}
else
@@ -166,9 +133,9 @@
pButton->uHeight = pTextHeight;
v26 = pButton->uY + pTextHeight - 1;
pButton->uW = v26;
- pTextColor = pColorYellow;
+ pTextColor = TargetColor(0xFFu, 0xFFu, 0x9Bu);
if ( pDialogueWindow->pCurrentPosActiveItem != i )
- pTextColor = pColorWhite;
+ pTextColor = TargetColor(0xFFu, 0xFFu, 0xFFu);
working_window.DrawTitleText(pFontArrus, 0, pButton->uY, pTextColor, pSkillNames[pButton->msg_param - 36], 3);
}
else
@@ -211,63 +178,56 @@
if ( HouseUI_CheckIfPlayerCanInteract() )
{
v8 = 0;
- for ( v9 = 12; v9; --v9 )
+ for ( uint i = 0; i < 12; ++i )
{
- if ( pParty->SpellBooksInGuilds[window_SpeakInHouse->par1C-139][v9].uItemID > 0 )
+ if ( pParty->SpellBooksInGuilds[window_SpeakInHouse->par1C - 139][i].uItemID > 0 )
++v8;
}
GetAsyncKeyState(17);
- statusbar_string = pGlobalTXT_LocalizationStrings[195]; //"Select the Item to Buy"
- if ( dialog_menu_id != HOUSE_DIALOGUE_SHOP_BUY_STANDARD)
- statusbar_string = pGlobalTXT_LocalizationStrings[196]; //"Select the Special Item to Buy"
- DrawTextAtStatusBar(statusbar_string, 0);
+ DrawTextAtStatusBar(pGlobalTXT_LocalizationStrings[195], 0);//"Select the Item to Buy"
if ( !v8 )
{
- working_window.DrawShops_next_generation_time_string(pParty->PartyTimes.Shops_next_generation_time[window_SpeakInHouse->par1C] - pParty->uTimePlayed);//"Ïðèõîäèòå ÷åðåç 14 äíåé"
+ working_window.DrawShops_next_generation_time_string(pParty->PartyTimes.Shops_next_generation_time[window_SpeakInHouse->par1C - 139] - pParty->uTimePlayed);//"Ïðèõîäèòå ÷åðåç 14 äíåé"
return;
}
- v12 = pMouse->GetCursorPos(&v51);
- result = v12->x + pSRZBufferLineOffsets[pMouse->GetCursorPos(&v50)->y];
- v13 = pRenderer->pActiveZBuffer[result] & 0xFFFF;
- if ( pRenderer->pActiveZBuffer[result] & 0xFFFF )
+ pMouse->GetCursorPos(&cursor);
+ v13 = pRenderer->pActiveZBuffer[cursor.x + pSRZBufferLineOffsets[cursor.y]] & 0xFFFF;
+ if ( v13 )
{
v15 = (ItemGen *)(&pParty->pPlayers[1].uExpressionTimeLength + 18 * (v13 + 12 * (int)window_SpeakInHouse->ptr_1C));
v17 = pPlayers[uActiveCharacter]->SelectPhrasesTransaction( (ItemGen *)&pParty->pPlayers[1].uExpressionTimeLength + v13 + 12 * (int)window_SpeakInHouse->ptr_1C, BuildingType_MagicShop, (int)window_SpeakInHouse->ptr_1C, 2);
v18 = BuildDialogueString(pMerchantsBuyPhrases[v17], uActiveCharacter - 1, v15, (char *)window_SpeakInHouse->ptr_1C, 2, 0);
pTextHeight = pFontArrus->CalcTextHeight(v18, &working_window, 0, 0);
- working_window.DrawTitleText(pFontArrus, 0, (174 - pTextHeight) / 2 + 138, pColorWhite, v18, 3);
+ working_window.DrawTitleText(pFontArrus, 0, (174 - pTextHeight) / 2 + 138, TargetColor(0xFFu, 0xFFu, 0xFFu), v18, 3);
return;
}
}
return;
}
- if ( dialog_menu_id == HOUSE_DIALOGUE_GUILD_LEARN_SKILL )
+ if ( HouseUI_CheckIfPlayerCanInteract() )
{
- if ( HouseUI_CheckIfPlayerCanInteract() )
+ if ( pPlayers[uActiveCharacter]->pActiveSkills[dialog_menu_id-36] )
{
- if ( pPlayers[uActiveCharacter]->pActiveSkills[dialog_menu_id-36] )
+ sprintf(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[403], pSkillNames[dialog_menu_id-36]); //"You already know the %s skill"
+ ShowStatusBarString(pTmpBuf.data(), 2);
+ pAudioPlayer->PlaySound(SOUND_error, 0, 0, -1, 0, 0, 0, 0);
+ }
+ else
+ {
+ if ( pParty->uNumGold < pPrice )
{
- sprintf(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[403], pClassNames[dialog_menu_id - 16]); //"You already know the %s skill"
- ShowStatusBarString(pTmpBuf.data(), 2);
- pAudioPlayer->PlaySound(SOUND_error, 0, 0, -1, 0, 0, 0, 0);
+ ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2); //"You don't have enough gold"
+ PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful);
}
else
{
- if ( pParty->uNumGold < pPrice )
- {
- ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2); //"You don't have enough gold"
- PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful);
- }
- else
- {
- Party::TakeGold(pPrice);
- pPlayers[uActiveCharacter]->pActiveSkills[dialog_menu_id-36] = 1;
- }
+ Party::TakeGold(pPrice);
+ pPlayers[uActiveCharacter]->pActiveSkills[dialog_menu_id-36] = 1;
}
}
- pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0);
- return;
}
+ pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0);
+ return;
}
//----- (004BC8D5) --------------------------------------------------------
void SpellBookGenerator()//for GuildDialogs
diff -r 4cce1e24b7e7 -r df4e27f2a541 UI/UIHouses.cpp
--- a/UI/UIHouses.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/UI/UIHouses.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -1057,7 +1057,7 @@
case BuildingType_SelfGuild:
case BuildingType_16:
{
- if ( pParty->PartyTimes.Shops_next_generation_time[window_SpeakInHouse->par1C] >= (signed __int64)pParty->uTimePlayed )
+ if ( pParty->PartyTimes.Shops_next_generation_time[window_SpeakInHouse->par1C - 139] >= (signed __int64)pParty->uTimePlayed )
{
for ( uint i = 0; i < 12; ++i )
{
@@ -1068,7 +1068,7 @@
else//generation new books
{
SpellBookGenerator();
- pParty->PartyTimes.Shops_next_generation_time[window_SpeakInHouse->par1C] = pParty->uTimePlayed + (signed __int64)((double)(0xA8C000
+ pParty->PartyTimes.Shops_next_generation_time[window_SpeakInHouse->par1C - 139] = pParty->uTimePlayed + (signed __int64)((double)(0xA8C000
* (signed int)p2DEvents[(unsigned int)window_SpeakInHouse->ptr_1C - 1].field_1C) * 0.033333335);
}
break;
@@ -1598,7 +1598,7 @@
v15 = v14;
while ( GetTickCount() < v15 )
sqrt(3.1415926);
- while ( sub_4BD8B5() )
+ while ( HouseDialogPressCloseBtn() )
;
pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0);
return;
@@ -2046,8 +2046,8 @@
{
Party::TakeGold(pPriceRoom);
PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful);
- dialog_menu_id = HOUSE_DIALOGUE_NULL;
- sub_4BD8B5();
+ //dialog_menu_id = HOUSE_DIALOGUE_NULL;
+ HouseDialogPressCloseBtn();
GetHouseGoodbyeSpeech();
pVideoPlayer->Unload();
if ( pMessageQueue_50CBD0->uNumMessages )
@@ -2076,13 +2076,13 @@
if ( pPriceSkill < v9 / 3 )
pPriceSkill = v9 / 3;
all_text_height = 0;
- for ( pItemNum = pDialogueWindow->pStartingPosActiveItem;
- pItemNum < pDialogueWindow->pStartingPosActiveItem + pDialogueWindow->pNumPresenceButton; ++pItemNum )
+ for ( int i = pDialogueWindow->pStartingPosActiveItem;
+ i < pDialogueWindow->pStartingPosActiveItem + pDialogueWindow->pNumPresenceButton; ++i )
{
- if ( byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][pDialogueWindow->GetControl(pItemNum)->msg_param - 36]
- && !pPlayers[uActiveCharacter]->pActiveSkills[pDialogueWindow->GetControl(pItemNum)->msg_param - 36] )
+ if ( byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][pDialogueWindow->GetControl(i)->msg_param - 36]
+ && !pPlayers[uActiveCharacter]->pActiveSkills[pDialogueWindow->GetControl(i)->msg_param - 36] )
{
- all_text_height = pFontArrus->CalcTextHeight(pSkillNames[pDialogueWindow->GetControl(pItemNum)->msg_param - 36], &dialog_window, 0, 0);
+ all_text_height = pFontArrus->CalcTextHeight(pSkillNames[pDialogueWindow->GetControl(i)->msg_param - 36], &dialog_window, 0, 0);
pSkillCount++;
}
}
@@ -2094,10 +2094,10 @@
if ( (149 - all_text_height) / pSkillCount > 32 )
v91 = 32;
v54 = (149 - pSkillCount * v91 - all_text_height) / 2 - v91 / 2 + 162;
- for ( pItemNum = pDialogueWindow->pStartingPosActiveItem;
- pItemNum < pDialogueWindow->pStartingPosActiveItem + pDialogueWindow->pNumPresenceButton; pItemNum++ )
+ for ( int i = pDialogueWindow->pStartingPosActiveItem;
+ i < pDialogueWindow->pStartingPosActiveItem + pDialogueWindow->pNumPresenceButton; i++ )
{
- pButton = pDialogueWindow->GetControl(pItemNum);
+ pButton = pDialogueWindow->GetControl(i);
if ( !byte_4ED970_skill_learn_ability_by_class_table[pPlayers[uActiveCharacter]->classType][pButton->msg_param - 36]
|| pPlayers[uActiveCharacter]->pActiveSkills[pButton->msg_param - 36] )
{
@@ -2113,7 +2113,7 @@
v54 = pTextHeight + pButton->uY - 1;
pButton->uW = v54;
pColorText = TargetColor(0xFFu, 0xFFu, 0x9Bu);
- if ( pDialogueWindow->pCurrentPosActiveItem != pItemNum )
+ if ( pDialogueWindow->pCurrentPosActiveItem != i )
pColorText = TargetColor(0xFFu, 0xFFu, 0xFFu);
dialog_window.DrawTitleText(pFontArrus, 0, pButton->uY, pColorText, pSkillNames[pButton->msg_param - 36], 3);
}
diff -r 4cce1e24b7e7 -r df4e27f2a541 VideoPlayer.cpp
--- a/VideoPlayer.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/VideoPlayer.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -1076,7 +1076,7 @@
if ( window_SpeakInHouse && window_SpeakInHouse->ptr_1C == (void *)165 && !this->pSmackerMovie )
{
bGameoverLoop = 1;
- sub_4BD8B5();
+ HouseDialogPressCloseBtn();
window_SpeakInHouse->Release();
pParty->uFlags &= 0xFFFFFFFDu;
if ( EnterHouse(HOUSE_BODY_GUILD_ERATHIA) )
diff -r 4cce1e24b7e7 -r df4e27f2a541 mm7_1.cpp
--- a/mm7_1.cpp Wed Oct 23 00:02:06 2013 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-#ifdef _MSC_VER
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-/* This file has been generated by the Hex-Rays decompiler.
- Copyright (c) 2007-2011 Hex-Rays
-
- Detected compiler: Visual C++
-*/
-
-//#include
-
-#include "Texture.h"
-#include "mm7_data.h"
-#include "VideoPlayer.h"
-#include "BSPModel.h"
-#include "Mouse.h"
-
-#include "Vis.h"
-#include "MM7.h"
-#include "Game.h"
-#include "GUIWindow.h"
-#include "Party.h"
-#include "AudioPlayer.h"
-#include "Outdoor.h"
-#include "Overlays.h"
-#include "LOD.h"
-#include "Actor.h"
-#include "Events.h"
-#include "Viewport.h"
-#include "SpriteObject.h"
-#include "ObjectList.h"
-#include "Chest.h"
-#include "DecorationList.h"
-#include "stru123.h"
-#include "Time.h"
-#include "IconFrameTable.h"
-#include "TurnEngine.h"
-#include "texts.h"
-#include "UI\UIHouses.h"
-#include "stru367.h"
-
-int __stdcall aWinProc(HWND hWnd, UINT Msg, WPARAM wParam, unsigned int lParam);
-int __stdcall InsertMM7CDDialogFunc(HWND hDlg, int a2, __int16 a3, int a4);
-bool __fastcall FindMM7CD(HWND hWnd, char *pCDDrive);
-bool __fastcall Initialize(HINSTANCE hInst, char *pCmdLine);
-
-
-//----- (004A1780) mm6_chinese---------------------------------------------
-__int64 fixpoint_div(int a1, int a2)
-{
- return ((__int64)a1 << 16) / a2;
-}
-
-__int64 fixpoint_sub_unknown(int a1, int a2)
-{
- return (((__int64)a1 << 16) * a2) >> 16;
-}
-
-
-//----- (0042EBBE) --------------------------------------------------------
-//----- (004453C0) mm6-----------------------------------------------------
-//----- (004A1760) mm6_chinese---------------------------------------------
-__int64 fixpoint_mul(int a1, int a2)
-{
- return ((__int64)a1 * (__int64)a2) >> 16;
-}
-
-__int64 fixpoint_dot(int x1, int x2, int y1, int y2, int z1, int z2)
-{
- return fixpoint_mul(x1, x2) +
- fixpoint_mul(y1, y2) +
- fixpoint_mul(z1, z2);
-}
-
-//----- (0041D20D) --------------------------------------------------------
-void DrawBuff_remaining_time_string( int uY, struct GUIWindow *window, __int64 remaining_time, struct GUIFont *Font )
-{
- unsigned int full_time; // esi@1
- signed __int64 hours; // kr00_8@1
- const char *text; // eax@2
- signed __int64 minutes; // [sp+10h] [bp-10h]@1
- signed __int64 seconds; // [sp+18h] [bp-8h]@1
- unsigned int day; // [sp+24h] [bp+4h]@1
-
- full_time = (signed __int64)((double)remaining_time * 0.234375);
- day = (unsigned int)((full_time / 60) / 60) / 24;
- hours = ((full_time / 60) / 60) % 24;
- minutes = (signed __int64)(full_time / 60) % 60;
- seconds = (signed __int64)full_time % 60;
- strcpy(pTmpBuf.data(), "\r020");
- if ( day )
- {
- text = pGlobalTXT_LocalizationStrings[57]; // Days
- if ( day <= 1 )
- text = pGlobalTXT_LocalizationStrings[56]; // Day
- sprintfex(pTmpBuf2.data(), "%d %s ", (int)day, text);
- strcat(pTmpBuf.data(), pTmpBuf2.data());
- }
- if ( hours )
- {
- if ( hours <= 1 )
- text = pGlobalTXT_LocalizationStrings[109];// Hour
- else
- text = pGlobalTXT_LocalizationStrings[110];// Hours
- sprintfex(pTmpBuf2.data(), "%d %s ", (int)hours, text);
- strcat(pTmpBuf.data(), pTmpBuf2.data());
- }
- if ( minutes && !day )
- {
- if ( minutes <= 1 )
- text = pGlobalTXT_LocalizationStrings[437];// Minute
- else
- text = pGlobalTXT_LocalizationStrings[436];// Minutes
- sprintfex(pTmpBuf2.data(), "%d %s ", (int)minutes, text);
- strcat(pTmpBuf.data(), pTmpBuf2.data());
- }
- if ( seconds && !hours )
- {
- if ( seconds <= 1 )
- text = pGlobalTXT_LocalizationStrings[439];// Second
- else
- text = pGlobalTXT_LocalizationStrings[438];// Seconds
- sprintfex(pTmpBuf2.data(), "%d %s ", (int)seconds, text);
- strcat(pTmpBuf.data(), pTmpBuf2.data());
- }
- window->DrawText(Font, 32, uY, 0, pTmpBuf.data(), 0, 0, 0);
-}
-
-//----- (004226C2) --------------------------------------------------------
-bool PauseGameDrawing()
-{
- if ( pCurrentScreen != SCREEN_GAME
- && pCurrentScreen != SCREEN_NPC_DIALOGUE
- && pCurrentScreen != SCREEN_CHANGE_LOCATION )
- {
- if ( pCurrentScreen == SCREEN_INPUT_BLV )
- return pVideoPlayer->pSmackerMovie != 0;
- if ( pCurrentScreen != SCREEN_BRANCHLESS_NPC_DIALOG )
- return true;
- }
- return false;
-}
-// 4E28F8: using guessed type int pCurrentScreen;
-
-//----- (004226EF) --------------------------------------------------------
-void SetUserInterface(PartyAlignment align, bool bReplace)
-{
- extern void set_default_ui_skin();
- set_default_ui_skin();
-
- if (align == PartyAlignment_Evil)
- {
- if ( bReplace )
- {
- pTexture_RightFrame->Reload("ib-r-C.pcx");
- pTexture_BottomFrame->Reload("ib-b-C.pcx");
- pTexture_TopFrame->Reload("ib-t-C.pcx");
- pTexture_LeftFrame->Reload("ib-l-C.pcx");
- pTexture_StatusBar->Reload("IB-Foot-c.pcx");
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_right_panel], "ib-mb-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Minimap_Loop], "ib-autmask-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Compas], "IB-COMP-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079D0], "IB-InitG-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079C8], "IB-InitY-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079CC], "IB-InitR-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_NPCLeft], "IB-NPCLD-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_NPCRight], "IB-NPCRD-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_ZoomIn], "ib-autout-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_ZoomOut], "ib-autin-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_GameUI_CharSelectionFrame], "IB-selec-C", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_CastSpell], "ib-m1d-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_Rest], "ib-m2d-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_QuickReference], "ib-m3d-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_GameSettings], "ib-m4d-c", 2);
-
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Bless], "isg-01-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Preservation], "isg-02-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Hammerhands], "isg-03-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_PainReflection], "isg-04-c", 2);
-
- pUIAnim_WizardEye->uIconID = pIconsFrameTable->FindIcon("wizeyeC");
- pIconsFrameTable->InitializeAnimation(pUIAnim_WizardEye->uIconID);
- pUIAnum_Torchlight->uIconID = pIconsFrameTable->FindIcon("torchC");
- pIconsFrameTable->InitializeAnimation(pUIAnum_Torchlight->uIconID);
-
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uExitCancelTextureId], "ib-bcu-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_50795C], "evtnpc-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_CharacterUI_InventoryBackground], "fr_inven-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Parchment], "parchment", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076B4], "cornr_ll-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076B0], "cornr_lr-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076AC], "cornr_ul-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A8], "cornr_ur-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A4], "edge_btm-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A0], "edge_lf-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_50769C], "edge_rt-c", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_507698], "edge_top-c", 2);
- pIcons_LOD->ReloadTexture(pTexture_591428, "endcap-c", 2);
- }
- else
- {
- pTexture_RightFrame->Load("ib-r-C.pcx", 0);
- pTexture_BottomFrame->Load("ib-b-c.pcx", 0);
- pTexture_TopFrame->Load("ib-t-C.pcx", 0);
- pTexture_LeftFrame->Load("ib-l-C.pcx", 0);
- pTexture_StatusBar->Load("IB-Foot-c.pcx", 0);
- uTextureID_right_panel = pIcons_LOD->LoadTexture("ib-mb-C", TEXTURE_16BIT_PALETTE);
- uTextureID_Minimap_Loop = pIcons_LOD->LoadTexture("ib-autmask-c", TEXTURE_16BIT_PALETTE);
- uTextureID_Compas = pIcons_LOD->LoadTexture("IB-COMP-C", TEXTURE_16BIT_PALETTE);
- dword_5079D0 = pIcons_LOD->LoadTexture("IB-InitG-c", TEXTURE_16BIT_PALETTE);
- dword_5079C8 = pIcons_LOD->LoadTexture("IB-InitY-c", TEXTURE_16BIT_PALETTE);
- dword_5079CC = pIcons_LOD->LoadTexture("IB-InitR-c", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_NPCLeft = pIcons_LOD->LoadTexture("IB-NPCLD-C", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_NPCRight = pIcons_LOD->LoadTexture("IB-NPCRD-C", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_ZoomIn = pIcons_LOD->LoadTexture("ib-autout-C", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_ZoomOut = pIcons_LOD->LoadTexture("ib-autin-C", TEXTURE_16BIT_PALETTE);
- uTextureID_GameUI_CharSelectionFrame = pIcons_LOD->LoadTexture("IB-selec-C", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_CastSpell = pIcons_LOD->LoadTexture("ib-m1d-c", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_Rest = pIcons_LOD->LoadTexture("ib-m2d-c", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_QuickReference = pIcons_LOD->LoadTexture("ib-m3d-c", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_GameSettings = pIcons_LOD->LoadTexture("ib-m4d-c", TEXTURE_16BIT_PALETTE);
- uExitCancelTextureId = pIcons_LOD->LoadTexture("ib-bcu-c", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_Bless = pIcons_LOD->LoadTexture("isg-01-c", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_Preservation = pIcons_LOD->LoadTexture("isg-02-c", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_Hammerhands = pIcons_LOD->LoadTexture("isg-03-c", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_PainReflection = pIcons_LOD->LoadTexture("isg-04-c", TEXTURE_16BIT_PALETTE);
- uTextureID_50795C = pIcons_LOD->LoadTexture("evtnpc-c", TEXTURE_16BIT_PALETTE);
- uTextureID_CharacterUI_InventoryBackground = pIcons_LOD->LoadTexture("fr_inven", TEXTURE_16BIT_PALETTE);
- pUIAnim_WizardEye->uIconID = pIconsFrameTable->FindIcon("wizeyeC");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnim_WizardEye->uIconID);
- pUIAnum_Torchlight->uIconID = pIconsFrameTable->FindIcon("torchC");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnum_Torchlight->uIconID);
- }
- uGameUIFontMain = TargetColor(0xC8u, 0, 0);
- uGameUIFontShadow = TargetColor(10, 0, 0);
- }
- else if (align == PartyAlignment_Neutral)
- {
- if ( bReplace )
- {
- pTexture_RightFrame->Reload("ib-r-a.pcx");
- pTexture_BottomFrame->Reload("ib-b-a.pcx");
- pTexture_TopFrame->Reload("ib-t-a.pcx");
- pTexture_LeftFrame->Reload("ib-l-a.pcx");
- pTexture_StatusBar->Reload("IB-Foot-a.pcx");
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_right_panel], "ib-mb-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Minimap_Loop], "ib-autmask-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Compas], "IB-COMP-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079D0], "IB-InitG-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079C8], "IB-InitY-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079CC], "IB-InitR-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_NPCLeft], "IB-NPCLD-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_NPCRight], "IB-NPCRD-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_ZoomIn], "ib-autout-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_ZoomOut], "ib-autin-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_GameUI_CharSelectionFrame], "IB-selec-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_CastSpell], "ib-m1d-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_Rest], "ib-m2d-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_QuickReference], "ib-m3d-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_GameSettings], "ib-m4d-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Bless], "isg-01-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Preservation], "isg-02-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Hammerhands], "isg-03-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_PainReflection], "isg-04-a", 2);
- pUIAnim_WizardEye->uIconID = pIconsFrameTable->FindIcon("wizeyeA");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnim_WizardEye->uIconID);
- pUIAnum_Torchlight->uIconID = pIconsFrameTable->FindIcon("torchA");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnum_Torchlight->uIconID);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uExitCancelTextureId], "ib-bcu-a", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_50795C], "evtnpc", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_CharacterUI_InventoryBackground], "fr_inven", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Parchment], "parchment", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076B4], "cornr_ll", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076B0], "cornr_lr", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076AC], "cornr_ul", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A8], "cornr_ur", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A4], "edge_btm", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A0], "edge_lf", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_50769C], "edge_rt", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_507698], "edge_top", 2);
- pIcons_LOD->ReloadTexture(pTexture_591428, "endcap", 2);
- }
- else
- {
- pTexture_RightFrame->Load("ib-r-A.pcx", 0);
- pTexture_BottomFrame->Load("ib-b-A.pcx", 0);
- pTexture_TopFrame->Load("ib-t-A.pcx", 0);
- pTexture_LeftFrame->Load("ib-l-A.pcx", 0);
- pTexture_StatusBar->Load("IB-Foot-a.pcx", 0);
- uTextureID_right_panel = pIcons_LOD->LoadTexture("ib-mb-A", TEXTURE_16BIT_PALETTE);
- uTextureID_Minimap_Loop = pIcons_LOD->LoadTexture("ib-autmask-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Compas = pIcons_LOD->LoadTexture("IB-COMP-A", TEXTURE_16BIT_PALETTE);
- dword_5079D0 = pIcons_LOD->LoadTexture("IB-InitG-a", TEXTURE_16BIT_PALETTE);
- dword_5079C8 = pIcons_LOD->LoadTexture("IB-InitY-a", TEXTURE_16BIT_PALETTE);
- dword_5079CC = pIcons_LOD->LoadTexture("IB-InitR-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_NPCLeft = pIcons_LOD->LoadTexture("IB-NPCLD-A", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_NPCRight = pIcons_LOD->LoadTexture("IB-NPCRD-A", TEXTURE_16BIT_PALETTE);
- uTextureID_GameUI_CharSelectionFrame = pIcons_LOD->LoadTexture("IB-selec-A", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_CastSpell = pIcons_LOD->LoadTexture("ib-m1d-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_Rest = pIcons_LOD->LoadTexture("ib-m2d-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_QuickReference = pIcons_LOD->LoadTexture("ib-m3d-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_GameSettings = pIcons_LOD->LoadTexture("ib-m4d-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_ZoomIn = pIcons_LOD->LoadTexture("ib-autout-a", TEXTURE_16BIT_PALETTE);
- uTextureID_Btn_ZoomOut = pIcons_LOD->LoadTexture("ib-autin-a", TEXTURE_16BIT_PALETTE);
- uExitCancelTextureId = pIcons_LOD->LoadTexture("ib-bcu-a", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_Bless = pIcons_LOD->LoadTexture("isg-01-a", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_Preservation = pIcons_LOD->LoadTexture("isg-02-a", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_Hammerhands = pIcons_LOD->LoadTexture("isg-03-a", TEXTURE_16BIT_PALETTE);
- uTextureID_PlayerBuff_PainReflection = pIcons_LOD->LoadTexture("isg-04-a", TEXTURE_16BIT_PALETTE);
- uTextureID_50795C = pIcons_LOD->LoadTexture("evtnpc", TEXTURE_16BIT_PALETTE);
- uTextureID_CharacterUI_InventoryBackground = pIcons_LOD->LoadTexture("fr_inven", TEXTURE_16BIT_PALETTE);
- pUIAnim_WizardEye->uIconID = pIconsFrameTable->FindIcon("wizeyeA");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnim_WizardEye->uIconID);
- pUIAnum_Torchlight->uIconID = pIconsFrameTable->FindIcon("torchA");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnum_Torchlight->uIconID);
- uTextureID_Parchment = pIcons_LOD->LoadTexture("parchment", TEXTURE_16BIT_PALETTE);
- uTextureID_5076B4 = pIcons_LOD->LoadTexture("cornr_ll", TEXTURE_16BIT_PALETTE);
- uTextureID_5076B0 = pIcons_LOD->LoadTexture("cornr_lr", TEXTURE_16BIT_PALETTE);
- uTextureID_5076AC = pIcons_LOD->LoadTexture("cornr_ul", TEXTURE_16BIT_PALETTE);
- uTextureID_5076A8 = pIcons_LOD->LoadTexture("cornr_ur", TEXTURE_16BIT_PALETTE);
- uTextureID_5076A4 = pIcons_LOD->LoadTexture("edge_btm", TEXTURE_16BIT_PALETTE);
- uTextureID_5076A0 = pIcons_LOD->LoadTexture("edge_lf", TEXTURE_16BIT_PALETTE);
- uTextureID_50769C = pIcons_LOD->LoadTexture("edge_rt", TEXTURE_16BIT_PALETTE);
- uTextureID_507698 = pIcons_LOD->LoadTexture("edge_top", TEXTURE_16BIT_PALETTE);
- pTexture_591428 = pIcons_LOD->LoadTexturePtr("endcap", TEXTURE_16BIT_PALETTE);
- }
- uGameUIFontMain = TargetColor(0xAu, 0, 0);
- uGameUIFontShadow = TargetColor(230, 214, 193);
- }
- else if (align == PartyAlignment_Good)
- {
- if ( bReplace )
- {
- pTexture_RightFrame->Reload("ib-r-B.pcx");
- pTexture_BottomFrame->Reload("ib-b-B.pcx");
- pTexture_TopFrame->Reload("ib-t-B.pcx");
- pTexture_LeftFrame->Reload("ib-l-B.pcx");
- pTexture_StatusBar->Reload("IB-Foot-b.pcx");
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_right_panel], "ib-mb-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Minimap_Loop], "ib-autmask-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Compas], "IB-COMP-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079D0], "IB-InitG-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079C8], "IB-InitY-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[dword_5079CC], "IB-InitR-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_NPCLeft], "IB-NPCLD-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_NPCRight], "IB-NPCRD-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_ZoomIn], "ib-autout-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_ZoomOut], "ib-autin-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_GameUI_CharSelectionFrame], "IB-selec-B", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_CastSpell], "ib-m1d-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_Rest], "ib-m2d-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_QuickReference], "ib-m3d-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Btn_GameSettings], "ib-m4d-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Bless], "isg-01-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Preservation], "isg-02-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_Hammerhands], "isg-03-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_PlayerBuff_PainReflection], "isg-04-b", 2);
- pUIAnim_WizardEye->uIconID = pIconsFrameTable->FindIcon("wizeyeB");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnim_WizardEye->uIconID);
- pUIAnum_Torchlight->uIconID = pIconsFrameTable->FindIcon("torchB");
- pIconsFrameTable->InitializeAnimation((signed __int16)pUIAnum_Torchlight->uIconID);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uExitCancelTextureId], "ib-bcu-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_50795C], "evtnpc-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_CharacterUI_InventoryBackground], "fr_inven-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_Parchment], "parchment", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076B4], "cornr_ll-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076B0], "cornr_lr-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076AC], "cornr_ul-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A8], "cornr_ur-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A4], "edge_btm-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_5076A0], "edge_lf-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_50769C], "edge_rt-b", 2);
- pIcons_LOD->ReloadTexture(&pIcons_LOD->pTextures[uTextureID_507698], "edge_top-b", 2);
- pIcons_LOD->ReloadTexture(pTexture_591428, "endcap-b", 2);
- }
- uGameUIFontMain = TargetColor(0, 0, 0xC8u);
- uGameUIFontShadow = TargetColor(255, 255, 255);
- }
- else Error("Invalid alignment type: %u", align);
-}
\ No newline at end of file
diff -r 4cce1e24b7e7 -r df4e27f2a541 mm7_2.cpp
--- a/mm7_2.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/mm7_2.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -606,10 +606,8 @@
}
//----- (004BD8B5) --------------------------------------------------------
-int sub_4BD8B5()
+int HouseDialogPressCloseBtn()
{
- int v0; // eax@4
-
if ( pMessageQueue_50CBD0->uNumMessages )
pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
pKeyActionMap->SetWindowInputStatus(WINDOW_INPUT_CANCELLED);
@@ -617,85 +615,78 @@
activeLevelDecoration = NULL;
current_npc_text = 0;
if ( pDialogueNPCCount == 0)
+ return 0;
+
+ if ( dialog_menu_id == HOUSE_DIALOGUE_SHOP_BUY_SPECIAL && ShopTexture )
{
- return 0;
- }
-
- v0 = dialog_menu_id;
- if ( dialog_menu_id != HOUSE_DIALOGUE_SHOP_BUY_STANDARD && dialog_menu_id != HOUSE_DIALOGUE_SHOP_SELL
- && dialog_menu_id != HOUSE_DIALOGUE_97 && dialog_menu_id != HOUSE_DIALOGUE_SHOP_REPAIR
- && dialog_menu_id != HOUSE_DIALOGUE_SHOP_IDENTIFY && ShopTexture )
- {
- ShopTexture->Release();
- v0 = dialog_menu_id;
+ ShopTexture->Release();
ShopTexture = 0;
}
- switch(v0)
+ switch(dialog_menu_id)
{
- case -1:
- _4B4224_UpdateNPCTopics((int)((char *)pDialogueNPCCount - 1));
- pVideoPlayer->_4BF5B2();
- break;
-
- case 94:
- case 96:
- case 101:
- pVideoPlayer->_4BF5B2();
- UI_CreateEndConversationButton();
- dialog_menu_id = HOUSE_DIALOGUE_MAIN;
- InitializaDialogueOptions(in_current_building_type);
- break;
-
- case 3:
- case 4:
- case 5:
- UI_CreateEndConversationButton();
- dialog_menu_id = HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT;
- InitializaDialogueOptions_Shops(in_current_building_type);
- break;
-
- case 102:
- case 103:
- case 104:
- pVideoPlayer->_4BF5B2();
- UI_CreateEndConversationButton();
- dialog_menu_id = HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN;
- InitializaDialogueOptions_Tavern(in_current_building_type);
- break;
-
- case 0:
- case 1:
- pDialogueNPCCount = 0;
- pDialogueWindow->Release();
- dialog_menu_id = HOUSE_DIALOGUE_NULL;
- pDialogueWindow = 0;
- pIcons_LOD->SyncLoadedFilesCount();
-
- if ( uNumDialogueNPCPortraits == 1 )
- return 0;
-
- pBtn_ExitCancel = window_SpeakInHouse->pControlsHead;
- if ( uNumDialogueNPCPortraits > 0 )
- {
- for ( uint i = 0; i < (unsigned int)uNumDialogueNPCPortraits; ++i )
- {
- HouseNPCPortraitsButtonsList[i] = window_SpeakInHouse->CreateButton(pNPCPortraits_x[uNumDialogueNPCPortraits - 1][i],
- pNPCPortraits_y[uNumDialogueNPCPortraits - 1][i],
- 63, 73, 1, 0, UIMSG_ClickHouseNPCPortrait, i, 0, byte_591180[i].data(), 0, 0, 0);
- }
- }
-
- pVideoPlayer->_4BF5B2();
- break;
-
- default:
- pVideoPlayer->_4BF5B2();
- dialog_menu_id = HOUSE_DIALOGUE_MAIN;
- InitializaDialogueOptions(in_current_building_type);
- break;
+ case -1:
+ _4B4224_UpdateNPCTopics((int)((char *)pDialogueNPCCount - 1));
+ pVideoPlayer->_4BF5B2();
+ break;
+
+ case HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT:
+ case HOUSE_DIALOGUE_LEARN_SKILLS:
+ case HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN:
+ pVideoPlayer->_4BF5B2();
+ UI_CreateEndConversationButton();
+ dialog_menu_id = HOUSE_DIALOGUE_MAIN;
+ InitializaDialogueOptions(in_current_building_type);
+ break;
+
+ case HOUSE_DIALOGUE_SHOP_SELL:
+ case HOUSE_DIALOGUE_SHOP_IDENTIFY:
+ case HOUSE_DIALOGUE_SHOP_REPAIR:
+ UI_CreateEndConversationButton();
+ dialog_menu_id = HOUSE_DIALOGUE_SHOP_DISPLAY_EQUIPMENT;
+ InitializaDialogueOptions_Shops(in_current_building_type);
+ break;
+
+ case HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RULES:
+ case HOUSE_DIALOGUE_TAVERN_ARCOMAGE_VICTORY_CONDITIONS:
+ case HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT:
+ pVideoPlayer->_4BF5B2();
+ UI_CreateEndConversationButton();
+ dialog_menu_id = HOUSE_DIALOGUE_TAVERN_ARCOMAGE_MAIN;
+ InitializaDialogueOptions_Tavern(in_current_building_type);
+ break;
+
+ case HOUSE_DIALOGUE_NULL:
+ case HOUSE_DIALOGUE_MAIN:
+ pDialogueNPCCount = 0;
+ pDialogueWindow->Release();
+ dialog_menu_id = HOUSE_DIALOGUE_NULL;
+ pDialogueWindow = 0;
+ pIcons_LOD->SyncLoadedFilesCount();
+
+ if ( uNumDialogueNPCPortraits == 1 )
+ return 0;
+
+ pBtn_ExitCancel = window_SpeakInHouse->pControlsHead;
+ if ( uNumDialogueNPCPortraits > 0 )
+ {
+ for ( uint i = 0; i < (unsigned int)uNumDialogueNPCPortraits; ++i )
+ {
+ HouseNPCPortraitsButtonsList[i] = window_SpeakInHouse->CreateButton(pNPCPortraits_x[uNumDialogueNPCPortraits - 1][i],
+ pNPCPortraits_y[uNumDialogueNPCPortraits - 1][i],
+ 63, 73, 1, 0, UIMSG_ClickHouseNPCPortrait, i, 0, byte_591180[i].data(), 0, 0, 0);
+ }
+ }
+
+ pVideoPlayer->_4BF5B2();
+ break;
+
+ default:
+ pVideoPlayer->_4BF5B2();
+ dialog_menu_id = HOUSE_DIALOGUE_MAIN;
+ InitializaDialogueOptions(in_current_building_type);
+ break;
}
-
return 1;
}
diff -r 4cce1e24b7e7 -r df4e27f2a541 mm7_5.cpp
--- a/mm7_5.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/mm7_5.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -406,7 +406,7 @@
{
int v4; // ebx@1
SpriteObject *v5; // eax@2
- bool v6; // eax@3
+ int v6; // eax@3
Actor *v7; // esi@4
Actor *v8; // edi@4
char v9; // zf@5
diff -r 4cce1e24b7e7 -r df4e27f2a541 mm7_data.h
--- a/mm7_data.h Wed Oct 23 00:02:06 2013 -0700
+++ b/mm7_data.h Wed Oct 23 19:13:07 2013 -0700
@@ -1208,7 +1208,7 @@
void SpellBookGenerator();
void UI_CreateEndConversationButton();
void __fastcall OnSelectShopDialogueOption(signed int uMessageParam);
-int sub_4BD8B5();
+int HouseDialogPressCloseBtn();
bool __fastcall MerchandiseTest(ItemGen *item, int _2da_idx);
void UIShop_Buy_Identify_Repair();
bool __fastcall IsBModelVisible(unsigned int uModelID, int *unused);
diff -r 4cce1e24b7e7 -r df4e27f2a541 stru9.cpp
--- a/stru9.cpp Wed Oct 23 00:02:06 2013 -0700
+++ b/stru9.cpp Wed Oct 23 19:13:07 2013 -0700
@@ -267,7 +267,7 @@
bool stru9::_498774(struct RenderVertexSoft *a1, struct RenderVertexSoft *a2, struct RenderVertexSoft *a3, struct stru312 *a4, struct RenderVertexSoft *a5)
{
RenderVertexSoft *v6; // ecx@5
- bool result; // eax@5
+ int result; // eax@5
double v8; // st7@5
__int16 v9; // fps@5
double v10; // st7@6