Ertlov wrote: "Worship him!
BTW - you got mail, please respond!"
If you're referring to the first email, then I've already responded. If there was another email I haven't gotten it yet.
Updates
I've pretty much completed the DLL now, all that's left to do is documentation, and fix one bug with one command.
Current command list (from the keywords file):
Steam Construct==()
Steam Destruct==Instance
Steam Init Succeeded==(Instance)
Steam Is Running==()
Steam Unlock Achievement==(Instance, AchievementID$)
Steam Lock Achievement==(Instance, AchievementID$)
Steam Get App ID==()
Steam Is Achieved==(Instance, AchievementID$)
Steam Restart App If Necessary==(AppId)
Steam Achievement Count==(Instance)
Steam Get Achievement==(Instance, AchievementID)
Steam Stats Available==(Instance)
Steam Set Stat Int==(Instance, StatID$, Value)
Steam Set Stat Float==(Instance, StatID$, Value#)
Steam Get Stat Int==(Instance, StatID$)
Steam Get Stat Float==(Instance, StatID$)
Steam Request Stats==(Instance)
Steam Reset All Stats==(Instance, IncludingAchievements)
Current example code:
// DarkSteamworks example
// These are the example achievements included with Spacewar (appid 480)
// ACH_WIN_ONE_GAME = 0
// ACH_WIN_100_GAMES = 1
// ACH_HEAVY_FIRE = 2
// ACH_TRAVEL_FAR_ACCUM = 3
// ACH_TRAVEL_FAR_SINGLE = 4
// We need to create our Steam instance, this will initialize Steam and return our instance
// so that we can use it in functions.
steamInstance as DWORD
steamInstance = steam construct()
print "Steam instance created."
// You can use this function if you want
// Detects if your executable was launched through the Steam client, and restarts your game through
// the client if necessary. The Steam client will be started if it is not running.
//
// Returns: true if your executable was NOT launched through the Steam client. This function will
// then start your application through the client. Your current process should exit.
//
// false if your executable was started through the Steam client or a steam_appid.txt file
// is present in your game's directory (for development). Your current process should continue.
//
// NOTE: This function should be used only if you are using CEG or not using Steam's DRM. Once applied
// to your executable, Steam's DRM will handle restarting through Steam if necessary.
//temp = steam restart app if necessary(APP ID GOES HERE)
// Now we check whether Steam initialized or not, and if it failed, we exit
temp = steam init succeeded(steamInstance)
if (temp <> 0)
print "Steam API initialized successfully." : sync
else
print "Steam API did not initialize successfully." : sync
exit prompt "Steam API failed to initialize. This could mean either Steam is not running, or the app ID is invalid.", "Error"
end
endif
// Now we check if Steam is actually running
temp = steam is running()
if (temp <> 0)
print "Steam is running." : sync
else
print "Steam is not running." : sync
exit prompt "Please ensure Steam is running.", "Error"
end
endif
// Wait for stats to be available and then report the amount of available achievements
while (steam stats available(steamInstance) = 0)
endwhile
print "This app id has "+str$(steam achievement count(steamInstance))+" achievements associated with it."
// This function is broken at the moment, I have no idea how to send strings to DBPro from a DLL
//print steam get achievement(steamInstance, 1)
// Okay, now we can lock our test achievement just in case it's already unlocked
temp = steam lock achievement(steamInstance, "ACH_WIN_ONE_GAME")
// Now wait for user input to unlock the achievement
print "Press any key to unlock test achievement" : sync
wait key
// Now we unlock the achievement
temp = steam unlock achievement(steamInstance, "ACH_WIN_ONE_GAME")
print "Achievement should now be unlocked" : sync
print "Press escape to exit." : sync
// User can press escape to exit
while escapekey() = 0
endwhile