changeset 1542:7d986a396092

Merge
author Nomad
date Sat, 07 Sep 2013 13:03:18 +0200
parents 86cb7398d2a8 (diff) 6e4980797714 (current diff)
children 888157f45502
files Render.cpp Sprites.cpp mm7_2.cpp mm7_3.cpp mm7_data.cpp mm7_data.h
diffstat 8 files changed, 95 insertions(+), 133 deletions(-) [+]
line wrap: on
line diff
--- a/LOD.cpp	Sat Sep 07 05:23:16 2013 +0200
+++ b/LOD.cpp	Sat Sep 07 13:03:18 2013 +0200
@@ -21,12 +21,15 @@
 
 LODFile_IconsBitmaps *pIcons_LOD = nullptr;
 LODFile_IconsBitmaps *pIcons_LOD_mm6 = nullptr;
+LODFile_IconsBitmaps *pIcons_LOD_mm8 = nullptr;
 
 LODFile_IconsBitmaps *pBitmaps_LOD = nullptr;
 LODFile_IconsBitmaps *pBitmaps_LOD_mm6 = nullptr;
+LODFile_IconsBitmaps *pBitmaps_LOD_mm8 = nullptr;
 
 LODFile_Sprites *pSprites_LOD = nullptr;
 LODFile_Sprites *pSprites_LOD_mm6 = nullptr;
+LODFile_Sprites *pSprites_LOD_mm8 = nullptr;
 
 LODWriteableFile *pNew_LOD = nullptr;
 LODWriteableFile *pGames_LOD = nullptr;
--- a/LOD.h	Sat Sep 07 05:23:16 2013 +0200
+++ b/LOD.h	Sat Sep 07 13:03:18 2013 +0200
@@ -302,14 +302,18 @@
 
 
 extern LODFile_IconsBitmaps *pEvents_LOD;
+
 extern LODFile_IconsBitmaps *pIcons_LOD;
 extern LODFile_IconsBitmaps *pIcons_LOD_mm6;
+extern LODFile_IconsBitmaps *pIcons_LOD_mm8;
 
 extern LODFile_IconsBitmaps *pBitmaps_LOD;
 extern LODFile_IconsBitmaps *pBitmaps_LOD_mm6;
+extern LODFile_IconsBitmaps *pBitmaps_LOD_mm8;
 
 extern LODFile_Sprites *pSprites_LOD;
 extern LODFile_Sprites *pSprites_LOD_mm6;
+extern LODFile_Sprites *pSprites_LOD_mm8;
 
 extern LODWriteableFile *pNew_LOD;
 extern LODWriteableFile *pGames_LOD;
--- a/Render.cpp	Sat Sep 07 05:23:16 2013 +0200
+++ b/Render.cpp	Sat Sep 07 13:03:18 2013 +0200
@@ -8411,7 +8411,6 @@
       ClipCursor(0);
       pRenderer->SwitchToWindow(hWnd);
       SetWindowLongA(hWnd, -16, uWindowStyle);
-      SetMenu(hWnd, hOSMenu);
     }
     if ( pRenderer->pRenderD3D )
     {
--- a/Sprites.cpp	Sat Sep 07 05:23:16 2013 +0200
+++ b/Sprites.cpp	Sat Sep 07 13:03:18 2013 +0200
@@ -405,8 +405,7 @@
     pSpriteSFrames[num_mm7_frames + i].uAnimLength = 0;
   }
   memcpy(pSpriteEFrames + num_mm7_frames, (char *)data_mm6 + 8 + mm6_frames_size, 2 * num_mm6_eframes);
-  
-  if (data_mm8) __debugbreak();
+
   auto mm8_frames_size = num_mm8_frames * sizeof(SpriteFrame);
   memcpy(pSpriteSFrames + num_mm6_frames + num_mm7_frames, (char *)data_mm8 + 8, mm8_frames_size);
   memcpy(pSpriteEFrames + num_mm6_frames + num_mm7_frames, (char *)data_mm8 + 8 + mm8_frames_size, 2 * num_mm8_eframes);
--- a/mm7_2.cpp	Sat Sep 07 05:23:16 2013 +0200
+++ b/mm7_2.cpp	Sat Sep 07 13:03:18 2013 +0200
@@ -3254,7 +3254,7 @@
 }
 
 //----- (004637EB) --------------------------------------------------------
-LRESULT CALLBACK aWinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+int __stdcall aWinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
   //HANDLE v6; // eax@32
   //HDC v10; // edi@50
@@ -3270,13 +3270,12 @@
 
   switch (uMsg)
   {
-    case WM_SIZING: 
-      return 1;
-
+    case WM_SIZING: return 1;
+    
+    case WM_CREATE:  case WM_NCCREATE:
+    case WM_GETTEXT: case WM_SETTEXT:
     case WM_SHOWWINDOW:
-    case WM_GETTEXT:
-    case WM_SETTEXT:
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_DESTROY:
       SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
@@ -3288,7 +3287,7 @@
       if (pVideoPlayer && pVideoPlayer->AnyMovieLoaded() && pVideoPlayer->pBinkBuffer)
         BinkBufferSetOffset(pVideoPlayer->pBinkBuffer, 0, 0);
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
     }
 
     case WM_CHAR:
@@ -3296,13 +3295,13 @@
       if (!pKeyActionMap->_459F10(wParam) && !viewparams->field_4C)
         GUI_HandleHotkey(wParam);
     }
-    return DefWindowProc(hWnd, uMsg, wParam, lParam);
+    return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
 
     case WM_DEVICECHANGE:
     {
       if (wParam == 0x8000)          // CD or some device has been inserted - notify InsertCD dialog
-        PostMessage(hInsertCDWindow, WM_USER + 1, 0, 0);
+        PostMessageW(hInsertCDWindow, WM_USER + 1, 0, 0);
       return 0;
     }
 
@@ -3314,7 +3313,7 @@
 
         case 101:  // Quit game
         case 40001:
-          SendMessage(hWnd, WM_DESTROY, 0, 0);
+          SendMessageW(hWnd, WM_DESTROY, 0, 0);
         return 0;
 
 
@@ -3483,14 +3482,14 @@
 
       }
     }
-    return DefWindowProc(hWnd, uMsg, wParam, lParam);
+    return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_LBUTTONDOWN:
       if (pArcomageGame->bGameInProgress)
       {
         pArcomageGame->stru1.field_0 = 7;
         ArcomageGame::OnMouseClick(0, true);
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
 
       goto __handle_mouse_click;
@@ -3500,7 +3499,7 @@
       {
         pArcomageGame->stru1.field_0 = 8;
         ArcomageGame::OnMouseClick(1, true);
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
 
       if (pVideoPlayer->pVideoFrame.pPixels)
@@ -3514,33 +3513,33 @@
       }
 
       sub_416D62_ShowPopupWindow_MonsterRecord_ItemInfo_etcsub_416D62(0);
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
 
     case WM_LBUTTONUP:
       if ( !pArcomageGame->bGameInProgress )
       {
         back_to_game();
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
       pArcomageGame->stru1.field_0 = 3;
       ArcomageGame::OnMouseClick(0, 0);
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
     case WM_RBUTTONUP:
       if ( !pArcomageGame->bGameInProgress )
       {
         back_to_game();
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
       pArcomageGame->stru1.field_0 = 4;
       ArcomageGame::OnMouseClick(1, false);
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_LBUTTONDBLCLK:
       if ( pArcomageGame->bGameInProgress )
       {
         pArcomageGame->stru1.field_0 = 7;
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
         
 __handle_mouse_click:
@@ -3559,7 +3558,7 @@
 
       UI_OnMouseLeftClick(0);
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_RBUTTONDBLCLK:
       if ( !pArcomageGame->bGameInProgress )
@@ -3575,12 +3574,12 @@
         }
 
         sub_416D62_ShowPopupWindow_MonsterRecord_ItemInfo_etcsub_416D62(0);
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
 
       pArcomageGame->stru1.field_0 = 8;
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_MBUTTONDOWN:
       if (pRenderer->pRenderD3D && pGame)
@@ -3588,7 +3587,7 @@
         pGame->PickMouse(pGame->pIndoorCameraD3D->GetPickDepth(), LOWORD(lParam), HIWORD(lParam), 1, &vis_sprite_filter_3, &vis_face_filter);
       }
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_MOUSEMOVE:
       if ( pArcomageGame->bGameInProgress )
@@ -3602,13 +3601,13 @@
         pMouse->SetMouseClick(LOWORD(lParam), HIWORD(lParam));
       }
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_SYSCOMMAND:
       if ( wParam == SC_SCREENSAVE || wParam == SC_MONITORPOWER )
         return 0;
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_KEYUP:
       if (wParam == VK_CONTROL)
@@ -3616,13 +3615,13 @@
         dword_507B98_ctrl_pressed = 0;
       }
 
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_KEYDOWN:
       if ( uGameMenuUI_CurentlySelectedKeyIdx != -1 )
       {
         pKeyActionMap->_459F10(wParam);
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
       if ( !pArcomageGame->bGameInProgress )
       {
@@ -3650,7 +3649,7 @@
         {
           if ( wParam != VK_F4 || pVideoPlayer->AnyMovieLoaded() )
             return 0;
-          SendMessage(hWnd, WM_COMMAND, 104, 0);
+          SendMessageW(hWnd, WM_COMMAND, 104, 0);
           return 0;
         }
         if ( wParam >= VK_LEFT && wParam <= VK_DOWN )
@@ -3675,15 +3674,15 @@
         pArcomageGame->field_F4 = 1;
         pArcomageGame->uGameResult = 2;
         pArcomageGame->field_B0 = -2;
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
       if ( wParam != 114 )
       {
         if ( wParam == 115 && !pVideoPlayer->AnyMovieLoaded() )
           SendMessage(hWnd, WM_COMMAND, 0x68u, 0);
-        return DefWindowProc(hWnd, uMsg, wParam, lParam);
+        return DefWindowProcW(hWnd, uMsg, wParam, lParam);
       }
-      SendMessage(hWnd, WM_COMMAND, 103, 0);
+      SendMessageW(hWnd, WM_COMMAND, 103, 0);
       return 0;
 
     case WM_ACTIVATEAPP:
@@ -3778,11 +3777,11 @@
       if ( pRenderer->bUserDirect3D && pRenderer->uAcquiredDirect3DDevice == 1 )
         SetWindowPos(hWnd, (HWND)0xFFFFFFFE, 0, 0, 0, 0, 0x18u);
       ClipCursor(0);
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_KILLFOCUS:
       dword_4E98BC_bApplicationActive = 1;
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcW(hWnd, uMsg, wParam, lParam);
 
     case WM_PAINT:
       if ( !GetUpdateRect(hWnd, 0, 0) || !dword_4E98BC_bApplicationActive && !pRenderer->bWindowMode )
@@ -3806,7 +3805,7 @@
       return 0;
 
     default:
-      return DefWindowProc(hWnd, uMsg, wParam, lParam);
+      return DefWindowProcA(hWnd, uMsg, wParam, lParam);
   }
 }
 
@@ -3937,12 +3936,12 @@
     pSpriteObjects[i].uObjectDescID = 0;
 
   v5 = pMapStats->GetMapInfo(pCurrentMapName);
-  bUnderwater = 0;
+  bUnderwater = false;
   uLevelMapStatsID = v5;
   pGame->uFlags2 &= 0xFFFFFFF7u;
   if ( !_stricmp(pCurrentMapName, "out15.odm") )
   {
-    bUnderwater = 1;
+    bUnderwater = true;
     pGame->uFlags2 |= 8u;
   }
   pParty->floor_face_pid = 0;
@@ -4382,11 +4381,6 @@
   auto hDesktopDC = GetDC(nullptr);
   uint uDesktopWidth = GetDeviceCaps(hDesktopDC, HORZRES);
   uint uDesktopHeight = GetDeviceCaps(hDesktopDC, VERTRES);
-
-  if (GetDeviceCaps(hDesktopDC, BITSPIXEL) != 16 ||
-      GetDeviceCaps(hDesktopDC, PLANES) != 1 )
-    dword_6BE364_game_settings_1 |= 2;
-
   ReleaseDC(nullptr, hDesktopDC);
 
   uint uTotalWinWidth = 2 * GetSystemMetrics(SM_CXFRAME) + 640;
@@ -4403,14 +4397,13 @@
   uWindowY = uDesktopHeight / 2 - 480 / 2;
   WriteWindowsRegistryInt("window Y", uWindowY);
 
-  hWnd = CreateWindowEx(0, wcxw.lpszClassName, L"Might and Magic® VII",
-                        uWindowStyle = WS_SYSMENU | WS_GROUP | WS_DLGFRAME | WS_BORDER,
-                        uWindowX, uWindowY,
-                        640, 480,
-                        nullptr,
-                        hOSMenu = nullptr,
-                        wcxw.hInstance,
-                        nullptr);
+  hWnd = CreateWindowExW(0, wcxw.lpszClassName, L"Might and Magic® VII",
+                         uWindowStyle = WS_SYSMENU | WS_GROUP | WS_DLGFRAME | WS_BORDER,
+                         uWindowX, uWindowY,
+                         640, 480,
+                         nullptr,
+                         wcxw.hInstance,
+                         nullptr);
 
   HMENU menu = CreateMenu();
   {
@@ -4714,54 +4707,48 @@
     Log::Warning(L"Unable to find mm6:sprites.lod");
 
 
-
-  if (bDebugResouces)
-  {
-    pSpriteFrameTable = new SpriteFrameTable;
-    if (!pSpriteFrameTable->FromFileTxt("data\\sft.txt"))
-      Abortf("Unable to open sft.txt");
-
-    pDecorationList = new DecorationList;
-    if (!pDecorationList->FromFileTxt("data\\declist.txt"))
-      Abortf("Unable to open declist.txt");
-
-    pObjectList = new ObjectList;
-    if (!pObjectList->FromFileTxt("data\\objlist.txt"))
-      Abortf("Unable to open objlist.txt");
-
-    pMonsterList = new MonsterList;
-    if (!pMonsterList->FromFileTxt("data\\monlist.txt"))
-      Abortf("Unable to open monlist.txt");
-
-    pIconsFrameTable = new IconFrameTable;
-    if (!pIconsFrameTable->FromFileTxt("data\\ift.txt"))
-      Abortf("Unable to open ift.txt");
-
-    pTextureFrameTable = new TextureFrameTable;
-    if (!pTextureFrameTable->FromFileTxt("data\\tft.def"))
-      Abortf("Unable to open tft.def");
-
-    pTileTable = new TileTable;
-    if (!pTileTable->FromFileTxt("data\\tile.def"))
-      Abortf("Unable to open tile.def");
-
-    pPlayerFrameTable = new PlayerFrameTable;
-    if (!pPlayerFrameTable->FromFileTxt("data\\pft.def"))
-      Abortf("Unable to open pft.def");
-
-    pChestList = new ChestList;
-    if (!pChestList->FromFileTxt("data\\chest.def"))
-      Abortf("Unable to open chest.def");
-
-    pOverlayList = new OverlayList;
-    if (!pOverlayList->FromFileTxt("data\\overlay.def"))
-      Abortf("Unable to open overlay.def");
-
-    pSoundList = new SoundList;
-    if (!pSoundList->FromFileTxt("data\\sounds.def"))
-      Abortf("Unable to open sounds.def");
+  if (_access("../mm8/data/icons.lod", 0) == 0)
+  {
+    pIcons_LOD_mm8 = new LODFile_IconsBitmaps;
+    if (!pIcons_LOD_mm8->Load("../mm8/data/icons.lod", "icons"))
+    {
+      delete pIcons_LOD_mm8;
+      pIcons_LOD_mm8 = nullptr;
+      Log::Warning(L"Unable to load mm8:icons.lod");
+    }
   }
   else
+    Log::Warning(L"Unable to find mm8:icons.lod");
+
+
+  if (_access("../mm8/data/bitmaps.lod", 0) == 0)
+  {
+    pBitmaps_LOD_mm8 = new LODFile_IconsBitmaps;
+    if (!pBitmaps_LOD_mm8->Load("../mm8/data/bitmaps.lod", "bitmaps"))
+    {
+      delete pBitmaps_LOD_mm8;
+      pBitmaps_LOD_mm8 = nullptr;
+      Log::Warning(L"Unable to load mm8:bitmaps.lod");
+    }
+  }
+  else
+    Log::Warning(L"Unable to find mm8:bitmaps.lod");
+  
+
+  if (_access("../mm8/data/sprites.lod", 0) == 0)
+  {
+    pSprites_LOD_mm8 = new LODFile_Sprites;
+    if (!pSprites_LOD_mm8->LoadSprites("../mm8/data/sprites.lod"))
+    {
+      delete pSprites_LOD_mm8;
+      pSprites_LOD_mm8 = nullptr;
+      Log::Warning(L"Unable to load mm8:sprites.lod");
+    }
+  }
+  else
+    Log::Warning(L"Unable to find mm8:sprites.lod");
+
+
   {
     void *sft_mm6 = pIcons_LOD_mm6 ? pIcons_LOD_mm6->LoadRaw("dsft.bin", 1) : nullptr,
          *sft_mm8 = nullptr;
@@ -4864,20 +4851,6 @@
   }
 
 
-  if (bDebugResouces)
-  {
-    pSpriteFrameTable->ToFile();
-    pDecorationList->ToFile();
-    pObjectList->ToFile();
-    pMonsterList->ToFile();
-    pIconsFrameTable->ToFile();
-    pTextureFrameTable->ToFile();
-    pTileTable->ToFile();
-    pPlayerFrameTable->ToFile();
-    pChestList->ToFile();
-    pOverlayList->ToFile();
-    pSoundList->ToFile();
-  }
 
   
   if (dword_6BE364_game_settings_1 & 2 || !(dword_6BE368_debug_settings_2 & 1))// 
@@ -5202,19 +5175,6 @@
 //----- (00462C94) --------------------------------------------------------
 bool MM_Main(const wchar_t *pCmdLine)
 {
-  HWND hPrevWnd; // eax@1
-  HWND hPrevWnd_; // esi@1
-  HWND v6; // eax@4
-  int v8; // eax@15
-  //bool v9; // edx@16
-  //OtherOverlay *v10; // esi@44
-  //signed int v11; // edi@44
-  //unsigned int v12; // ecx@56
-  HANDLE v13; // eax@68
-  unsigned int startms; // [sp+8h] [bp-24h]@55
-  RECT Rect; // [sp+Ch] [bp-20h]@15
-  int a2[4]; // [sp+1Ch] [bp-10h]@15
-  
   IntegrityTest();
   char test[1024];
   sprintfex(test, "^Pi[%s]: çíàõàð^R[ü;êà;]", "Çîëòàí");
@@ -5266,7 +5226,6 @@
     pGame->Deinitialize();
     return 1;
   }
-  Log::Warning(L"MM init: ok");
 
     pEventTimer->Pause();
 
@@ -5276,7 +5235,7 @@
     dword_6BE364_game_settings_1 |= 0x4000;
     pGame->InitializeGammaController();
     SecondaryInitialization();
-    pRenderer->SetRasterClipRect(0, 0, 639u, 479u);
+    pRenderer->SetRasterClipRect(0, 0, 639, 479);
     FinalInitialization();
 
     Log::Warning(L"MM: entering main loop");
@@ -5388,7 +5347,7 @@
       {
         pAudioPlayer->SetMusicVolume(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0f);
         AIL_redbook_stop(pAudioPlayer->hAILRedbook);
-        unsigned int end_ms;
+        unsigned int startms, end_ms;
         AIL_redbook_track_info(pAudioPlayer->hAILRedbook, 0xE, &startms, &end_ms);
         AIL_redbook_play(pAudioPlayer->hAILRedbook, startms + 1, end_ms);
       }
--- a/mm7_3.cpp	Sat Sep 07 05:23:16 2013 +0200
+++ b/mm7_3.cpp	Sat Sep 07 13:03:18 2013 +0200
@@ -6846,10 +6846,10 @@
   char pContainerName[120]; // [sp+8h] [bp-98h]@1
 
   sprintf(pContainerName, "%s.evt", pLevelName);
-  uLevelEVT_Size = LoadEventsToBuffer(pContainerName, pLevelEVT.data(), 0x2400u);
+  uLevelEVT_Size = LoadEventsToBuffer(pContainerName, pLevelEVT.data(), 9216);
 
   sprintf(pContainerName, "%s.str", pLevelName);
-  uLevelStrFileSize = LoadEventsToBuffer(pContainerName, pLevelStr.data(), 0x2400u);
+  uLevelStrFileSize = LoadEventsToBuffer(pContainerName, pLevelStr.data(), 9216);
   if (uLevelStrFileSize)
     LoadLevel_InitializeLevelStr();
 }
--- a/mm7_data.cpp	Sat Sep 07 05:23:16 2013 +0200
+++ b/mm7_data.cpp	Sat Sep 07 13:03:18 2013 +0200
@@ -1206,7 +1206,6 @@
 int uWindowX; // idb
 int uWindowY; // idb
 LONG uWindowStyle; // idb
-HMENU hOSMenu; // idb
 int dword_6BE340; // weak
 char pCurrentMapName[32]; // idb
 unsigned int uLevelMapStatsID;
--- a/mm7_data.h	Sat Sep 07 05:23:16 2013 +0200
+++ b/mm7_data.h	Sat Sep 07 13:03:18 2013 +0200
@@ -858,7 +858,6 @@
 extern int uWindowX; // idb
 extern int uWindowY; // idb
 extern LONG uWindowStyle; // idb
-extern HMENU hOSMenu; // idb
 extern int dword_6BE340; // weak
 extern char pCurrentMapName[32]; // idb
 extern unsigned int uLevelMapStatsID;