local function bitset(flags, bit)
    -- TODO: use bit32 when we no longer have to consider lua 5.1 compatibility
    local x = flags % (bit*2)
    return x >= bit
end

local function curse(file)
    for line in file:lines() do
        f = get_faction(line)
        if not f then
            print("no such faction: " .. line)
        elseif not bitset(f.flags, 16) then
            print("cursing " .. tostring(f))
            f.flags = f.flags + 16
        end
    end
end

local cursed = {}

function cursed.init() 
    local f = io.open("cursed.txt", "r")
    if f then
        print("found cursed.txt")
        curse(f)
        f:close()
    end
end

return cursed