goRun.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "pch.h"
  2. #include "goRun.h"
  3. #include <string>
  4. //extern "C" __declspec(dllexport) void run(int x, int y, int dir, int typePara, int para, int addr);
  5. //×ß·ÅÜ·
  6. void run(int x, int y, int dir, int typePara, int para, int addr)
  7. {
  8. __asm {
  9. mov eax, y
  10. push eax
  11. mov eax, dir
  12. push eax
  13. push 0
  14. push 0
  15. push 0
  16. push 0
  17. push 0
  18. mov eax, para
  19. mov eax, [eax]
  20. mov eax, [eax]
  21. mov ecx, x
  22. mov edx, typePara
  23. mov ebx, addr
  24. call ebx
  25. }
  26. }
  27. //Ѱ·
  28. void find_path(int x, int y, int para, int addr)
  29. {
  30. __asm {
  31. push 1
  32. push 0
  33. mov edx, x
  34. mov ecx, y
  35. mov eax, para
  36. mov eax, [eax]
  37. mov eax, [eax]
  38. mov ebx, addr
  39. call ebx
  40. }
  41. }
  42. //·É²ÔÔÂ
  43. void fly_CY(int para, int addr)
  44. {
  45. __asm {
  46. push 0
  47. push 0
  48. push 0
  49. push 0
  50. mov eax, para
  51. mov eax, [eax]
  52. mov eax, [eax]
  53. mov edx, 0x11b2
  54. mov ebx, addr
  55. call ebx
  56. }
  57. }
  58. void GoRun::process(int code, int* data)
  59. {
  60. switch (code)
  61. {
  62. case 1001:
  63. run(data[0], data[1], data[2], data[3], data[4], data[5]);
  64. break;
  65. case 1002:
  66. find_path(data[0], data[1], data[2], data[3]);
  67. break;
  68. case 1010:
  69. fly_CY(data[0], data[1]);
  70. break;
  71. default:
  72. break;
  73. }
  74. }