share/hedgewars/Data/Scripts/OfficialChallenges.lua
author alfadur
Thu, 01 Nov 2018 21:30:21 +0300
changeset 14059 c6745a1c827a
parent 13794 ced1e6ecaaad
child 14070 a5be3ef4bbbe
permissions -rw-r--r--
start a physics engine to try out this data oriented thing everyone seems to be talking about

HedgewarsScriptLoad("/Scripts/OfficialChallengeHashes.lua")

-- modified Adler hash
local hashA = 0
local hashB = 0
local hashModule = 299993

function resetHash()
    hashA = 0
    hashB = 0
end

function addHashData(i)
    hashA = (hashA + i + 65536) % hashModule
    hashB = (hashB + hashA) % hashModule
end

function hashDigest()
    return(hashB * hashModule + hashA)
end

function detectMapWithDigest()
    if RopePercent == 100 and MinesNum == 0 then
        mapString = hashDigest() .. "," .. LandDigest

        if band(GameFlags, gfBorder) ~= 0 then
            mapString = "Border," .. mapString
        end

        --WriteLnToConsole(mapString)
        return(official_racer_maps[mapString])
    end
end