V-WndCore.ASM
上传用户:santakups8
上传日期:2021-03-23
资源大小:544k
文件大小:4k
源码类别:

模拟服务器

开发平台:

Asm

  1. ;EasyCodeName=MENU,1
  2. ;-----------------------------------------------------------------------------------
  3. ;    VeMU
  4. ;    Its a package that allows the user to set his own server of the game
  5. ;    "MuOnline", this is not an emulator since i am not "emulating"
  6. ;    what the actual games does, i am "creating" a method for set a Server
  7. ;    of this Game.
  8. ;
  9. ;    Copyright (C) 2010  Felipe Ya馿z
  10. ;
  11. ;    This program is free software: you can redistribute it and/or modify
  12. ;    it under the terms of the GNU General Public License as published by
  13. ;    the Free Software Foundation, either version 3 of the License, or
  14. ;    (at your option) any later version.
  15. ;
  16. ;    This program is distributed in the hope that it will be useful,
  17. ;    but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ;    GNU General Public License for more details.
  20. ;
  21. ;    You should have received a copy of the GNU General Public License
  22. ;    along with this program.  If not, see http://www.gnu.org/licenses/.
  23. ;-----------------------------------------------------------------------------------
  24. ;-----------------------------------------------------------------------------------
  25. ;                        -----------------
  26. ;                             Coded     /
  27. ;                              By      /
  28. ;                           -={FeN$x)=-
  29. ;                         /  Felipe Y.  
  30. ;                        /               
  31. ;                        -----------------
  32. ; Programming Lang: ASM
  33. ; Country: Chile
  34. ;              My respect for all those who lost their lifes
  35. ;              In the earthquake of my country...
  36. ;              Let god take their spirits home...
  37. ;-----------------------------------------------------------------------------------
  38. WinMain Proto :DWord, :DWord, :DWord, :DWord
  39. WndProc Proto :Dword, :Dword, :Dword, :Dword
  40. .Const
  41. IDM_START Equ 1
  42. .Data
  43. szCommandLine DB  MAX_PATH * 50 Dup(?) ;for hold the whole command line
  44. .Data?
  45. hInstance HINSTANCE ?
  46. CommandLine LPSTR ?
  47. .Code
  48. V_InitWindow Proc
  49.  Invoke GetModuleHandle, NULL
  50.  Mov hInstance, Eax
  51.  Invoke GetCommandLine
  52.  Mov CommandLine, Eax
  53.  Invoke WinMain, hInstance, NULL, CommandLine, SW_SHOWDEFAULT
  54.  Invoke ExitProcess, Eax
  55.  Ret
  56. V_InitWindow EndP
  57. WinMain Proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWord
  58. Local wc:WNDCLASSEX
  59. Local msg:MSG
  60. Local hWnd:HWND
  61.  Mov wc.cbSize, SizeOf WNDCLASSEX
  62.  Mov wc.style, CS_HREDRAW Or CS_VREDRAW
  63.  Mov wc.lpfnWndProc, Offset WndProc
  64.  Mov wc.cbClsExtra, NULL
  65.  Mov wc.cbWndExtra, NULL
  66.  Push hInst
  67.  Pop wc.hInstance
  68.  Mov wc.hbrBackground, COLOR_WINDOW + 1
  69.  Mov wc.lpszMenuName, $CTA0("ValkMenu")
  70.  Mov wc.lpszClassName, $CTA0("Valkyrie Project")
  71.  Invoke LoadIcon, hInst, 500
  72.  Mov wc.hIcon, Eax
  73.  Mov wc.hIconSm, Eax
  74.  Invoke LoadCursor, NULL, IDC_ARROW
  75.  Mov wc.hCursor, Eax
  76.  Invoke RegisterClassEx, Addr wc
  77.  Invoke CreateWindowEx, NULL, $CTA0("Valkyrie Project"), $CTA0("Valkyrie Emulator"), 
  78.           WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, NULL, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL
  79.  Mov GShWnd, Eax
  80.  Invoke ShowWindow, GShWnd, SW_MAXIMIZE
  81.  .While TRUE
  82.    Invoke GetMessage, Addr msg, NULL, 0, 0
  83.  .Break .If (!Eax)
  84.    Invoke DispatchMessage, Addr msg
  85.  .EndW
  86.   Mov Eax, msg.wParam
  87.   Ret
  88. WinMain EndP
  89. WndProc Proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
  90.  .If uMsg == WM_DESTROY
  91. Invoke PostQuitMessage, NULL
  92. Xor Eax, Eax
  93.  .ElseIf uMsg == WM_COMMAND
  94. Mov Eax, wParam
  95.     .If Ax == IDM_START
  96.      call V_InitGamePlay
  97.      ;Call V_Sock_InitInternalClients
  98. .Else
  99. Invoke DestroyWindow, hWnd
  100. Xor Eax, Eax
  101. .EndIf
  102.  .ElseIf uMsg == WM_PAINT
  103.   Call V_Print_Run
  104.     Call V_DisplayRect
  105.  .Elseif uMsg == WM_ERASEBKGND
  106.     Invoke DefWindowProc, hWnd, uMsg, wParam, lParam
  107.  .ElseIf uMsg == WM_LOG_PAINT
  108.     invoke V_LogSystem_Print, wParam
  109.  .Else
  110.   invoke V_Sock_InternalAdmin, uMsg, lParam
  111. Invoke DefWindowProc, hWnd, uMsg, wParam, lParam
  112.  .EndIf
  113.  Ret
  114. WndProc EndP