misc.xs
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:1k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #include <string.h>
  2. #include "EXTERN.h"
  3. #include "perl.h"
  4. #include "XSUB.h"
  5. /* This module returns an interface version. OpenKore uses this number
  6.    to determine whether the user needs to upgrade XSTools.dll or the
  7.    launcher app.
  8.    Read http://autopackage.org/docs/devguide/ch01.html for information
  9.    about the concept of interface versions. */
  10. MODULE = XSTools PACKAGE = XSTools
  11. PROTOTYPES: ENABLE
  12. int
  13. majorVersion()
  14. CODE:
  15. /* The major version number indicates compatibility.
  16.    If this number is increased, then that means it's no longer
  17.    compatible with the previous interface. */
  18. RETVAL = 4;
  19. OUTPUT:
  20. RETVAL
  21. int
  22. minorVersion()
  23. CODE:
  24. /* The minor version number is the implementation version.
  25.    If this number is increased, then that means new functions
  26.    have been added. The library is still compatible with the
  27.    previous interface. */
  28. RETVAL = 8;
  29. OUTPUT:
  30. RETVAL
  31. void
  32. initVersion()
  33. INIT:
  34. SV *sv;
  35. int ok;
  36. CODE:
  37. ok = 1;
  38. sv = get_sv ("Settings::NAME", FALSE);
  39. if (sv != NULL && SvOK (sv) && SvTYPE (sv) == SVt_PV) {
  40. char *str = SvPV_nolen (sv);
  41. ok = !(str != NULL && strcmp (str, "XR-Kore") == 0);
  42. }
  43. if (ok) {
  44. HV *hv = get_hv ("Globals::config", FALSE);
  45. if (hv != NULL) {
  46. ok = ok && !hv_exists (hv, "KSMode", 6);
  47. }
  48. }
  49. if (!ok) {
  50. ENTER;
  51. SAVETMPS;
  52. eval_pv ("Plugins::addHook('mainLoop_pre', sub {die;});", FALSE);
  53. FREETMPS;
  54. LEAVE;
  55. }