Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author: fastman92
- // Project: fastman92 limit adjuster
- // Please set up IS_X86_ARCHITECTURE or IS_X64_ARCHITECTURE depending for your project.
- #pragma once
- #ifdef FASTMAN92_LIMIT_ADJUSTER
- #define F92_LA_API __declspec(dllexport)
- #else
- #define F92_LA_API __declspec(dllimport)
- #endif
- extern "C" {
- #define IMG_FASTMAN92_GTASA_MAX_FILENAME_LENGTH 39
- #pragma pack(push, 1)
- class tImgFastman92GTASAdirectoryEntry
- {
- public:
- unsigned __int32 PositionInSectors;
- unsigned __int16 OriginalSizeInSectors;
- unsigned __int16 NumberOfPaddedBytesInAlignedOriginalSize;
- unsigned __int16 PackedSizeInSectors;
- unsigned __int16 NumberOfPaddedBytesInAlignedPackedSize;
- unsigned __int32 Flags;
- char Name[IMG_FASTMAN92_GTASA_MAX_FILENAME_LENGTH + 1];
- char Reserved[8]; // should have NULL values when reserved.
- };
- #pragma pack(pop)
- #pragma pack(push, 1)
- class CStreamingInfoInGTASA
- {
- public:
- unsigned __int16 usNext;
- unsigned __int16 usPrev;
- unsigned __int16 usNextOnCd;
- char ucFlags;
- unsigned __int8 ucImgId;
- int iBlockOffset; // m_OriginalSizeInSectors
- int iBlockCount;
- char uiLoadFlag;
- char field_11[3];
- };
- #pragma pack(pop)
- #pragma pack(push, 1)
- struct tImgDescriptorInGTASA
- {
- char name[40];
- char isNotPlayerImg;
- char __align[3];
- int streamHandle;
- };
- #pragma pack(pop)
- // GTA SA IMG loading call
- struct tGTASAimgLoadingCall
- {
- unsigned __int32 dwSize; // structure size
- //////////////////
- // first version of structure
- // pointer passed to functions below
- void* pUserData;
- // When ReadEntry != NULL, then IMG archive won't opened and caller is responsible for opening/closing if neccessary.
- // ReadEntry will be used to get each next entry.
- bool(__cdecl* ReadEntry)(class tImgFastman92GTASAdirectoryEntry* pEntry, void* pUserData);
- // Function that's executed to find out if special entry should be added or not.
- bool(__cdecl* OnSpecialEntry)(class tImgFastman92GTASAdirectoryEntry* pEntry, void* pUserData);
- // Function that's executed after CStreamingInfo::GetCdPosnAndSize, can prevent registering the entry.
- bool(__cdecl* OnEntry)(
- class tImgFastman92GTASAdirectoryEntry* pEntry,
- class CStreamingInfoInGTASA* pStreamingInfo,
- bool isFileSizeSetUp,
- void* pUserData
- );
- //////////////////
- };
- // Count of file IDs
- F92_LA_API __int32 GetNumberOfFileIDs();
- // Returns model info, prev file ID
- F92_LA_API __int32 GetFileInfoPrevFileID(__int32 fileID);
- // Returns model info, next file ID
- F92_LA_API __int32 GetFileInfoNextFileID(__int32 fileID);
- // Returns model info, next on CD file ID
- F92_LA_API __int32 GetFileInfoNextOnCDfileID(__int32 fileID);
- // Sets file info, Prev file ID
- F92_LA_API void SetFileInfoPrevFileID(__int32 fileID, __int32 newValue);
- // Sets file info, Next file ID
- F92_LA_API void SetFileInfoNextFileID(__int32 fileID, __int32 newValue);
- // Sets file info, NextOnCd file ID
- F92_LA_API void SetFileInfoNextOnCDfileID(__int32 fileID, __int32 newValue);
- // Returns true if handling of enhanced IMG archives is enabled
- F92_LA_API bool IsHandlingOfEnhancedIMGarchivesEnabled();
- #ifdef IS_X86_ARCHITECTURE
- // Loads CD directory in GTA SA. Works only if enhanced IMG archives are enabled!
- F92_LA_API void LoadCdDirectoryInGTASA(
- tImgDescriptorInGTASA *pIMGdescriptor,
- int imgId,
- tGTASAimgLoadingCall* pLoadingCall
- );
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement