--require "lfs" local function directory_exists( sPath ) if type( sPath ) ~= "string" then return false end local response = os.execute( "cd " .. sPath ) if response == 0 then return true end return false end Cat = {} Cat[1] = {"Steamlocs", "models/model/vehicle/train/", ".mdl", "a3-5_705", "borsig_1860", "lner_class_a4", "d1_3", "br89", "br75_4", "br53preusg3"} Cat[2] = {"Eloc", "models/model/vehicle/train/", ".mdl", "ae_4-7", "br_103_1", "br_185_traxx", "br_e94", "c6_8", "rabde_12_12_front", "rabde_12_12_waggon", "re_44i", "re_450","re_450_b","re_450_bt","re6_6","roterpfeil", "tgv", "tgv_w1", "tgv_w2", "twindexx", "twindexx_w1"} Cat[3] = {"Diesel", "models/model/vehicle/train/", ".mdl", "br_218", "db_v100", "nohab", "schienenbus"} Cat[4] = {"Waggons", "models/model/vehicle/waggon/", ".mdl","3axes_person", "bc4", "compartment_car", "d_1_spanischb", "donnerbuechse", "ew_ii", "ew_iv", "goods_1850", "hbi1", "kesselwagen_1860", "kesselwagen_1910", "kesselwagen_1950", "open_1850", "open_1910", "open_1975", "verbandswagen", "wagen_bayrisch_1865"} Cat[5] = {"Bus", "models/model/vehicle/bus/",".mdl", "aboag","benz_o6600","berkhof_duvedec","landauer","mack_1900","obeissante","postkutsche","saurer_tuescher","volvo_5000"} Cat[6] = {"Tram", "models/model/vehicle/tram/", ".mdl", "be4_6mirage", "be5_6", "dampftram", "halle", "schst", "strassenbahn1850", "typ1"} Cat[7] = {"Trucks", "models/model/vehicle/truck/", ".mdl", "40_tons", "benz1912lkw", "dmg_cannstatt", "horsewagon_1850", "man_19_304_1970", "opel_blitz_1930"} Cat[8] = {"Streets", "config/street/",".lua", "country_new_large", "country_new_medium", "country_new_small", "country_old_large", "country_old_medium", "country_old_small", "new_large", "new_large_upgrade", "new_medium", "new_small", "old_large", "old_medium", "old_small"} Cat[9] = {"Costs", "config/", ".lua", "costs"} Catlen = 9 Changes = {} Changes[1] = {"Steamlocs","runningCosts",1,1,"price",1,1} Changes[2] = {"Eloc","runningCosts",1,1,"price",1,1} Changes[3] = {"Diesel","runningCosts",1,1,"price",1,1} Changes[4] = {"Waggons","runningCosts",1,1,"price",1,1} Changes[5] = {"Bus","runningCosts",1,1,"price",1,1} Changes[6] = {"Tram","runningCosts",1,1,"price",1,1} Changes[7] = {"Trucks","runningCosts",1,1,"price",1,1} Changes[8] = {"Streets","cost",1,1} Changes[9] = {"Costs", "terrainRaise",1,1, "terrainLower",1,1,"railroadTrack", 1, 1, "railroadHighSpeedTrack", 1,1, "railroadCatenary", 1, 1, "railroadSwitch", 1, 1, "railroadBridge", 1, 1, "railroadBridgeVol", 1, 1, "railroadTunnel", 1, 1, "railroadTunnelLen", 1, 1} Changeslen = 9 Matexpl = {} i = 1 j = 0 k = 1 l = 1 expllen = 0 while Changes[i] ~= nil do j = 0 while Changes[i][3*j+2] ~= nil do k = 1 while true do if string.match(Changes[i][1],Cat[k][1]) then l = 1 while Cat[k][l+3] ~= nil do expllen = expllen + 1 Matexpl[expllen] = {} Matexpl[expllen][1] = Cat[k][2] .. Cat[k][l+3] Matexpl[expllen][2] = "backups/" .. Cat[i][2] .. "bkp/" .. Cat[k][l+3] Matexpl[expllen][3] = Cat[k][3] Matexpl[expllen][4] = Changes[i][3*j+2] Matexpl[expllen][5] = Changes[i][3*j+3] Matexpl[expllen][6] = Changes[i][3*j+4] l = l + 1 end break end if k == Catlen then break br = true end k = k+1 end j=j+1 end i = i+1 end i = 1 while true do unixpath = "backups/" .. Cat[i][2] .. "bkp" windowspath = string.gsub (unixpath, "/","\\") if directory_exists( windowspath ) then else os.execute("mkdir " .. windowspath) end if i == Catlen then break end i=i+1 end i = 1 -- if backup exists: remove original rename backup to original -- rename original to backup while true do local filename = Matexpl[i][1] .. Matexpl[i][3] local filenamebkp = Matexpl[i][2] ..tostring(Matexpl[i][3]) .. ".bkp" local tempf2 = io.open(filename,"r") if tempf2 ~= nil then io.close(tempf2) local tempf = io.open(filenamebkp,"r") if tempf~=nil then io.close(tempf) os.remove(filename) os.rename(filenamebkp, filename) end os.rename(filename, filenamebkp) end if i == expllen then break end i = i+1 end i = 1 while true do local rmv = false local filename = Matexpl[i][1] .. Matexpl[i][3] local filenamebkp = Matexpl[i][2] .. tostring(Matexpl[i][3]) .. ".bkp" local tempf3 = io.open(filename,"r") if tempf3~=nil then io.close(tempf3) filenamebkp = Matexpl[i][2] .. tostring(Matexpl[i][3]) .. ".w" os.rename(filename,filenamebkp) rmv = true end local fh,err = io.open(filenamebkp) if err then print("OOps"); return; end local fho,err = io.open(filename,"w") local Varname = Matexpl[i][4] local mult = tonumber(Matexpl[i][5]) local div = tonumber(Matexpl[i][6]) while true do local line = fh:read() if line == nil then break end print (line) local str,_ = string.find(line,Varname) if str == nil then fho:write(line) fho:write("\n") else local _, _, key, val, suffix = string.find(line, "(%a+)%s*=%s*(%d+)%s*%.*%d*(%p*)") val = math.floor(val * mult / div) fho:write(key, " = ",val,suffix) fho:write("\n") end end fh:close() fho:close() if rmv == true then os.remove(filenamebkp) end if i == expllen then return end i = i+1 end