levels = {[[ .......................... .000000000000000000000000. .0......................0. .0......................0. .0......................0. .0......................0. .0.........00...........0. .0.........00...........0. .0......................0. .0...............0......0. .0......................0. .0.........00...........0. .0.s.......00...........0. .000000000000000000000000. .......................... ]] } to_write = "" --remove all "\n" from level strings for i, v in ipairs(levels) do v = string.gsub(v, "\n", "") to_write = to_write.." case "..(i-1)..":\n memcpy(level, \""..v.."\", "..#v..");\n break;" end --finish and write to_write = [[#include "levels.h" #include void set_level(unsigned char level_id, char *level) { switch (level_id) { ]]..to_write.."\n }\n}\n" io.write(to_write)