plugincommon.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. //----------------------------------------------------------
  2. //
  3. // SA:MP Multiplayer Modification For GTA:SA
  4. // Copyright 2004-2006 SA:MP Team
  5. //
  6. //----------------------------------------------------------
  7. #ifndef _PLUGINCOMMON_H_INCLUDED
  8. #define _PLUGINCOMMON_H_INCLUDED
  9. //----------------------------------------------------------
  10. #define SAMP_PLUGIN_VERSION 0x0200
  11. //----------------------------------------------------------
  12. #ifdef __cplusplus
  13. #define PLUGIN_EXTERN_C extern "C"
  14. #else
  15. #define PLUGIN_EXTERN_C
  16. #endif
  17. #if defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD__) || defined(__OpenBSD__)
  18. #ifndef __GNUC__
  19. #pragma message "Warning: Not using a GNU compiler."
  20. #endif
  21. #define PLUGIN_CALL
  22. #ifndef SAMPSVR
  23. // Compile code with -fvisibility=hidden to hide non-exported functions.
  24. #define PLUGIN_EXPORT PLUGIN_EXTERN_C __attribute__((visibility("default")))
  25. #else
  26. #define PLUGIN_EXPORT PLUGIN_EXTERN_C
  27. #endif
  28. #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
  29. #ifndef _MSC_VER
  30. #pragma message "Warning: Not using a VC++ compiler."
  31. #endif
  32. #define PLUGIN_CALL __stdcall
  33. #define PLUGIN_EXPORT PLUGIN_EXTERN_C
  34. #else
  35. #error "You must define one of WIN32, LINUX or FREEBSD"
  36. #endif
  37. //----------------------------------------------------------
  38. enum SUPPORTS_FLAGS
  39. {
  40. SUPPORTS_VERSION = SAMP_PLUGIN_VERSION,
  41. SUPPORTS_VERSION_MASK = 0xffff,
  42. SUPPORTS_AMX_NATIVES = 0x10000,
  43. };
  44. //----------------------------------------------------------
  45. enum PLUGIN_DATA_TYPE
  46. {
  47. // For some debugging
  48. PLUGIN_DATA_LOGPRINTF = 0x00, // void (*logprintf)(char* format, ...)
  49. // AMX
  50. PLUGIN_DATA_AMX_EXPORTS = 0x10, // void* AmxFunctionTable[] (see PLUGIN_AMX_EXPORT)
  51. PLUGIN_DATA_CALLPUBLIC_FS = 0x11, // int (*AmxCallPublicFilterScript)(char *szFunctionName)
  52. PLUGIN_DATA_CALLPUBLIC_GM = 0x12, // int (*AmxCallPublicGameMode)(char *szFunctionName)
  53. };
  54. //----------------------------------------------------------
  55. enum PLUGIN_AMX_EXPORT
  56. {
  57. PLUGIN_AMX_EXPORT_Align16 = 0,
  58. PLUGIN_AMX_EXPORT_Align32 = 1,
  59. PLUGIN_AMX_EXPORT_Align64 = 2,
  60. PLUGIN_AMX_EXPORT_Allot = 3,
  61. PLUGIN_AMX_EXPORT_Callback = 4,
  62. PLUGIN_AMX_EXPORT_Cleanup = 5,
  63. PLUGIN_AMX_EXPORT_Clone = 6,
  64. PLUGIN_AMX_EXPORT_Exec = 7,
  65. PLUGIN_AMX_EXPORT_FindNative = 8,
  66. PLUGIN_AMX_EXPORT_FindPublic = 9,
  67. PLUGIN_AMX_EXPORT_FindPubVar = 10,
  68. PLUGIN_AMX_EXPORT_FindTagId = 11,
  69. PLUGIN_AMX_EXPORT_Flags = 12,
  70. PLUGIN_AMX_EXPORT_GetAddr = 13,
  71. PLUGIN_AMX_EXPORT_GetNative = 14,
  72. PLUGIN_AMX_EXPORT_GetPublic = 15,
  73. PLUGIN_AMX_EXPORT_GetPubVar = 16,
  74. PLUGIN_AMX_EXPORT_GetString = 17,
  75. PLUGIN_AMX_EXPORT_GetTag = 18,
  76. PLUGIN_AMX_EXPORT_GetUserData = 19,
  77. PLUGIN_AMX_EXPORT_Init = 20,
  78. PLUGIN_AMX_EXPORT_InitJIT = 21,
  79. PLUGIN_AMX_EXPORT_MemInfo = 22,
  80. PLUGIN_AMX_EXPORT_NameLength = 23,
  81. PLUGIN_AMX_EXPORT_NativeInfo = 24,
  82. PLUGIN_AMX_EXPORT_NumNatives = 25,
  83. PLUGIN_AMX_EXPORT_NumPublics = 26,
  84. PLUGIN_AMX_EXPORT_NumPubVars = 27,
  85. PLUGIN_AMX_EXPORT_NumTags = 28,
  86. PLUGIN_AMX_EXPORT_Push = 29,
  87. PLUGIN_AMX_EXPORT_PushArray = 30,
  88. PLUGIN_AMX_EXPORT_PushString = 31,
  89. PLUGIN_AMX_EXPORT_RaiseError = 32,
  90. PLUGIN_AMX_EXPORT_Register = 33,
  91. PLUGIN_AMX_EXPORT_Release = 34,
  92. PLUGIN_AMX_EXPORT_SetCallback = 35,
  93. PLUGIN_AMX_EXPORT_SetDebugHook = 36,
  94. PLUGIN_AMX_EXPORT_SetString = 37,
  95. PLUGIN_AMX_EXPORT_SetUserData = 38,
  96. PLUGIN_AMX_EXPORT_StrLen = 39,
  97. PLUGIN_AMX_EXPORT_UTF8Check = 40,
  98. PLUGIN_AMX_EXPORT_UTF8Get = 41,
  99. PLUGIN_AMX_EXPORT_UTF8Len = 42,
  100. PLUGIN_AMX_EXPORT_UTF8Put = 43,
  101. };
  102. //----------------------------------------------------------
  103. #endif // _PLUGINCOMMON_H_INCLUDED
  104. //----------------------------------------------------------
  105. // EOF