Advertisement
fastman92

fastman92 limit adjuster exports

Jul 22nd, 2015
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.42 KB | None | 0 0
  1. // Author: fastman92
  2. // Project: fastman92 limit adjuster
  3.  
  4. // Please set up IS_X86_ARCHITECTURE or IS_X64_ARCHITECTURE depending for your project.
  5.  
  6. #pragma once
  7.  
  8. #ifdef FASTMAN92_LIMIT_ADJUSTER
  9. #define F92_LA_API __declspec(dllexport)
  10. #else
  11. #define F92_LA_API __declspec(dllimport)
  12. #endif
  13.  
  14. extern "C" {
  15.  
  16.     #define IMG_FASTMAN92_GTASA_MAX_FILENAME_LENGTH 39
  17.  
  18.     #pragma pack(push, 1)
  19.     class tImgFastman92GTASAdirectoryEntry
  20.     {
  21.     public:
  22.         unsigned __int32 PositionInSectors;
  23.         unsigned __int16 OriginalSizeInSectors;
  24.         unsigned __int16 NumberOfPaddedBytesInAlignedOriginalSize;
  25.         unsigned __int16 PackedSizeInSectors;
  26.         unsigned __int16 NumberOfPaddedBytesInAlignedPackedSize;
  27.         unsigned __int32 Flags;
  28.         char Name[IMG_FASTMAN92_GTASA_MAX_FILENAME_LENGTH + 1];
  29.         char Reserved[8];   // should have NULL values when reserved.
  30.     };
  31.     #pragma pack(pop)
  32.  
  33.     #pragma pack(push, 1)
  34.     class CStreamingInfoInGTASA
  35.     {
  36.     public:
  37.         unsigned __int16 usNext;
  38.         unsigned __int16 usPrev;
  39.         unsigned __int16 usNextOnCd;
  40.         char ucFlags;
  41.         unsigned __int8 ucImgId;
  42.         int iBlockOffset;       // m_OriginalSizeInSectors
  43.         int iBlockCount;
  44.         char uiLoadFlag;
  45.         char field_11[3];
  46.     };
  47.     #pragma pack(pop)
  48.  
  49.     #pragma pack(push, 1)
  50.     struct tImgDescriptorInGTASA
  51.     {
  52.         char name[40];
  53.         char isNotPlayerImg;
  54.         char __align[3];
  55.         int streamHandle;
  56.     };
  57.     #pragma pack(pop)
  58.  
  59.     // GTA SA IMG loading call
  60.     struct tGTASAimgLoadingCall
  61.     {
  62.         unsigned __int32 dwSize;    // structure size
  63.  
  64.         //////////////////
  65.         // first version of structure
  66.  
  67.         // pointer passed to functions below
  68.         void* pUserData;
  69.  
  70.         // When ReadEntry != NULL, then IMG archive won't opened and caller is responsible for opening/closing if neccessary.
  71.         // ReadEntry will be used to get each next entry.
  72.         bool(__cdecl* ReadEntry)(class tImgFastman92GTASAdirectoryEntry* pEntry, void* pUserData);
  73.  
  74.         // Function that's executed to find out if special entry should be added or not.
  75.         bool(__cdecl* OnSpecialEntry)(class tImgFastman92GTASAdirectoryEntry* pEntry, void* pUserData);
  76.  
  77.         // Function that's executed after CStreamingInfo::GetCdPosnAndSize, can prevent registering the entry.
  78.         bool(__cdecl* OnEntry)(
  79.             class tImgFastman92GTASAdirectoryEntry* pEntry,
  80.             class CStreamingInfoInGTASA* pStreamingInfo,
  81.             bool isFileSizeSetUp,
  82.             void* pUserData
  83.             );
  84.  
  85.         //////////////////
  86.     };
  87.  
  88.     // Count of file IDs
  89.     F92_LA_API __int32 GetNumberOfFileIDs();
  90.  
  91.     // Returns model info, prev file ID
  92.     F92_LA_API __int32 GetFileInfoPrevFileID(__int32 fileID);
  93.  
  94.     // Returns model info, next file ID
  95.     F92_LA_API __int32 GetFileInfoNextFileID(__int32 fileID);
  96.  
  97.     // Returns model info, next on CD file ID
  98.     F92_LA_API __int32 GetFileInfoNextOnCDfileID(__int32 fileID);
  99.  
  100.     // Sets file info, Prev file ID
  101.     F92_LA_API void SetFileInfoPrevFileID(__int32 fileID, __int32 newValue);
  102.  
  103.     // Sets file info, Next file ID
  104.     F92_LA_API void SetFileInfoNextFileID(__int32 fileID, __int32 newValue);
  105.  
  106.     // Sets file info, NextOnCd file ID
  107.     F92_LA_API void SetFileInfoNextOnCDfileID(__int32 fileID, __int32 newValue);
  108.  
  109.     // Returns true if handling of enhanced IMG archives is enabled
  110.     F92_LA_API bool IsHandlingOfEnhancedIMGarchivesEnabled();
  111.    
  112. #ifdef IS_X86_ARCHITECTURE
  113.     // Loads CD directory in GTA SA. Works only if enhanced IMG archives are enabled!
  114.     F92_LA_API void LoadCdDirectoryInGTASA(
  115.             tImgDescriptorInGTASA *pIMGdescriptor,
  116.             int imgId,
  117.             tGTASAimgLoadingCall* pLoadingCall
  118.         );
  119. #endif
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement