Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local encrypt = loadAPI("encrypt")
- local theMSGBoxAPI = loadAPI("MessageBoxLogger")
- local starCount = -1
- local hasDied = false
- local gdata = loadSharedAPI("MAGLX2Global")
- local function checkSettings()
- if gdata:get("MaGLX2HubTogglePlayerFilter") == nil then
- gdata:set("MaGLX2HubTogglePlayerFilter", 1)
- end
- if gdata:get("MaGLX2HubTogglePowerupFilter") == nil then
- gdata:set("MaGLX2HubTogglePowerupFilter", 1)
- end
- if gdata:get("MaGLX2HubToggleMountFilter") == nil then
- gdata:set("MaGLX2HubToggleMountFilter", 1)
- end
- if gdata:get("MaGLX2HubToggleLoseLives") == nil then
- gdata:set("MaGLX2HubToggleLoseLives", 1)
- end
- if gdata:get("MaGLX2HubToggleStars") == nil then
- gdata:set("MaGLX2HubToggleStars", 1)
- end
- if gdata:get("MaGLX2HubSavedLives") == nil then
- gdata:set("MaGLX2HubSavedLives", mem(0x00B2C5AC, FIELD_FLOAT))
- end
- if gdata:get("MaGLX2HubToggleDemoCounter") == nil then
- gdata:set("MaGLX2HubToggleDemoCounter", 1)
- end
- gdata:save()
- end
- --On loading, copy the star counter from the saved variable.
- function onStart()
- checkSettings()
- local s = gdata:get("MAGLX2Stars")
- if (s ~= nil) then
- starCount = s
- -- If we're increasing the star count... fill in dummy entries in the collected star list
- local oldStarCount = mem(0x00B251E0, FIELD_WORD)
- if (starCount > oldStarCount) then
- local starTablePtr = mem(0x00B25714, FIELD_DWORD)
- for starIdx=oldStarCount+1,starCount do
- local dummyLevelName = string.format("~#@_DUMMY%d_@#~.lvl", starIdx)
- mem(starTablePtr + (starIdx-1)*8, FIELD_STRING, dummyLevelName)
- mem(starTablePtr + (starIdx-1)*8 + 4, FIELD_WORD, 0)
- end
- end
- mem(0x00B251E0, FIELD_WORD, starCount)
- end
- if (gdata:get(Level.filename() .. "-deaths") == nil) then
- gdata:set(Level.filename() .. "-deaths", 0)
- end
- if (gdata:get("totalDeaths") == nil) then
- gdata:set("totalDeaths", 0)
- end
- gdata:save()
- end
- function onHUDDraw()
- if gdata:get("MaGLX2HubToggleDemoCounter") == 1 and Graphics.isHudActivated() then
- Text.print("DEMOS", 100, 25)
- Text.print(tostring(gdata:get(Level.filename() .. "-deaths")) .. " / " .. tostring(gdata:get("totalDeaths")), 100, 45)
- end
- end
- function onLoop()
- if player:mem(0x13C, FIELD_DWORD) ~= 0 and not hasDied then
- gdata:set(Level.filename() .. "-deaths", gdata:get(Level.filename() .. "-deaths") + 1)
- gdata:set("totalDeaths", gdata:get("totalDeaths") + 1)
- gdata:save()
- hasDied = true
- end
- local stars = mem(0x00B251E0, FIELD_WORD)
- if (stars > starCount) then
- gdata:set("MAGLX2Stars", stars)
- gdata:save()
- Misc.saveGame()
- end
- starCount = stars
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement