Mir2Ex.cpp
上传用户:cydong117
上传日期:2009-11-10
资源大小:638k
文件大小:5k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. CMirSound g_xSound;
  3. CWHDXGraphicWindow g_xMainWnd;
  4. CLoginProcess g_xLoginProc;
  5. CCharacterProcess g_xChrSelProc;
  6. CGameProcess g_xGameProc;
  7. CSprite g_xSpriteInfo;
  8. CChatEdit g_xChatEditBox;
  9. CClientSocket g_xClientSocket;
  10. INT g_nCertifyCode;
  11. char g_szUserID[20];
  12. char g_szCharName[20];
  13. char g_szServerIP[16];
  14. INT g_nServerPort;
  15. INT g_nVersion;
  16. BYTE g_bProcState = _LOGIN_PROC;
  17. int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  18. {
  19.     MSG msg;
  20. g_xMainWnd.Create(hInstance, "Legend Of Mir 2 Expansion[Evil's Illusion] ", NULL, MAKEINTRESOURCE(IDI_ICON), _DXG_SCREENMODE_WINDOW, _DXG_DEVICEMODE_PRIMARY|_DXG_DEVICEMODE_D3D|_DXG_DEVICEMODE_ZBUFFER);
  21. ShowWindow(g_xMainWnd.GetSafehWnd(), SW_HIDE);
  22. g_xSound.InitMirSound(g_xMainWnd.GetSafehWnd());
  23. g_xSpriteInfo.SetInfo();
  24. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  25. // 俊叼飘冠胶 积己.
  26. g_xChatEditBox.Create(g_xMainWnd.GetSafehInstance(), g_xMainWnd.GetSafehWnd(), 0, 0, 0, 0);
  27. ShowWindow(g_xChatEditBox.GetSafehWnd(), SW_HIDE);
  28. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  29. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  30. //  Random Seed檬扁拳.
  31. srand((unsigned)time(NULL));
  32. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  33. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  34. // Windows Socket DLL阑 檬扁拳茄促.
  35. WSAData wsd;
  36. if( WSAStartup( MAKEWORD(2, 2), &wsd ) != 0 )
  37. return -1;
  38. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  39. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  40. //  矫累窍搁辑 肺弊牢 橇肺矫廉肺 技泼茄促.
  41. g_xClientSocket.m_pxDefProc = g_xMainWnd.m_pxDefProcess = &g_xLoginProc;
  42. g_xLoginProc.Load();
  43. g_bProcState = _LOGIN_PROC;
  44. // 矫累 窍搁辑 纳腐磐 Selection Procedure肺 技泼
  45. /* g_nCertifyCode = 100;
  46. strcpy(g_szUserID,"2222");
  47. strcpy(g_szServerIP,"192.168.0.200");
  48. g_nServerPort = 7100;
  49. g_xMainWnd.m_pxDefProcess = &g_xChrSelProc;
  50. g_xChrSelProc.Load();
  51. g_bProcState = _CHAR_SEL_PROC;
  52. */
  53. /* WORD wColor1 = g_xMainWnd.ConvertColor24To16(RGB(255, 150, 150));
  54. WORD wColor2 = g_xMainWnd.ConvertColor24To16(RGB(0, 255, 0));
  55. WORD wColor3 = g_xMainWnd.ConvertColor24To16(RGB(150, 150, 255));
  56. WORD wColor4 = g_xMainWnd.ConvertColor24To16(RGB(255, 255, 0));
  57. WORD wColor5 = g_xMainWnd.ConvertColor24To16(RGB(255, 125, 255));
  58. */
  59. /* UpdateWindow(g_xMainWnd.GetSafehWnd());
  60. ShowWindow(g_xMainWnd.GetSafehWnd(), SW_SHOW);
  61. g_xMainWnd.m_pxDefProcess = &g_xGameProc;
  62. g_xGameProc.Load();
  63. g_bProcState = _GAME_PROC;
  64. */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  65. g_nVersion = 20020403;
  66. DWORD dwLastTime, dwTime, dwDelay;
  67. dwLastTime = dwTime = dwDelay = 0;
  68. /* CAirWave m_xWave;
  69. m_xWave.InitAirWave();
  70. CWHWilImageData xImage;
  71. xImage.NewLoad("a.wil");
  72. xImage.NewSetIndex(0);
  73. */
  74. /*
  75. g_xMainWnd.DrawWithImageForComp(0, 0, 
  76. 276, 185,
  77. (WORD*)(xImage.m_pbCurrImage));
  78. */
  79. // m_xWave.DropAirWaveMap( 180, 50, 40, -100 );
  80. while (TRUE)
  81.     {
  82.         if ( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) )
  83.         {
  84.             if ( 0 == GetMessage(&msg, NULL, 0, 0) )
  85.                 return (int) msg.wParam;
  86.         TranslateMessage(&msg);
  87.             DispatchMessage(&msg);
  88. }
  89.         else
  90.         {
  91. dwTime = timeGetTime();
  92. dwDelay = dwTime - dwLastTime;
  93. dwLastTime = dwTime;
  94. if ( dwDelay!=0 /*&& g_xMainWnd.m_bIsWindowActive && g_xMainWnd.m_bIsWindowReady */)
  95. {
  96. switch ( g_bProcState )
  97. {
  98. case _LOGIN_PROC:
  99. g_xLoginProc.RenderScene(dwDelay);
  100. break;
  101. case _CHAR_SEL_PROC:
  102. g_xChrSelProc.RenderScene(dwDelay);
  103. break;
  104. case _GAME_PROC:
  105. g_xGameProc.RenderScene(dwDelay);
  106. break;
  107. }
  108. /* if ( HIBYTE(GetKeyState(VK_RBUTTON)) )
  109. {
  110. POINT ptMouse;
  111. GetCursorPos(&ptMouse);
  112. ScreenToClient(g_xMainWnd.GetSafehWnd(), &ptMouse);
  113. m_xWave.DropAirWaveMap( ptMouse.x, ptMouse.y, 40, -100 );
  114. }
  115. g_xMainWnd.DrawWithImageForComp(0, 0, 
  116. xImage.m_lpstNewCurrWilImageInfo->shWidth, xImage.m_lpstNewCurrWilImageInfo->shHeight,
  117. (WORD*)(xImage.m_pbCurrImage));
  118. m_xWave.UpdateAirWave();
  119. m_xWave.RenderAirWave();
  120. */
  121. if ( FAILED(g_xMainWnd.Present()) )
  122. {
  123. g_xMainWnd.RestoreSurfaces();
  124. }
  125. }
  126. }
  127. }
  128. return msg.wParam;
  129. }