Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions native/Build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@
<lib name="lib/linux32/libsteam_api.so" if="HXCPP_M32" />
<outdir name="../ndll/Linux" if="HXCPP_M32" />

<flag value="-Wl,-rpath,'$ORIGIN/:/lib:/usr/lib'" />
<flag value="-Wl,-rpath,$ORIGIN/:/lib:/usr/lib" />
</target>

<target id="default">
<target id="NDLL" />
</target>

</xml>
</xml>
Binary file modified ndll/Linux64/steamwrap.ndll
Binary file not shown.
6 changes: 3 additions & 3 deletions steamwrap/api/Cloud.hx
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,9 @@ class Cloud

try {
//Old-school CFFI calls:
SteamWrap_FileRead = cpp.Lib.load("steamwrap", "SteamWrap_FileRead", 1);
SteamWrap_FileWrite = cpp.Lib.load("steamwrap", "SteamWrap_FileWrite", 2);
SteamWrap_GetQuota = cpp.Lib.load("steamwrap", "SteamWrap_GetQuota", 0);
SteamWrap_FileRead = Loader.loadRaw("SteamWrap_FileRead", 1);
SteamWrap_FileWrite = Loader.loadRaw("SteamWrap_FileWrite", 2);
SteamWrap_GetQuota = Loader.loadRaw("SteamWrap_GetQuota", 0);
}
catch (e:Dynamic) {
customTrace("Running non-Steam version (" + e + ")");
Expand Down
40 changes: 20 additions & 20 deletions steamwrap/api/Controller.hx
Original file line number Diff line number Diff line change
Expand Up @@ -563,26 +563,26 @@ class Controller {

try {
// Old-school CFFI calls:
SteamWrap_GetConnectedControllers = cpp.Lib.load("steamwrap", "SteamWrap_GetConnectedControllers", 0);
SteamWrap_GetInputTypeForHandle = cpp.Lib.load("steamwrap", "SteamWrap_GetInputTypeForHandle", 1);
// SteamWrap_GetGamepadIndexForController = cpp.Lib.load("steamwrap", "SteamWrap_GetGamepadIndexForController", 1);
SteamWrap_GetControllerForGamepadIndex = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerForGamepadIndex", 1);
SteamWrap_GetInputTypeForControllerIndex = cpp.Lib.load("steamwrap", "SteamWrap_GetInputTypeForControllerIndex", 1);
SteamWrap_GetDigitalActionOrigins = cpp.Lib.load("steamwrap", "SteamWrap_GetDigitalActionOrigins", 3);
SteamWrap_GetEnteredGamepadTextInput = cpp.Lib.load("steamwrap", "SteamWrap_GetEnteredGamepadTextInput", 0);
SteamWrap_GetAnalogActionOrigins = cpp.Lib.load("steamwrap", "SteamWrap_GetAnalogActionOrigins", 3);
SteamWrap_InitControllers = cpp.Lib.load("steamwrap", "SteamWrap_InitControllers", 0);
SteamWrap_ShowBindingPanel = cpp.Lib.load("steamwrap", "SteamWrap_ShowBindingPanel", 1);
SteamWrap_GetGlyphForActionOrigin = cpp.Lib.load("steamwrap", "SteamWrap_GetGlyphForActionOrigin", 1);
SteamWrap_GetStringForActionOrigin = cpp.Lib.load("steamwrap", "SteamWrap_GetStringForActionOrigin", 1);
SteamWrap_ShutdownControllers = cpp.Lib.load("steamwrap", "SteamWrap_ShutdownControllers", 0);

SteamWrap_GetControllerMaxCount = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerMaxCount", 0);
SteamWrap_GetControllerMaxAnalogActions = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerMaxAnalogActions", 0);
SteamWrap_GetControllerMaxDigitalActions = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerMaxDigitalActions", 0);
SteamWrap_GetControllerMaxOrigins = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerMaxOrigins", 0);
SteamWrap_GetControllerMaxAnalogActionData = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerMaxAnalogActionData", 0);
SteamWrap_GetControllerMinAnalogActionData = cpp.Lib.load("steamwrap", "SteamWrap_GetControllerMinAnalogActionData", 0);
SteamWrap_GetConnectedControllers = Loader.loadRaw("SteamWrap_GetConnectedControllers", 0);
SteamWrap_GetInputTypeForHandle = Loader.loadRaw("SteamWrap_GetInputTypeForHandle", 1);
// SteamWrap_GetGamepadIndexForController = Loader.loadRaw("SteamWrap_GetGamepadIndexForController", 1);
SteamWrap_GetControllerForGamepadIndex = Loader.loadRaw("SteamWrap_GetControllerForGamepadIndex", 1);
SteamWrap_GetInputTypeForControllerIndex = Loader.loadRaw("SteamWrap_GetInputTypeForControllerIndex", 1);
SteamWrap_GetDigitalActionOrigins = Loader.loadRaw("SteamWrap_GetDigitalActionOrigins", 3);
SteamWrap_GetEnteredGamepadTextInput = Loader.loadRaw("SteamWrap_GetEnteredGamepadTextInput", 0);
SteamWrap_GetAnalogActionOrigins = Loader.loadRaw("SteamWrap_GetAnalogActionOrigins", 3);
SteamWrap_InitControllers = Loader.loadRaw("SteamWrap_InitControllers", 0);
SteamWrap_ShowBindingPanel = Loader.loadRaw("SteamWrap_ShowBindingPanel", 1);
SteamWrap_GetGlyphForActionOrigin = Loader.loadRaw("SteamWrap_GetGlyphForActionOrigin", 1);
SteamWrap_GetStringForActionOrigin = Loader.loadRaw("SteamWrap_GetStringForActionOrigin", 1);
SteamWrap_ShutdownControllers = Loader.loadRaw("SteamWrap_ShutdownControllers", 0);

SteamWrap_GetControllerMaxCount = Loader.loadRaw("SteamWrap_GetControllerMaxCount", 0);
SteamWrap_GetControllerMaxAnalogActions = Loader.loadRaw("SteamWrap_GetControllerMaxAnalogActions", 0);
SteamWrap_GetControllerMaxDigitalActions = Loader.loadRaw("SteamWrap_GetControllerMaxDigitalActions", 0);
SteamWrap_GetControllerMaxOrigins = Loader.loadRaw("SteamWrap_GetControllerMaxOrigins", 0);
SteamWrap_GetControllerMaxAnalogActionData = Loader.loadRaw("SteamWrap_GetControllerMaxAnalogActionData", 0);
SteamWrap_GetControllerMinAnalogActionData = Loader.loadRaw("SteamWrap_GetControllerMinAnalogActionData", 0);
} catch (e:Dynamic) {
customTrace("Running non-Steam version (" + e + ")");
return;
Expand Down
104 changes: 52 additions & 52 deletions steamwrap/api/Steam.hx
Original file line number Diff line number Diff line change
Expand Up @@ -133,58 +133,58 @@ class Steam {
leaderboardOps = new List<LeaderboardOp>();

try {
SteamWrap_ClearAchievement = cpp.Lib.load("steamwrap", "SteamWrap_ClearAchievement", 1);
SteamWrap_DownloadScores = cpp.Lib.load("steamwrap", "SteamWrap_DownloadScores", 4);
SteamWrap_FindLeaderboard = cpp.Lib.load("steamwrap", "SteamWrap_FindLeaderboard", 1);
SteamWrap_GetCurrentGameLanguage = cpp.Lib.load("steamwrap", "SteamWrap_GetCurrentGameLanguage", 0);
SteamWrap_GetGlobalStat = cpp.Lib.load("steamwrap", "SteamWrap_GetGlobalStat", 1);
SteamWrap_GetStat = cpp.Lib.load("steamwrap", "SteamWrap_GetStat", 1);
SteamWrap_GetStatFloat = cpp.Lib.load("steamwrap", "SteamWrap_GetStatFloat", 1);
SteamWrap_GetStatInt = cpp.Lib.load("steamwrap", "SteamWrap_GetStatInt", 1);
SteamWrap_IndicateAchievementProgress = cpp.Lib.load("steamwrap", "SteamWrap_IndicateAchievementProgress", 3);
SteamWrap_Init = cpp.Lib.load("steamwrap", "SteamWrap_Init", 2);
SteamWrap_IsSteamInBigPictureMode = cpp.Lib.load("steamwrap", "SteamWrap_IsSteamInBigPictureMode", 0);
SteamWrap_IsSteamRunning = cpp.Lib.load("steamwrap", "SteamWrap_IsSteamRunning", 0);
SteamWrap_IsSteamRunningOnSteamDeck = cpp.Lib.load("steamwrap", "SteamWrap_IsSteamRunningOnSteamDeck", 0);
SteamWrap_IsOverlayEnabled = cpp.Lib.load("steamwrap", "SteamWrap_IsOverlayEnabled", 0);
SteamWrap_BOverlayNeedsPresent = cpp.Lib.load("steamwrap", "SteamWrap_BOverlayNeedsPresent", 0);
SteamWrap_RequestStats = cpp.Lib.load("steamwrap", "SteamWrap_RequestStats", 0);
SteamWrap_RunCallbacks = cpp.Lib.load("steamwrap", "SteamWrap_RunCallbacks", 0);
SteamWrap_SetAchievement = cpp.Lib.load("steamwrap", "SteamWrap_SetAchievement", 1);
SteamWrap_GetAchievement = cpp.Lib.load("steamwrap", "SteamWrap_GetAchievement", 1);
SteamWrap_GetAchievementDisplayAttribute = cpp.Lib.load("steamwrap", "SteamWrap_GetAchievementDisplayAttribute", 2);
SteamWrap_GetNumAchievements = cpp.Lib.load("steamwrap", "SteamWrap_GetNumAchievements", 0);
SteamWrap_GetAchievementName = cpp.Lib.load("steamwrap", "SteamWrap_GetAchievementName", 1);
SteamWrap_GetSteamID = cpp.Lib.load("steamwrap", "SteamWrap_GetSteamID", 0);
SteamWrap_GetPersonaName = cpp.Lib.load("steamwrap", "SteamWrap_GetPersonaName", 0);
SteamWrap_GetFriendPersonaName = cpp.Lib.load("steamwrap", "SteamWrap_GetFriendPersonaName", 1);
SteamWrap_GetPersonaState = cpp.Lib.load("steamwrap", "SteamWrap_GetPersonaState", 0);
SteamWrap_GetFriendPersonaState = cpp.Lib.load("steamwrap", "SteamWrap_GetFriendPersonaState", 1);
SteamWrap_GetFriendCount = cpp.Lib.load("steamwrap", "SteamWrap_GetFriendCount", 1);
SteamWrap_GetFriendByIndex = cpp.Lib.load("steamwrap", "SteamWrap_GetFriendByIndex", 2);
SteamWrap_GetSmallFriendAvatar = cpp.Lib.load("steamwrap", "SteamWrap_GetSmallFriendAvatar", 1);
SteamWrap_GetMediumFriendAvatar = cpp.Lib.load("steamwrap", "SteamWrap_GetMediumFriendAvatar", 1);
SteamWrap_GetLargeFriendAvatar = cpp.Lib.load("steamwrap", "SteamWrap_GetLargeFriendAvatar", 1);
SteamWrap_StartVoiceRecording = cpp.Lib.load("steamwrap", "SteamWrap_StartVoiceRecording", 0);
SteamWrap_StopVoiceRecording = cpp.Lib.load("steamwrap", "SteamWrap_StopVoiceRecording", 0);
SteamWrap_GetAvailableVoice = cpp.Lib.load("steamwrap", "SteamWrap_GetAvailableVoice", 0);
SteamWrap_GetVoice = cpp.Lib.load("steamwrap", "SteamWrap_GetVoice", 0);
SteamWrap_DecompressVoice = cpp.Lib.load("steamwrap", "SteamWrap_DecompressVoice", 1);
SteamWrap_RequestUserInformation = cpp.Lib.load("steamwrap", "SteamWrap_RequestUserInformation", 2);
SteamWrap_GetImageSize = cpp.Lib.load("steamwrap", "SteamWrap_GetImageSize", 1);
SteamWrap_GetImageBytes = cpp.Lib.load("steamwrap", "SteamWrap_GetImageBytes", 1);
SteamWrap_SetStat = cpp.Lib.load("steamwrap", "SteamWrap_SetStat", 2);
SteamWrap_SetStatFloat = cpp.Lib.load("steamwrap", "SteamWrap_SetStatFloat", 2);
SteamWrap_SetStatInt = cpp.Lib.load("steamwrap", "SteamWrap_SetStatInt", 2);
SteamWrap_Shutdown = cpp.Lib.load("steamwrap", "SteamWrap_Shutdown", 0);
SteamWrap_StoreStats = cpp.Lib.load("steamwrap", "SteamWrap_StoreStats", 0);
SteamWrap_UploadScore = cpp.Lib.load("steamwrap", "SteamWrap_UploadScore", 3);
SteamWrap_RequestGlobalStats = cpp.Lib.load("steamwrap", "SteamWrap_RequestGlobalStats", 0);
SteamWrap_RestartAppIfNecessary = cpp.Lib.load("steamwrap", "SteamWrap_RestartAppIfNecessary", 1);
SteamWrap_OpenOverlayToURL = cpp.Lib.load("steamwrap", "SteamWrap_OpenOverlayToURL", 1);
SteamWrap_OpenOverlay = cpp.Lib.load("steamwrap", "SteamWrap_OpenOverlay", 1);
SteamWrap_BIsAppInstalled = cpp.Lib.load("steamwrap", "SteamWrap_BIsAppInstalled", 1);
SteamWrap_BIsDlcInstalled = cpp.Lib.load("steamwrap", "SteamWrap_BIsDlcInstalled", 1);
SteamWrap_ClearAchievement = Loader.loadRaw("SteamWrap_ClearAchievement", 1);
SteamWrap_DownloadScores = Loader.loadRaw("SteamWrap_DownloadScores", 4);
SteamWrap_FindLeaderboard = Loader.loadRaw("SteamWrap_FindLeaderboard", 1);
SteamWrap_GetCurrentGameLanguage = Loader.loadRaw("SteamWrap_GetCurrentGameLanguage", 0);
SteamWrap_GetGlobalStat = Loader.loadRaw("SteamWrap_GetGlobalStat", 1);
SteamWrap_GetStat = Loader.loadRaw("SteamWrap_GetStat", 1);
SteamWrap_GetStatFloat = Loader.loadRaw("SteamWrap_GetStatFloat", 1);
SteamWrap_GetStatInt = Loader.loadRaw("SteamWrap_GetStatInt", 1);
SteamWrap_IndicateAchievementProgress = Loader.loadRaw("SteamWrap_IndicateAchievementProgress", 3);
SteamWrap_Init = Loader.loadRaw("SteamWrap_Init", 2);
SteamWrap_IsSteamInBigPictureMode = Loader.loadRaw("SteamWrap_IsSteamInBigPictureMode", 0);
SteamWrap_IsSteamRunning = Loader.loadRaw("SteamWrap_IsSteamRunning", 0);
SteamWrap_IsSteamRunningOnSteamDeck = Loader.loadRaw("SteamWrap_IsSteamRunningOnSteamDeck", 0);
SteamWrap_IsOverlayEnabled = Loader.loadRaw("SteamWrap_IsOverlayEnabled", 0);
SteamWrap_BOverlayNeedsPresent = Loader.loadRaw("SteamWrap_BOverlayNeedsPresent", 0);
SteamWrap_RequestStats = Loader.loadRaw("SteamWrap_RequestStats", 0);
SteamWrap_RunCallbacks = Loader.loadRaw("SteamWrap_RunCallbacks", 0);
SteamWrap_SetAchievement = Loader.loadRaw("SteamWrap_SetAchievement", 1);
SteamWrap_GetAchievement = Loader.loadRaw("SteamWrap_GetAchievement", 1);
SteamWrap_GetAchievementDisplayAttribute = Loader.loadRaw("SteamWrap_GetAchievementDisplayAttribute", 2);
SteamWrap_GetNumAchievements = Loader.loadRaw("SteamWrap_GetNumAchievements", 0);
SteamWrap_GetAchievementName = Loader.loadRaw("SteamWrap_GetAchievementName", 1);
SteamWrap_GetSteamID = Loader.loadRaw("SteamWrap_GetSteamID", 0);
SteamWrap_GetPersonaName = Loader.loadRaw("SteamWrap_GetPersonaName", 0);
SteamWrap_GetFriendPersonaName = Loader.loadRaw("SteamWrap_GetFriendPersonaName", 1);
SteamWrap_GetPersonaState = Loader.loadRaw("SteamWrap_GetPersonaState", 0);
SteamWrap_GetFriendPersonaState = Loader.loadRaw("SteamWrap_GetFriendPersonaState", 1);
SteamWrap_GetFriendCount = Loader.loadRaw("SteamWrap_GetFriendCount", 1);
SteamWrap_GetFriendByIndex = Loader.loadRaw("SteamWrap_GetFriendByIndex", 2);
SteamWrap_GetSmallFriendAvatar = Loader.loadRaw("SteamWrap_GetSmallFriendAvatar", 1);
SteamWrap_GetMediumFriendAvatar = Loader.loadRaw("SteamWrap_GetMediumFriendAvatar", 1);
SteamWrap_GetLargeFriendAvatar = Loader.loadRaw("SteamWrap_GetLargeFriendAvatar", 1);
SteamWrap_StartVoiceRecording = Loader.loadRaw("SteamWrap_StartVoiceRecording", 0);
SteamWrap_StopVoiceRecording = Loader.loadRaw("SteamWrap_StopVoiceRecording", 0);
SteamWrap_GetAvailableVoice = Loader.loadRaw("SteamWrap_GetAvailableVoice", 0);
SteamWrap_GetVoice = Loader.loadRaw("SteamWrap_GetVoice", 0);
SteamWrap_DecompressVoice = Loader.loadRaw("SteamWrap_DecompressVoice", 1);
SteamWrap_RequestUserInformation = Loader.loadRaw("SteamWrap_RequestUserInformation", 2);
SteamWrap_GetImageSize = Loader.loadRaw("SteamWrap_GetImageSize", 1);
SteamWrap_GetImageBytes = Loader.loadRaw("SteamWrap_GetImageBytes", 1);
SteamWrap_SetStat = Loader.loadRaw("SteamWrap_SetStat", 2);
SteamWrap_SetStatFloat = Loader.loadRaw("SteamWrap_SetStatFloat", 2);
SteamWrap_SetStatInt = Loader.loadRaw("SteamWrap_SetStatInt", 2);
SteamWrap_Shutdown = Loader.loadRaw("SteamWrap_Shutdown", 0);
SteamWrap_StoreStats = Loader.loadRaw("SteamWrap_StoreStats", 0);
SteamWrap_UploadScore = Loader.loadRaw("SteamWrap_UploadScore", 3);
SteamWrap_RequestGlobalStats = Loader.loadRaw("SteamWrap_RequestGlobalStats", 0);
SteamWrap_RestartAppIfNecessary = Loader.loadRaw("SteamWrap_RestartAppIfNecessary", 1);
SteamWrap_OpenOverlayToURL = Loader.loadRaw("SteamWrap_OpenOverlayToURL", 1);
SteamWrap_OpenOverlay = Loader.loadRaw("SteamWrap_OpenOverlay", 1);
SteamWrap_BIsAppInstalled = Loader.loadRaw("SteamWrap_BIsAppInstalled", 1);
SteamWrap_BIsDlcInstalled = Loader.loadRaw("SteamWrap_BIsDlcInstalled", 1);
} catch (e:Dynamic) {
customTrace("Running non-Steam version (" + e + ")");
return;
Expand Down
40 changes: 20 additions & 20 deletions steamwrap/api/UGC.hx
Original file line number Diff line number Diff line change
Expand Up @@ -322,26 +322,26 @@ class UGC {

try {
// Old-school CFFI calls:
SteamWrap_CreateUGCItem = cpp.Lib.load("steamwrap", "SteamWrap_CreateUGCItem", 1);
SteamWrap_SetUGCItemContent = cpp.Lib.load("steamwrap", "SteamWrap_SetUGCItemContent", 2);
SteamWrap_SetUGCItemDescription = cpp.Lib.load("steamwrap", "SteamWrap_SetUGCItemDescription", 2);
SteamWrap_SetUGCItemPreviewImage = cpp.Lib.load("steamwrap", "SteamWrap_SetUGCItemPreviewImage", 2);
SteamWrap_SetUGCItemTitle = cpp.Lib.load("steamwrap", "SteamWrap_SetUGCItemTitle", 2);
SteamWrap_SetUGCItemTags = cpp.Lib.load("steamwrap", "SteamWrap_SetUGCItemTags", 2);
SteamWrap_AddUGCItemKeyValueTag = cpp.Lib.load("steamwrap", "SteamWrap_AddUGCItemKeyValueTag", 3);
SteamWrap_RemoveUGCItemKeyValueTags = cpp.Lib.load("steamwrap", "SteamWrap_RemoveUGCItemKeyValueTags", 2);
SteamWrap_SetUGCItemVisibility = cpp.Lib.load("steamwrap", "SteamWrap_SetUGCItemVisibility", 2);
SteamWrap_StartUpdateUGCItem = cpp.Lib.load("steamwrap", "SteamWrap_StartUpdateUGCItem", 2);
SteamWrap_SubmitUGCItemUpdate = cpp.Lib.load("steamwrap", "SteamWrap_SubmitUGCItemUpdate", 2);
SteamWrap_GetSubscribedItems = cpp.Lib.load("steamwrap", "SteamWrap_GetSubscribedItems", 0);
SteamWrap_GetItemDownloadInfo = cpp.Lib.load("steamwrap", "SteamWrap_GetItemDownloadInfo", 1);
SteamWrap_GetItemInstallInfo = cpp.Lib.load("steamwrap", "SteamWrap_GetItemInstallInfo", 2);
SteamWrap_CreateQueryUserUGCRequest = cpp.Lib.load("steamwrap", "SteamWrap_CreateQueryUserUGCRequest", 5);
SteamWrap_CreateQueryAllUGCRequest = cpp.Lib.load("steamwrap", "SteamWrap_CreateQueryAllUGCRequest", 5);
SteamWrap_CreateQueryUGCDetailsRequest = cpp.Lib.load("steamwrap", "SteamWrap_CreateQueryUGCDetailsRequest", 1);
SteamWrap_GetQueryUGCResult = cpp.Lib.load("steamwrap", "SteamWrap_GetQueryUGCResult", 2);
SteamWrap_GetQueryUGCKeyValueTag = cpp.Lib.load("steamwrap", "SteamWrap_GetQueryUGCKeyValueTag", 5);
SteamWrap_GetQueryUGCMetadata = cpp.Lib.load("steamwrap", "SteamWrap_GetQueryUGCMetadata", 3);
SteamWrap_CreateUGCItem = Loader.loadRaw("SteamWrap_CreateUGCItem", 1);
SteamWrap_SetUGCItemContent = Loader.loadRaw("SteamWrap_SetUGCItemContent", 2);
SteamWrap_SetUGCItemDescription = Loader.loadRaw("SteamWrap_SetUGCItemDescription", 2);
SteamWrap_SetUGCItemPreviewImage = Loader.loadRaw("SteamWrap_SetUGCItemPreviewImage", 2);
SteamWrap_SetUGCItemTitle = Loader.loadRaw("SteamWrap_SetUGCItemTitle", 2);
SteamWrap_SetUGCItemTags = Loader.loadRaw("SteamWrap_SetUGCItemTags", 2);
SteamWrap_AddUGCItemKeyValueTag = Loader.loadRaw("SteamWrap_AddUGCItemKeyValueTag", 3);
SteamWrap_RemoveUGCItemKeyValueTags = Loader.loadRaw("SteamWrap_RemoveUGCItemKeyValueTags", 2);
SteamWrap_SetUGCItemVisibility = Loader.loadRaw("SteamWrap_SetUGCItemVisibility", 2);
SteamWrap_StartUpdateUGCItem = Loader.loadRaw("SteamWrap_StartUpdateUGCItem", 2);
SteamWrap_SubmitUGCItemUpdate = Loader.loadRaw("SteamWrap_SubmitUGCItemUpdate", 2);
SteamWrap_GetSubscribedItems = Loader.loadRaw("SteamWrap_GetSubscribedItems", 0);
SteamWrap_GetItemDownloadInfo = Loader.loadRaw("SteamWrap_GetItemDownloadInfo", 1);
SteamWrap_GetItemInstallInfo = Loader.loadRaw("SteamWrap_GetItemInstallInfo", 2);
SteamWrap_CreateQueryUserUGCRequest = Loader.loadRaw("SteamWrap_CreateQueryUserUGCRequest", 5);
SteamWrap_CreateQueryAllUGCRequest = Loader.loadRaw("SteamWrap_CreateQueryAllUGCRequest", 5);
SteamWrap_CreateQueryUGCDetailsRequest = Loader.loadRaw("SteamWrap_CreateQueryUGCDetailsRequest", 1);
SteamWrap_GetQueryUGCResult = Loader.loadRaw("SteamWrap_GetQueryUGCResult", 2);
SteamWrap_GetQueryUGCKeyValueTag = Loader.loadRaw("SteamWrap_GetQueryUGCKeyValueTag", 5);
SteamWrap_GetQueryUGCMetadata = Loader.loadRaw("SteamWrap_GetQueryUGCMetadata", 3);
} catch (e:Dynamic) {
customTrace("Running non-Steam version (" + e + ")");
return;
Expand Down
4 changes: 2 additions & 2 deletions steamwrap/api/Workshop.hx
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@ class Workshop

try {
//Old-school CFFI calls:
SteamWrap_GetUGCDownloadProgress = cpp.Lib.load("steamwrap", "SteamWrap_GetUGCDownloadProgress", 1);
SteamWrap_UGCRead = cpp.Lib.load("steamwrap", "SteamWrap_UGCRead", 4);
SteamWrap_GetUGCDownloadProgress = Loader.loadRaw("SteamWrap_GetUGCDownloadProgress", 1);
SteamWrap_UGCRead = Loader.loadRaw("SteamWrap_UGCRead", 4);
}
catch (e:Dynamic) {
customTrace("Running non-Steam version (" + e + ")");
Expand Down
29 changes: 23 additions & 6 deletions steamwrap/helpers/Loader.hx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ package steamwrap.helpers;

#if macro
import haxe.macro.Expr;
#elseif sys
import haxe.io.Path;
import sys.FileSystem;
#end


Expand All @@ -20,20 +23,34 @@ class Loader
{
return macro cpp.Prime.load("steamwrap", $inName2, $inSig, false);
}

public static var loadErrors:Array<String> = [];
#if !macro
private static function fallback() { }
private static var modulePath:String = null;

private static function getModulePath():String {
if (modulePath == null) {
var programPath = Sys.programPath();
try {
programPath = FileSystem.fullPath(programPath);
} catch (e:Dynamic) {}
modulePath = Path.join([Path.directory(programPath), "steamwrap"]);
}
return modulePath;
}
/**
* Attempts to load a function from SteamWrap C++ library.
* If that fails, logs the error and returns a fallback function to reduce the odds of hard crashing on call to a broken function.
*/
public static function loadRaw(name:String, argc:Int):Dynamic {
try {
var r = cpp.Lib.load("steamwrap", name, argc);
if (r != null) return r;
} catch (e:Dynamic) {
loadErrors.push(Std.string(e));
for (library in [getModulePath(), "steamwrap"]) {
try {
var r = cpp.Lib.load(library, name, argc);
if (r != null) return r;
} catch (e:Dynamic) {
loadErrors.push(Std.string(e));
}
}
return function() {
trace('Error: $name is not loaded.');
Expand Down