调整转换存档/加载文件的逻辑
This commit is contained in:
128
main.lua
128
main.lua
@@ -30,13 +30,59 @@ love.keyboard.setKeyRepeat(true)
|
|||||||
love.keyboard.setTextInput(false)
|
love.keyboard.setTextInput(false)
|
||||||
love.mouse.setVisible(false)
|
love.mouse.setVisible(false)
|
||||||
|
|
||||||
|
--Create directories
|
||||||
|
for _,v in next,{"conf","record","replay"}do
|
||||||
|
local info=fs.getInfo(v)
|
||||||
|
if info then
|
||||||
|
if info.type=="directory"then goto NEXT end
|
||||||
|
fs.remove(v)
|
||||||
|
end
|
||||||
|
fs.createDirectory(v)
|
||||||
|
::NEXT::
|
||||||
|
end
|
||||||
|
|
||||||
|
--Delete useless mode record file
|
||||||
|
for _,v in next,{
|
||||||
|
"tech_ultimate.dat",
|
||||||
|
"tech_ultimate+.dat",
|
||||||
|
"sprintFix.dat",
|
||||||
|
"sprintLock.dat",
|
||||||
|
"marathon_ultimate.dat",
|
||||||
|
"infinite.dat",
|
||||||
|
"infinite_dig.dat",
|
||||||
|
}do
|
||||||
|
if fs.getInfo(v)then fs.remove(v)end
|
||||||
|
end
|
||||||
|
|
||||||
|
--Collect files of old version
|
||||||
|
if fs.getInfo("data.dat")or fs.getInfo("key.dat")or fs.getInfo("settings.dat")then
|
||||||
|
for k,v in next,{
|
||||||
|
["settings.dat"]="conf/settings",
|
||||||
|
["unlock.dat"]="conf/unlock",
|
||||||
|
["data.dat"]="conf/data",
|
||||||
|
["key.dat"]="conf/key",
|
||||||
|
["virtualkey.dat"]="conf/virtualkey",
|
||||||
|
["account.dat"]="conf/user",
|
||||||
|
}do
|
||||||
|
if fs.getInfo(k)then
|
||||||
|
fs.write(v,fs.read(k))
|
||||||
|
fs.remove(k)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for _,name in next,fs.getDirectoryItems("")do
|
||||||
|
if name:sub(-4)==".dat"then
|
||||||
|
fs.write("record/"..name:sub(1,-4).."rec",fs.read(name))
|
||||||
|
fs.remove(name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--Load modules
|
--Load modules
|
||||||
require"Zframework"
|
require"Zframework"
|
||||||
|
|
||||||
require"parts/list"
|
require"parts/list"
|
||||||
require"parts/globalTables"
|
require"parts/globalTables"
|
||||||
require"parts/gametoolfunc"
|
require"parts/gametoolfunc"
|
||||||
|
|
||||||
SCR.setSize(1280,720)--Initialize Screen size
|
SCR.setSize(1280,720)--Initialize Screen size
|
||||||
FIELD[1]=newBoard()--Initialize field[1]
|
FIELD[1]=newBoard()--Initialize field[1]
|
||||||
|
|
||||||
@@ -51,6 +97,18 @@ AIFUNC= require"parts/ai"
|
|||||||
MODES= require"parts/modes"
|
MODES= require"parts/modes"
|
||||||
TICK= require"parts/tick"
|
TICK= require"parts/tick"
|
||||||
|
|
||||||
|
--First start for phones
|
||||||
|
if not fs.getInfo("conf/settings")and MOBILE then
|
||||||
|
SETTING.VKSwitch=true
|
||||||
|
SETTING.swap=false
|
||||||
|
SETTING.vib=2
|
||||||
|
SETTING.powerInfo=true
|
||||||
|
SETTING.fullscreen=true
|
||||||
|
love.window.setFullscreen(true)
|
||||||
|
love.resize(love.graphics.getWidth(),love.graphics.getHeight())
|
||||||
|
end
|
||||||
|
if SETTING.fullscreen then love.window.setFullscreen(true)end
|
||||||
|
|
||||||
--Initialize image libs
|
--Initialize image libs
|
||||||
IMG.init{
|
IMG.init{
|
||||||
batteryImage="/mess/power.png",
|
batteryImage="/mess/power.png",
|
||||||
@@ -253,76 +311,8 @@ for _,v in next,fs.getDirectoryItems("parts/scenes")do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--Create directories
|
|
||||||
for _,v in next,{"conf","record","replay"}do
|
|
||||||
local info=fs.getInfo(v)
|
|
||||||
if info then
|
|
||||||
if info.type=="directory"then goto NEXT end
|
|
||||||
fs.remove(v)
|
|
||||||
end
|
|
||||||
fs.createDirectory(v)
|
|
||||||
::NEXT::
|
|
||||||
end
|
|
||||||
|
|
||||||
--Collect files
|
|
||||||
if fs.getInfo("data.dat")or fs.getInfo("key.dat")or fs.getInfo("settings.dat")then
|
|
||||||
for k,v in next,{
|
|
||||||
["settings.dat"]="conf/settings",
|
|
||||||
["unlock.dat"]="conf/unlock",
|
|
||||||
["data.dat"]="conf/data",
|
|
||||||
["key.dat"]="conf/key",
|
|
||||||
["virtualkey.dat"]="conf/virtualkey",
|
|
||||||
["account.dat"]="conf/user",
|
|
||||||
}do
|
|
||||||
if fs.getInfo(k)then
|
|
||||||
fs.write(v,fs.read(k))
|
|
||||||
fs.remove(k)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for _,name in next,fs.getDirectoryItems("")do
|
|
||||||
if name:sub(-4)==".dat"then
|
|
||||||
fs.write("record/"..name:sub(1,-4).."rec",fs.read(name))
|
|
||||||
fs.remove(name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--Load files
|
|
||||||
if fs.getInfo("conf/settings")then
|
|
||||||
addToTable(FILE.load("conf/settings"),SETTING)
|
|
||||||
else
|
|
||||||
if MOBILE then
|
|
||||||
SETTING.VKSwitch=true
|
|
||||||
SETTING.swap=false
|
|
||||||
SETTING.vib=2
|
|
||||||
SETTING.powerInfo=true
|
|
||||||
SETTING.fullscreen=true
|
|
||||||
love.window.setFullscreen(true)
|
|
||||||
love.resize(love.graphics.getWidth(),love.graphics.getHeight())
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if SETTING.fullscreen then love.window.setFullscreen(true)end
|
|
||||||
LANG.set(SETTING.lang)
|
LANG.set(SETTING.lang)
|
||||||
|
|
||||||
if fs.getInfo("conf/unlock")then RANKS=FILE.load("conf/unlock")end
|
|
||||||
if fs.getInfo("conf/data")then STAT=FILE.load("conf/data")end
|
|
||||||
if fs.getInfo("conf/key")then keyMap=FILE.load("conf/key")end
|
|
||||||
if fs.getInfo("conf/virtualkey")then VK_org=FILE.load("conf/virtualkey")end
|
|
||||||
if fs.getInfo("conf/user")then USER=FILE.load("conf/user")end
|
|
||||||
if fs.getInfo("conf/replay")then REPLAY=FILE.load("conf/replay")end
|
|
||||||
|
|
||||||
for _,v in next,{
|
|
||||||
"tech_ultimate.dat",
|
|
||||||
"tech_ultimate+.dat",
|
|
||||||
"sprintFix.dat",
|
|
||||||
"sprintLock.dat",
|
|
||||||
"marathon_ultimate.dat",
|
|
||||||
"infinite.dat",
|
|
||||||
"infinite_dig.dat",
|
|
||||||
}do
|
|
||||||
if fs.getInfo(v)then fs.remove(v)end
|
|
||||||
end
|
|
||||||
|
|
||||||
--Update data
|
--Update data
|
||||||
do
|
do
|
||||||
--Check Ranks
|
--Check Ranks
|
||||||
|
|||||||
@@ -231,8 +231,8 @@ GAME={--Global game data
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Userdata tables
|
--Userdata tables
|
||||||
RANKS={sprint_10=0}--Ranks of modes
|
RANKS=FILE.load("conf/unlock")or{sprint_10=0}--Ranks of modes
|
||||||
USER={--User infomation
|
USER=FILE.load("conf/user")or{--User infomation
|
||||||
email=nil,
|
email=nil,
|
||||||
auth_token=nil,
|
auth_token=nil,
|
||||||
access_token=nil,
|
access_token=nil,
|
||||||
@@ -240,8 +240,9 @@ USER={--User infomation
|
|||||||
username=nil,
|
username=nil,
|
||||||
motto=nil,
|
motto=nil,
|
||||||
avatar=nil,
|
avatar=nil,
|
||||||
|
xp=0,lv=1,
|
||||||
}
|
}
|
||||||
SETTING={--Settings
|
SETTING=FILE.load("conf/settings")or{--Settings
|
||||||
--Tuning
|
--Tuning
|
||||||
das=10,arr=2,dascut=0,
|
das=10,arr=2,dascut=0,
|
||||||
sddas=0,sdarr=2,
|
sddas=0,sdarr=2,
|
||||||
@@ -301,7 +302,7 @@ SETTING={--Settings
|
|||||||
VKIcon=true,--If disp icon
|
VKIcon=true,--If disp icon
|
||||||
VKAlpha=.3,
|
VKAlpha=.3,
|
||||||
}
|
}
|
||||||
STAT={--Statistics
|
STAT=FILE.load("conf/data")or{--Statistics
|
||||||
version=VERSION_CODE,
|
version=VERSION_CODE,
|
||||||
run=0,game=0,time=0,frame=0,
|
run=0,game=0,time=0,frame=0,
|
||||||
key=0,rotate=0,hold=0,
|
key=0,rotate=0,hold=0,
|
||||||
@@ -315,13 +316,13 @@ STAT={--Statistics
|
|||||||
date=nil,
|
date=nil,
|
||||||
todayTime=0,
|
todayTime=0,
|
||||||
}for i=1,25 do STAT.clear[i]={0,0,0,0,0,0}STAT.spin[i]={0,0,0,0,0,0,0}end
|
}for i=1,25 do STAT.clear[i]={0,0,0,0,0,0}STAT.spin[i]={0,0,0,0,0,0,0}end
|
||||||
keyMap={--Key setting
|
keyMap=FILE.load("conf/key")or{--Key setting
|
||||||
{"left","right","x","z","c","up","down","space","tab","r"},{},
|
{"left","right","x","z","c","up","down","space","tab","r"},{},
|
||||||
--Keyboard
|
--Keyboard
|
||||||
{"dpleft","dpright","a","b","y","dpup","dpdown","rightshoulder","x","leftshoulder"},{},
|
{"dpleft","dpright","a","b","y","dpup","dpdown","rightshoulder","x","leftshoulder"},{},
|
||||||
--Joystick
|
--Joystick
|
||||||
}for i=1,#keyMap do for j=1,20 do if not keyMap[i][j]then keyMap[i][j]=""end end end
|
}for i=1,#keyMap do for j=1,20 do if not keyMap[i][j]then keyMap[i][j]=""end end end
|
||||||
VK_org={--Virtualkey layout, refresh all VKs' position with this before each game
|
VK_org=FILE.load("conf/virtualkey")or{--Virtualkey layout, refresh all VKs' position with this before each game
|
||||||
{ava=true, x=80, y=720-200, r=80},--moveLeft
|
{ava=true, x=80, y=720-200, r=80},--moveLeft
|
||||||
{ava=true, x=320, y=720-200, r=80},--moveRight
|
{ava=true, x=320, y=720-200, r=80},--moveRight
|
||||||
{ava=true, x=1280-80, y=720-200, r=80},--rotRight
|
{ava=true, x=1280-80, y=720-200, r=80},--rotRight
|
||||||
@@ -344,4 +345,4 @@ VK_org={--Virtualkey layout, refresh all VKs' position with this before each gam
|
|||||||
{ava=false, x=1000, y=50, r=80},--addToRight
|
{ava=false, x=1000, y=50, r=80},--addToRight
|
||||||
}
|
}
|
||||||
virtualkey={}for i=1,#VK_org do virtualkey[i]={}end--In-game virtualkey layout
|
virtualkey={}for i=1,#VK_org do virtualkey[i]={}end--In-game virtualkey layout
|
||||||
REPLAY={}
|
REPLAY=FILE.load("conf/replay")or{}
|
||||||
Reference in New Issue
Block a user