Mercurial > mm7
changeset 1020:3413ad40cc88
Merge
author | Gloval |
---|---|
date | Tue, 21 May 2013 07:24:49 +0400 |
parents | 32ec62bbaa2c (current diff) 9ac94d00012e (diff) |
children | 67e33708d815 |
files | GUIWindow.h Player.cpp UIHouses.cpp mm7_5.cpp |
diffstat | 61 files changed, 380 insertions(+), 387 deletions(-) [+] |
line wrap: on
line diff
--- a/Actor.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Actor.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,9 +1,15 @@ #include <assert.h> + +#include "VideoPlayer.h" +#include "DecalBuilder.h" + +#include "Sprites.h" +#include "stru6.h" + + #include "Actor.h" -#include "SpriteObject.h" #include "Math.h" -#include "Party.h" #include "Outdoor.h" #include "AudioPlayer.h" #include "Game.h" @@ -22,6 +28,7 @@ #include "GUIFont.h" #include "MM7.h" +#include "SpriteObject.h"
--- a/Actor.h Tue May 21 01:21:10 2013 +0400 +++ b/Actor.h Tue May 21 07:24:49 2013 +0400 @@ -1,8 +1,7 @@ #pragma once -#include "VectorTypes.h" -#include "Items.h" #include "Monsters.h" #include "Spells.h" +#include "Items.h"
--- a/Arcomage.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Arcomage.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,6 @@ #include <string> +#include "LightmapBuilder.h" #include "Arcomage.h" #include "VideoPlayer.h" #include "AudioPlayer.h" @@ -13,7 +14,6 @@ #include "Events2D.h" #include "VectorTypes.h" #include "texts.h" -#include "mm7_data.h"
--- a/AudioPlayer.cpp Tue May 21 01:21:10 2013 +0400 +++ b/AudioPlayer.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,6 +1,9 @@ #include <string> #include <assert.h> +#include "stru11.h" + +#include "VideoPlayer.h" #include "AudioPlayer.h" #include "Allocator.h" #include "FrameTableInc.h" @@ -14,13 +17,11 @@ #include "OSInfo.h" #include "Math.h" #include "MapInfo.h" -#include "Actor.h" #include "GUIWindow.h" #include "Log.h" #include "Bink_Smacker.h" -#include "mm7_data.h" #include "MM7.h"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CShow.cpp Tue May 21 07:24:49 2013 +0400 @@ -0,0 +1,80 @@ +#include "CShow.h" + +#include "VideoPlayer.h" +#include "Mouse.h" + +void CShow::PlayMovie( MovieType eVideo, bool bShowMouseAfterPlayback ) +{ + int v3; // edx@5 + const char *Name; // ecx@5 + //std::string v5; // [sp-18h] [bp-24h]@4 + //signed int v6; // [sp-Ch] [bp-18h]@10 + int ScreenSizeFlag; // [sp-8h] [bp-14h]@4 + //int v8; // [sp-4h] [bp-10h]@4 + //char v9; // [sp+0h] [bp-Ch]@14 + //char v10; // [sp+4h] [bp-8h]@4 + //int a3; // [sp+Bh] [bp-1h]@14 + + if (bNoVideo) + return; + + if (pAsyncMouse) + pAsyncMouse->Suspend(); + switch ( eVideo ) + { + case MOVIE_Invalid: + MessageBoxW(nullptr, L"No movie", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:40", 0); + break; + case MOVIE_3DOLogo: + ScreenSizeFlag = 0; + v3 = 0; + Name = "3dologo"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + case MOVIE_NWCLogo: + ScreenSizeFlag = 1; + v3 = 0; + Name = "new world logo"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + case MOVIE_JVC: + ScreenSizeFlag = 1; + v3 = 0; + Name = "jvc"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + case MOVIE_Intro: + ScreenSizeFlag = 1; + v3 = 0; + Name = "Intro"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + case MOVIE_Emerald: + ScreenSizeFlag = 1; + v3 = 0; + Name = "Intro Post"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + case MOVIE_Death: + ScreenSizeFlag = 1; + v3 = 2; + Name = "losegame"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + case MOVIE_Outro: + ScreenSizeFlag = 1; + v3 = 20; + Name = "end_seq1"; + VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); + break; + default: + MessageBoxW(nullptr, L"Invalid movie requested in CShow::Run()", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:72", 0); + break; + } + if ( bShowMouseAfterPlayback ) + { + if (pAsyncMouse) + pAsyncMouse->Resume(); + } +} +
--- a/CShow.h Tue May 21 01:21:10 2013 +0400 +++ b/CShow.h Tue May 21 07:24:49 2013 +0400 @@ -1,6 +1,4 @@ #pragma once -#include "VideoPlayer.h" -#include "Mouse.h" @@ -29,80 +27,7 @@ //----- (004A952D) -------------------------------------------------------- - void CShow::PlayMovie(MovieType eVideo, bool bShowMouseAfterPlayback) - { - int v3; // edx@5 - const char *Name; // ecx@5 - //std::string v5; // [sp-18h] [bp-24h]@4 - //signed int v6; // [sp-Ch] [bp-18h]@10 - int ScreenSizeFlag; // [sp-8h] [bp-14h]@4 - //int v8; // [sp-4h] [bp-10h]@4 - //char v9; // [sp+0h] [bp-Ch]@14 - //char v10; // [sp+4h] [bp-8h]@4 - //int a3; // [sp+Bh] [bp-1h]@14 - - if (bNoVideo) - return; - - if (pAsyncMouse) - pAsyncMouse->Suspend(); - switch ( eVideo ) - { - case MOVIE_Invalid: - MessageBoxW(nullptr, L"No movie", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:40", 0); - break; - case MOVIE_3DOLogo: - ScreenSizeFlag = 0; - v3 = 0; - Name = "3dologo"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - case MOVIE_NWCLogo: - ScreenSizeFlag = 1; - v3 = 0; - Name = "new world logo"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - case MOVIE_JVC: - ScreenSizeFlag = 1; - v3 = 0; - Name = "jvc"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - case MOVIE_Intro: - ScreenSizeFlag = 1; - v3 = 0; - Name = "Intro"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - case MOVIE_Emerald: - ScreenSizeFlag = 1; - v3 = 0; - Name = "Intro Post"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - case MOVIE_Death: - ScreenSizeFlag = 1; - v3 = 2; - Name = "losegame"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - case MOVIE_Outro: - ScreenSizeFlag = 1; - v3 = 20; - Name = "end_seq1"; - VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, 1); - break; - default: - MessageBoxW(nullptr, L"Invalid movie requested in CShow::Run()", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:72", 0); - break; - } - if ( bShowMouseAfterPlayback ) - { - if (pAsyncMouse) - pAsyncMouse->Resume(); - } -} + void CShow::PlayMovie(MovieType eVideo, bool bShowMouseAfterPlayback); void (__thiscall ***vdestructor_ptr)(CShow *, bool);
--- a/Chest.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Chest.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,13 +1,14 @@ #include <stdio.h> #include <assert.h> +#include "BSPModel.h" +#include "Items.h" #include "Chest.h" #include "FrameTableInc.h" #include "Allocator.h" #include "LOD.h" #include "MapInfo.h" #include "Actor.h" -#include "Indoor.h" #include "Outdoor.h" #include "DecorationList.h" #include "Party.h" @@ -17,10 +18,10 @@ #include "ObjectList.h" #include "GUIWindow.h" #include "Time.h" -#include "Overlays.h" #include "mm7_data.h" #include "MM7.h" +#include "SpriteObject.h"
--- a/Chest.h Tue May 21 01:21:10 2013 +0400 +++ b/Chest.h Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,4 @@ #pragma once -#include "Items.h"
--- a/DecalBuilder.cpp Tue May 21 01:21:10 2013 +0400 +++ b/DecalBuilder.cpp Tue May 21 07:24:49 2013 +0400 @@ -7,7 +7,7 @@ #include "mm7_data.h" - +#include "stru9.h"
--- a/Events.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Events.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,15 +1,16 @@ #include <assert.h> #include <stdlib.h> +#include "VideoPlayer.h" +#include "Mouse.h" + #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h" -#include "GUIFont.h" #include "GUIProgressBar.h" #include "Chest.h" #include "stru176.h" #include "LOD.h" -#include "NPC.h" #include "Actor.h" #include "Party.h" #include "Math.h" @@ -17,16 +18,12 @@ #include "Indoor.h" #include "Viewport.h" #include "texts.h" -#include "Texture.h" #include "Allocator.h" -#include "mm7_data.h" #include "stru123.h" #include "stru159.h" #include "Events.h" #include "Events2D.h" #include "UIHouses.h" -#include "Weather.h" -#include "Party.h" #include "MM7.h"
--- a/GUIButton.cpp Tue May 21 01:21:10 2013 +0400 +++ b/GUIButton.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,6 +1,5 @@ #include "GUIWindow.h" #include "GUIFont.h" -#include "Allocator.h" #include "mm7_data.h"
--- a/GUIWindow.cpp Tue May 21 01:21:10 2013 +0400 +++ b/GUIWindow.cpp Tue May 21 07:24:49 2013 +0400 @@ -15,7 +15,6 @@ #include "Render.h" #include "PlayerFrameTable.h" #include "SaveLoad.h" -#include "FactionTable.h" #include "StorylineTextTable.h" #include "Events2D.h" #include "UIHouses.h"
--- a/GUIWindow.h Tue May 21 01:21:10 2013 +0400 +++ b/GUIWindow.h Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,4 @@ #pragma once -#include "Items.h" #include "Player.h"
--- a/Game.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Game.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,10 +1,23 @@ #include <assert.h> +#include "Vis.h" + +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "ParticleEngine.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "CShow.h" +#include "GammaControl.h" +#include "stru6.h" +#include "stru9.h" +#include "stru10.h" +#include "stru11.h" +#include "stru12.h" + #include "Game.h" #include "Party.h" #include "IndoorCamera.h" -#include "Math.h" -#include "LightmapBuilder.h" #include "Viewport.h" #include "Time.h" #include "Outdoor.h" @@ -13,14 +26,12 @@ #include "LOD.h" #include "OSInfo.h" #include "GUIWindow.h" -#include "Party.h" #include "TurnEngine.h" #include "VideoPlayer.h" #include "Bink_Smacker.h" #include "Events.h" #include "Arcomage.h" #include "texts.h" -#include "Actor.h" #include "GUIFont.h" #include "Log.h"
--- a/Game.h Tue May 21 01:21:10 2013 +0400 +++ b/Game.h Tue May 21 07:24:49 2013 +0400 @@ -1,19 +1,5 @@ #pragma once -#include "LightmapBuilder.h" -#include "DecalBuilder.h" -#include "ParticleEngine.h" -#include "Vis.h" -#include "Mouse.h" -#include "Keyboard.h" -#include "IndoorCameraD3D.h" -#include "CShow.h" -#include "GammaControl.h" -#include "stru6.h" -#include "stru9.h" -#include "stru10.h" -#include "stru11.h" -#include "stru12.h" - +#include "VectorTypes.h" #define GAME_FLAGS_1_DRAW_BLV_DEBUGS 0x08 @@ -80,6 +66,20 @@ }; #pragma pack(pop) + +class Vis; +class LightmapBuilder; +class ParticleEngine; +class Mouse; +class Keyboard; +class ThreadWard; +class CShow; +class GammaController; +struct stru9; +struct stru10; +struct stru11; +struct stru12; + /* 104 */ #pragma pack(push, 1) struct Game @@ -90,6 +90,7 @@ protected: Game(); protected: virtual ~Game(); + public: void _44E904(); bool InitializeGammaController();
--- a/GammaControl.h Tue May 21 01:21:10 2013 +0400 +++ b/GammaControl.h Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,5 @@ #pragma once -#include "Render.h" +#include "lib\legacy_dx\d3d.h" #pragma pack(push, 1) struct GammaController
--- a/Indoor.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Indoor.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,7 +1,13 @@ #include <assert.h> +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "ParticleEngine.h" +#include "stru9.h" +#include "stru10.h" + +#include "BSPModel.h" #include "Outdoor.h" -#include "Render.h" #include "SpriteObject.h" #include "Events.h" #include "Game.h" @@ -23,8 +29,6 @@ #include "PaletteManager.h" #include "MapInfo.h" #include "IndoorCamera.h" -#include "GUIWindow.h" -#include "GUIFont.h" #include "mm7_data.h" #include "MM7.h"
--- a/Indoor.h Tue May 21 01:21:10 2013 +0400 +++ b/Indoor.h Tue May 21 07:24:49 2013 +0400 @@ -1,6 +1,5 @@ #pragma once #include "VectorTypes.h" -#include "IndoorCameraD3D.h" #include "Weather.h"
--- a/IndoorCameraD3D.cpp Tue May 21 01:21:10 2013 +0400 +++ b/IndoorCameraD3D.cpp Tue May 21 07:24:49 2013 +0400 @@ -9,6 +9,8 @@ #include "LOD.h" #include "mm7_data.h" +#include "stru9.h" + //----- (004361EF) -------------------------------------------------------- IndoorCameraD3D::IndoorCameraD3D() {
--- a/Indoor_stuff.h Tue May 21 01:21:10 2013 +0400 +++ b/Indoor_stuff.h Tue May 21 07:24:49 2013 +0400 @@ -1,6 +1,6 @@ #pragma once #include "Render.h" - +#include "IndoorCameraD3D.h"
--- a/Items.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Items.cpp Tue May 21 07:24:49 2013 +0400 @@ -3,7 +3,6 @@ #include "Items.h" #include "MapInfo.h" -#include "FrameTableInc.h" #include "Allocator.h" #include "GUIWindow.h" #include "Events2D.h"
--- a/LOD.cpp Tue May 21 01:21:10 2013 +0400 +++ b/LOD.cpp Tue May 21 07:24:49 2013 +0400 @@ -3,10 +3,10 @@ #include "Allocator.h" #include "PaletteManager.h" #include "Viewport.h" -#include "Log.h" #include "mm7_data.h" +#include "Sprites.h"
--- a/LightmapBuilder.cpp Tue May 21 01:21:10 2013 +0400 +++ b/LightmapBuilder.cpp Tue May 21 07:24:49 2013 +0400 @@ -4,10 +4,13 @@ #include "Outdoor.h" #include "Log.h" +#include "OutdoorCamera.h" + #include "mm7_data.h" +#include "stru9.h"
--- a/MM7.h Tue May 21 01:21:10 2013 +0400 +++ b/MM7.h Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,4 @@ #pragma once -#include "OSAPI.h" #include <math.h> #include <stdio.h> #include <stdarg.h>
--- a/MapInfo.h Tue May 21 01:21:10 2013 +0400 +++ b/MapInfo.h Tue May 21 07:24:49 2013 +0400 @@ -98,6 +98,7 @@ extern struct MapStats *pMapStats; +extern MapStartPoint uLevel_StartingPointType; // weak void TeleportToStartingPoint(MapStartPoint point); // idb
--- a/Mouse.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Mouse.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,13 +1,14 @@ #include "OSAPI.h" +#include "VideoPlayer.h" +#include "Vis.h" #include "Mouse.h" #include "Items.h" #include "Party.h" #include "LOD.h" #include "Game.h" -#include "Texture.h" - +#include "stru11.h"
--- a/NPC.cpp Tue May 21 01:21:10 2013 +0400 +++ b/NPC.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,14 +1,13 @@ -#include <string.h> -#include <stdlib.h> + #include "Allocator.h" #include "texts.h" -#include "Party.h" #include "LOD.h" #include "Autonotes.h" #include "Awards.h" #include "mm7_data.h" #include "MM7.h" +#include "Party.h" #include "NPC.h" int pDialogueNPCCount;
--- a/Outdoor.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Outdoor.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,18 +1,19 @@ #include <assert.h> +#include "stru6.h" + +#include "Sprites.h" +#include "LightmapBuilder.h" #include "Outdoor.h" #include "Party.h" #include "SpriteObject.h" #include "LOD.h" -#include "Render.h" #include "Allocator.h" -#include "Weather.h" #include "PaletteManager.h" #include "GUIProgressBar.h" #include "AudioPlayer.h" #include "IndoorCamera.h" #include "DecorationList.h" -#include "TileFrameTable.h" #include "Math.h" #include "ObjectList.h" #include "Game.h" @@ -27,8 +28,9 @@ #include "MM7.h" - - +#include "MapInfo.h" +#include "OutdoorCamera.h" +#include "BSPModel.h" MapStartPoint uLevel_StartingPointType; // weak
--- a/Outdoor.h Tue May 21 01:21:10 2013 +0400 +++ b/Outdoor.h Tue May 21 07:24:49 2013 +0400 @@ -1,12 +1,9 @@ #pragma -#include "BSPModel.h" -#include "OutdoorCamera.h" + #include "Indoor.h" #include "TileFrameTable.h" -#include "MapInfo.h" #include "Weather.h" - #define DAY_ATTRIB_FOG 1 /* 256 */ @@ -268,8 +265,6 @@ -extern MapStartPoint uLevel_StartingPointType; // weak -
--- a/ParticleEngine.cpp Tue May 21 01:21:10 2013 +0400 +++ b/ParticleEngine.cpp Tue May 21 07:24:49 2013 +0400 @@ -8,6 +8,8 @@ #include "Math.h" #include "LOD.h" +#include "Sprites.h" +#include "OutdoorCamera.h" #include "mm7_data.h" //----- (0048AAC5) --------------------------------------------------------
--- a/Player.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Player.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,14 +1,15 @@ #include <assert.h> +#include "stru6.h" + + #include "OSAPI.h" #include "Player.h" #include "PlayerFrameTable.h" -#include "Texture.h" #include "AudioPlayer.h" #include "Party.h" #include "Log.h" #include "LOD.h" -#include "Monsters.h" #include "GUIWindow.h" #include "Viewport.h" #include "Actor.h"
--- a/Render.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Render.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,13 @@ #include <assert.h> +#include "VideoPlayer.h" +#include "Sprites.h" +#include "Mouse.h" +#include "GammaControl.h" +#include "stru6.h" + +#include "DecalBuilder.h" +#include "ParticleEngine.h" #include "Render.h" #include "OutdoorCamera.h" #include "IndoorCamera.h"
--- a/Render.h Tue May 21 01:21:10 2013 +0400 +++ b/Render.h Tue May 21 07:24:49 2013 +0400 @@ -4,7 +4,6 @@ #include "lib\legacy_dx\d3d.h" #include "OSAPI.h" -#include "Sprites.h" #include "VectorTypes.h" struct stru148; @@ -46,7 +45,8 @@ Vec2_float_ texcoord; }; - +class Sprite; +class SpriteFrame; /* 161 */ #pragma pack(push, 1)
--- a/SaveLoad.cpp Tue May 21 01:21:10 2013 +0400 +++ b/SaveLoad.cpp Tue May 21 07:24:49 2013 +0400 @@ -3,7 +3,7 @@ #include <assert.h> #include "SaveLoad.h" -#include "NPC.h" +#include "BSPModel.h" #include "Party.h" #include "LOD.h" #include "Outdoor.h"
--- a/Spells.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Spells.cpp Tue May 21 07:24:49 2013 +0400 @@ -4,7 +4,6 @@ #include "Overlays.h" #include "Allocator.h" #include "LOD.h" -#include "stru123.h" #include "texts.h" #include "mm7_data.h"
--- a/SpriteObject.cpp Tue May 21 01:21:10 2013 +0400 +++ b/SpriteObject.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,6 @@ #include <assert.h> +#include "BSPModel.h" #include "SpriteObject.h" #include "Party.h" #include "TurnEngine.h"
--- a/Sprites.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Sprites.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,4 +1,5 @@ #include <string.h> +#include <algorithm> #include "Allocator.h" #include "Sprites.h" @@ -217,75 +218,43 @@ //----- (0044D813) -------------------------------------------------------- signed int SpriteFrameTable::FastFindSprite( char *pSpriteName ) - { - SpriteFrameTable *v2; // esi@1 - int v3; // eax@1 +{ signed int result; // eax@2 - v2 = this; - BinarySearch(0, this->uNumEFrames, pSpriteName); - v3 = v2->field_8; - if ( v3 < 0 ) + int searchResult = BinarySearch(pSpriteName); + if ( searchResult < 0 ) result = 0; else - result = v2->pSpriteEFrames[v3]; + result = this->pSpriteEFrames[searchResult]; return result; } //----- (0044D83A) -------------------------------------------------------- -void SpriteFrameTable::BinarySearch(int a2, int a3, const char *pSpriteName) +int SpriteFrameTable::BinarySearch( const char *pSpriteName ) { - int v4; // ebx@1 - SpriteFrameTable *v5; // edi@1 - int v6; // esi@2 - int v7; // eax@2 - int a2a; // [sp+14h] [bp+8h]@2 - - v4 = a2; - v5 = this; - while ( 1 ) - { - a2a = a3 - v4; - v6 = (a3 - v4) / 2 + v4; - v7 = _strcmpi(pSpriteName, v5->pSpritePFrames[v6]->pIconName); - if ( !v7 ) - v5->field_8 = v6; - if ( v4 == a3 ) - break; - if ( v7 >= 0 ) + int startPos = 0; + int endPos = uNumEFrames; + while ( 1 ) { - if ( a2a <= 4 ) - { - while ( v4 < a3 ) + int searchRange = endPos - startPos; + int middleFrameIndex = (endPos - startPos) / 2 + startPos; + int comparisonResult = _stricmp(pSpriteName, this->pSpritePFrames[middleFrameIndex]->pIconName); + if ( !comparisonResult ) { - if ( !_strcmpi(pSpriteName, v5->pSpritePFrames[v4]->pIconName) ) - { -LABEL_19: - v5->field_8 = v4; - return; - } - ++v4; + return middleFrameIndex; + } + if ( startPos == endPos ) + { + return -1; } - break; - } - v4 += (a3 - v4) / 2; + if ( comparisonResult >= 0 ) + { + startPos += max(((endPos - startPos) / 2), 1); + } + else{ + endPos = max(((endPos - startPos) / 2), 1) + startPos; + } } - else - { - if ( a2a <= 4 ) - { - while ( v4 < a3 ) - { - if ( !_strcmpi(pSpriteName, v5->pSpritePFrames[v4]->pIconName) ) - goto LABEL_19; - ++v4; - } - break; - } - a3 = (a3 - v4) / 2 + v4; - } - } - v5->field_8 = -1; } //----- (0044D8D0) --------------------------------------------------------
--- a/Sprites.h Tue May 21 01:21:10 2013 +0400 +++ b/Sprites.h Tue May 21 07:24:49 2013 +0400 @@ -5,18 +5,18 @@ #pragma pack(push, 1) struct Sprite //28h { - void Release(); + void Release(); - const char *pName; //0 - int uPaletteID; //4 - struct IDirectDrawSurface4 *pTextureSurface; //8 - struct IDirect3DTexture2 *pTexture; //ch - int uAreaX; //10h - int uAreaY; //14h - int uBufferWidth; //18h - int uBufferHeight; //1ch - int uAreaWidth; //20h - int uAreaHeight; //24h + const char *pName; //0 + int uPaletteID; //4 + struct IDirectDrawSurface4 *pTextureSurface; //8 + struct IDirect3DTexture2 *pTexture; //ch + int uAreaX; //10h + int uAreaY; //14h + int uBufferWidth; //18h + int uBufferHeight; //1ch + int uAreaWidth; //20h + int uAreaHeight; //24h }; #pragma pack(pop) @@ -25,17 +25,17 @@ #pragma pack(push, 1) struct SpriteFrame { - char pIconName[12]; - char pTextureName[12]; //c - __int16 pHwSpriteIDs[8]; //18h - int scale; //28h - int uFlags; //2c - __int16 uGlowRadius; //30 - __int16 uPaletteID; //32 - __int16 uPaletteIndex; - __int16 uAnimTime; - __int16 uAnimLength; - __int16 _pad; + char pIconName[12]; + char pTextureName[12]; //c + __int16 pHwSpriteIDs[8]; //18h + int scale; //28h + int uFlags; //2c + __int16 uGlowRadius; //30 + __int16 uPaletteID; //32 + __int16 uPaletteIndex; + __int16 uAnimTime; + __int16 uAnimLength; + __int16 _pad; }; #pragma pack(pop) @@ -43,31 +43,31 @@ #pragma pack(push, 1) struct SpriteFrameTable { - //----- (0044D4BA) -------------------------------------------------------- - inline SpriteFrameTable() - { - uNumSpriteFrames = 0; - pSpriteSFrames = nullptr; - pSpritePFrames = nullptr; - pSpriteEFrames = nullptr; - } - void ToFile(); - void FromFile(void *pSerialized); - bool FromFileTxt(const char *Args); - void ReleaseSFrames(); - void ResetSomeSpriteFlags(); - void InitializeSprite(signed int uSpriteID); - signed int FastFindSprite(char *pSpriteName); - void BinarySearch(int a2, int a3, const char *pSpriteName); - SpriteFrame *GetFrame(unsigned int uSpriteID, unsigned int uTime); - SpriteFrame *GetFrameBy_x(unsigned int uSpriteID, signed int a3); + //----- (0044D4BA) -------------------------------------------------------- + inline SpriteFrameTable() + { + uNumSpriteFrames = 0; + pSpriteSFrames = nullptr; + pSpritePFrames = nullptr; + pSpriteEFrames = nullptr; + } + void ToFile(); + void FromFile(void *pSerialized); + bool FromFileTxt(const char *Args); + void ReleaseSFrames(); + void ResetSomeSpriteFlags(); + void InitializeSprite(signed int uSpriteID); + signed int FastFindSprite(char *pSpriteName); + int BinarySearch(const char *pSpriteName); + SpriteFrame *GetFrame(unsigned int uSpriteID, unsigned int uTime); + SpriteFrame *GetFrameBy_x(unsigned int uSpriteID, signed int a3); - signed int uNumSpriteFrames; - unsigned int uNumEFrames;//field_4; - int field_8; - struct SpriteFrame *pSpriteSFrames; //0c - struct SpriteFrame **pSpritePFrames; //10h - __int16 *pSpriteEFrames; //14h + signed int uNumSpriteFrames; + unsigned int uNumEFrames;//field_4; + int unused_field; //field_8 + struct SpriteFrame *pSpriteSFrames; //0c + struct SpriteFrame **pSpritePFrames; //10h + __int16 *pSpriteEFrames; //14h }; #pragma pack(pop)
--- a/UIBooks.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UIBooks.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,43 +2,21 @@ #include "MM7.h" +#include "Mouse.h" + #include "MapInfo.h" -#include "Game.h" #include "GUIWindow.h" #include "GUIFont.h" -#include "GUIProgressBar.h" #include "Party.h" #include "AudioPlayer.h" #include "Outdoor.h" -#include "IndoorCamera.h" -#include "Overlays.h" -#include "Monsters.h" -#include "Arcomage.h" #include "LOD.h" -#include "Actor.h" #include "Allocator.h" -#include "Events.h" #include "Viewport.h" -#include "FrameTableInc.h" #include "Math.h" -#include "SpriteObject.h" -#include "ObjectList.h" -#include "Chest.h" -#include "PaletteManager.h" -#include "DecorationList.h" -#include "SaveLoad.h" -#include "stru123.h" -#include "Time.h" -#include "IconFrameTable.h" #include "Awards.h" #include "Autonotes.h" -#include "stru160.h" -#include "TurnEngine.h" -#include "CastSpellInfo.h" -#include "Weather.h" -#include "stru298.h" #include "StorylineTextTable.h" -#include "Events2D.h" #include "texts.h" #include "mm7_data.h"
--- a/UICharacter.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UICharacter.cpp Tue May 21 07:24:49 2013 +0400 @@ -11,34 +11,11 @@ #include "AudioPlayer.h" #include "Outdoor.h" #include "IndoorCamera.h" -#include "Overlays.h" -#include "Monsters.h" -#include "Arcomage.h" #include "LOD.h" -#include "Actor.h" -#include "Allocator.h" -#include "Events.h" #include "Viewport.h" -#include "FrameTableInc.h" -#include "Math.h" -#include "SpriteObject.h" -#include "ObjectList.h" -#include "Chest.h" -#include "PaletteManager.h" -#include "DecorationList.h" -#include "SaveLoad.h" -#include "stru123.h" #include "Time.h" -#include "IconFrameTable.h" #include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" -#include "TurnEngine.h" #include "CastSpellInfo.h" -#include "Weather.h" -#include "stru298.h" -#include "StorylineTextTable.h" -#include "Events2D.h" #include "texts.h" #include "mm7_data.h"
--- a/UIHouses.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UIHouses.cpp Tue May 21 07:24:49 2013 +0400 @@ -26,6 +26,7 @@ #include "mm7_data.h" #include "Game.h" +#include "stru159.h" int uHouse_ExitPic; // weak int dword_591080; // weak
--- a/UIHouses.h Tue May 21 01:21:10 2013 +0400 +++ b/UIHouses.h Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,4 @@ #pragma once -#include "stru159.h" enum HOUSE_DIALOGUE_MENU: unsigned __int32 { @@ -135,6 +134,5 @@ extern int uHouse_ExitPic; // weak extern int dword_591080; // weak -extern const stru159 pAnimatedRooms[196]; extern int in_current_building_type; // 00F8B198 extern HOUSE_DIALOGUE_MENU dialog_menu_id; // 00F8B19C \ No newline at end of file
--- a/UIMainMenu.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UIMainMenu.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,9 @@ #include "MM7.h" +#include "Mouse.h" +#include "Keyboard.h" + #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h"
--- a/UIOptions.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UIOptions.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,13 @@ #include "MM7.h" +#include "Keyboard.h" +#include "IndoorCameraD3D.h" +#include "CShow.h" +#include "GammaControl.h" +#include "stru6.h" +#include "stru9.h" + #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h"
--- a/UIPartyCreation.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UIPartyCreation.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,20 @@ #include "MM7.h" +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "ParticleEngine.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "IndoorCameraD3D.h" +#include "CShow.h" +#include "GammaControl.h" +#include "stru6.h" +#include "stru9.h" +#include "stru10.h" +#include "stru11.h" +#include "stru12.h" + #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h"
--- a/UIPopup.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UIPopup.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,10 @@ #include "MM7.h" +#include "Mouse.h" + +#include "Sprites.h" +#include "Vis.h" #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h"
--- a/UISaveLoad.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UISaveLoad.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,9 @@ #include <io.h> #include "MM7.h" +#include "Mouse.h" +#include "Keyboard.h" + #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h"
--- a/UiGame.cpp Tue May 21 01:21:10 2013 +0400 +++ b/UiGame.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,22 @@ #include "MM7.h" +#include "BSPModel.h" +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "ParticleEngine.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "IndoorCameraD3D.h" +#include "CShow.h" +#include "GammaControl.h" +#include "stru6.h" +#include "stru9.h" +#include "stru10.h" +#include "stru11.h" +#include "stru12.h" + +#include "Vis.h" #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h"
--- a/VideoPlayer.cpp Tue May 21 01:21:10 2013 +0400 +++ b/VideoPlayer.cpp Tue May 21 07:24:49 2013 +0400 @@ -2,6 +2,9 @@ #include "Bink_Smacker.h" +#include "CShow.h" +#include "Mouse.h" + #include "OSInfo.h" #include "VideoPlayer.h" #include "AudioPlayer.h"
--- a/Vis.cpp Tue May 21 01:21:10 2013 +0400 +++ b/Vis.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,6 @@ #include <assert.h> +#include "BSPModel.h" #include "Vis.h" #include "Outdoor.h" #include "Game.h"
--- a/mm7_1.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_1.cpp Tue May 21 07:24:49 2013 +0400 @@ -7,44 +7,31 @@ //#include <defs.h> #include <assert.h> +#include "VideoPlayer.h" +#include "BSPModel.h" +#include "Mouse.h" + +#include "Vis.h" #include "MM7.h" -#include "MapInfo.h" #include "Game.h" #include "GUIWindow.h" -#include "GUIFont.h" -#include "GUIProgressBar.h" #include "Party.h" #include "AudioPlayer.h" #include "Outdoor.h" -#include "IndoorCamera.h" #include "Overlays.h" -#include "Monsters.h" -#include "Arcomage.h" #include "LOD.h" #include "Actor.h" #include "Allocator.h" #include "Events.h" #include "Viewport.h" -#include "FrameTableInc.h" -#include "Math.h" #include "SpriteObject.h" #include "ObjectList.h" #include "Chest.h" -#include "PaletteManager.h" #include "DecorationList.h" -#include "SaveLoad.h" #include "stru123.h" #include "Time.h" #include "IconFrameTable.h" -#include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" #include "TurnEngine.h" -#include "CastSpellInfo.h" -#include "Weather.h" -#include "stru298.h" -#include "StorylineTextTable.h" -#include "Events2D.h" #include "texts.h" #include "UIHouses.h" #include "mm7_data.h"
--- a/mm7_2.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_2.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,7 +1,24 @@ #include <io.h> #include <direct.h> #include <assert.h> - +#include <windows.h> + + +#include "VideoPlayer.h" +#include "Sprites.h" +#include "BSPModel.h" +#include "OutdoorCamera.h" + +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "ParticleEngine.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "CShow.h" +#include "GammaControl.h" +#include "stru6.h" + +#include "Vis.h" #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h" @@ -11,7 +28,6 @@ #include "Outdoor.h" #include "IndoorCamera.h" #include "Overlays.h" -#include "Monsters.h" #include "Arcomage.h" #include "LOD.h" #include "Actor.h" @@ -32,20 +48,14 @@ #include "IconFrameTable.h" #include "GUIProgressBar.h" #include "Bink_Smacker.h" -#include "TileFrameTable.h" #include "PlayerFrameTable.h" -#include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" #include "TurnEngine.h" #include "FactionTable.h" #include "StorylineTextTable.h" #include "Random.h" #include "CastSpellInfo.h" #include "stru298.h" -#include "stru12.h" #include "Events2D.h" -#include "stru159.h" #include "Log.h" #include "UIHouses.h" #include "texts.h"
--- a/mm7_3.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_3.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,5 +1,17 @@ #include <assert.h> + +#include "VideoPlayer.h" +#include "Sprites.h" +#include "BSPModel.h" +#include "OutdoorCamera.h" +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "ParticleEngine.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "stru6.h" + #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h" @@ -10,33 +22,23 @@ #include "Outdoor.h" #include "IndoorCamera.h" #include "Overlays.h" -#include "Monsters.h" -#include "Arcomage.h" #include "LOD.h" #include "Actor.h" #include "Allocator.h" #include "Events.h" #include "Viewport.h" -#include "FrameTableInc.h" #include "Math.h" #include "SpriteObject.h" #include "ObjectList.h" -#include "Chest.h" #include "PaletteManager.h" #include "DecorationList.h" -#include "SaveLoad.h" #include "stru123.h" #include "Time.h" #include "IconFrameTable.h" #include "TurnEngine.h" -#include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" -#include "Weather.h" #include "stru220.h" #include "Events2D.h" #include "stru176.h" -#include "stru159.h" #include "stru298.h" #include "texts.h" #include "Log.h"
--- a/mm7_4.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_4.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,7 +1,15 @@ -#include <io.h> -#include <direct.h> #include <assert.h> +#include "VideoPlayer.h" +#include "Sprites.h" +#include "BSPModel.h" +#include "OutdoorCamera.h" +#include "Mouse.h" +#include "stru6.h" +#include "stru11.h" +#include "stru12.h" + +#include "LightmapBuilder.h" #include "MM7.h" #include "MapInfo.h" #include "Game.h" @@ -11,9 +19,6 @@ #include "AudioPlayer.h" #include "Outdoor.h" #include "IndoorCamera.h" -#include "Overlays.h" -#include "Monsters.h" -#include "Arcomage.h" #include "LOD.h" #include "Actor.h" #include "Allocator.h" @@ -23,27 +28,12 @@ #include "Math.h" #include "SpriteObject.h" #include "ObjectList.h" -#include "Chest.h" -#include "PaletteManager.h" #include "DecorationList.h" -#include "SaveLoad.h" -#include "stru123.h" #include "Time.h" #include "IconFrameTable.h" -#include "GUIProgressBar.h" -#include "Bink_Smacker.h" -#include "TileFrameTable.h" #include "PlayerFrameTable.h" #include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" #include "TurnEngine.h" -#include "FactionTable.h" -#include "StorylineTextTable.h" -#include "Random.h" -#include "CastSpellInfo.h" -#include "stru298.h" -#include "stru12.h" #include "Events2D.h" #include "stru159.h" #include "texts.h"
--- a/mm7_5.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_5.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,7 +1,19 @@ #include <assert.h> +#include "VideoPlayer.h" +#include "Sprites.h" +#include "MapInfo.h" +#include "BSPModel.h" +#include "OutdoorCamera.h" +#include "LightmapBuilder.h" +#include "DecalBuilder.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "GammaControl.h" +#include "stru11.h" + +#include "Vis.h" #include "mm7.h" -#include "MapInfo.h" #include "Game.h" #include "GUIWindow.h" #include "GUIFont.h" @@ -9,13 +21,9 @@ #include "Party.h" #include "AudioPlayer.h" #include "Outdoor.h" -#include "IndoorCamera.h" -#include "Overlays.h" -#include "Monsters.h" #include "Arcomage.h" #include "LOD.h" #include "Actor.h" -#include "Allocator.h" #include "Events.h" #include "Viewport.h" #include "FrameTableInc.h" @@ -24,19 +32,11 @@ #include "ObjectList.h" #include "Chest.h" #include "PaletteManager.h" -#include "DecorationList.h" #include "SaveLoad.h" -#include "stru123.h" #include "Time.h" -#include "IconFrameTable.h" -#include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" #include "TurnEngine.h" #include "CastSpellInfo.h" -#include "Weather.h" #include "stru298.h" -#include "StorylineTextTable.h" #include "Events2D.h" #include "texts.h" #include "Log.h"
--- a/mm7_6.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_6.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,44 +1,37 @@ #include "MM7.h" -#include "MapInfo.h" + + +#include "Sprites.h" +#include "BSPModel.h" +#include "OutdoorCamera.h" +#include "Mouse.h" +#include "Keyboard.h" +#include "stru6.h" + +#include "Vis.h" #include "Game.h" #include "GUIWindow.h" #include "GUIFont.h" -#include "GUIProgressBar.h" #include "Party.h" #include "AudioPlayer.h" #include "Outdoor.h" -#include "IndoorCamera.h" #include "Overlays.h" -#include "Monsters.h" -#include "Arcomage.h" #include "LOD.h" #include "Actor.h" -#include "Allocator.h" #include "Events.h" #include "Viewport.h" -#include "FrameTableInc.h" #include "Math.h" #include "SpriteObject.h" #include "ObjectList.h" -#include "Chest.h" -#include "PaletteManager.h" -#include "DecorationList.h" -#include "SaveLoad.h" #include "stru123.h" #include "Time.h" #include "IconFrameTable.h" #include "Awards.h" -#include "Autonotes.h" -#include "stru160.h" #include "TurnEngine.h" #include "CastSpellInfo.h" -#include "Weather.h" #include "stru298.h" #include "texts.h" -#include "StorylineTextTable.h" -#include "Events2D.h" -#include "Log.h" #include "mm7_data.h"
--- a/mm7_data.cpp Tue May 21 01:21:10 2013 +0400 +++ b/mm7_data.cpp Tue May 21 07:24:49 2013 +0400 @@ -1,7 +1,5 @@ #include "mm7_data.h" -#include "NPC.h" -#include "Actor.h" #include "GUIWindow.h" #include "Party.h"
--- a/mm7_data.h Tue May 21 01:21:10 2013 +0400 +++ b/mm7_data.h Tue May 21 07:24:49 2013 +0400 @@ -1,8 +1,7 @@ #pragma once #include <string> +#include "VectorTypes.h" #include "OSAPI.h" -#include "SpriteObject.h" -#include "VectorTypes.h" typedef char _UNKNOWN;
--- a/stru11.h Tue May 21 01:21:10 2013 +0400 +++ b/stru11.h Tue May 21 07:24:49 2013 +0400 @@ -1,6 +1,7 @@ #pragma once +#include "mm7_data.h" /* 128 */ #pragma pack(push, 1) struct stru11