fix many reference-vs-value error (#1044)

fixes #1039
completes #1007
This commit is contained in:
Imple Lee
2023-11-13 12:20:24 +08:00
committed by GitHub
parent c650f268f6
commit 7d23fe4acb
3 changed files with 22 additions and 11 deletions

View File

@@ -14,10 +14,14 @@ local function CUSval(k) return CUSTOMGAME_LOCAL:CUSval(k) end
local function CUSrev(k) return CUSTOMGAME_LOCAL:CUSrev(k) end local function CUSrev(k) return CUSTOMGAME_LOCAL:CUSrev(k) end
local function CUSsto(k) return CUSTOMGAME_LOCAL:CUSsto(k) end local function CUSsto(k) return CUSTOMGAME_LOCAL:CUSsto(k) end
local function apply_locals() local function apply_locals()
FIELD=CUSTOMGAME_LOCAL.field TABLE.clear(FIELD)
BAG=CUSTOMGAME_LOCAL.bag TABLE.cover(CUSTOMGAME_LOCAL.field,FIELD)
MISSION=CUSTOMGAME_LOCAL.mission TABLE.clear(BAG)
CUSTOMENV=CUSTOMGAME_LOCAL.customenv TABLE.cover(CUSTOMGAME_LOCAL.bag,BAG)
TABLE.clear(MISSION)
TABLE.cover(CUSTOMGAME_LOCAL.mission,MISSION)
TABLE.clear(CUSTOMENV)
TABLE.cover(CUSTOMGAME_LOCAL.customenv,CUSTOMENV)
end end
do -- Initialize fields, sequence, missions, gameEnv for cutsom game do -- Initialize fields, sequence, missions, gameEnv for cutsom game
local fieldData=loadFile('conf/customBoards','-string -canSkip') local fieldData=loadFile('conf/customBoards','-string -canSkip')
@@ -36,20 +40,23 @@ do -- Initialize fields, sequence, missions, gameEnv for cutsom game
end end
end end
if fieldReinit then if fieldReinit then
CUSTOMGAME_LOCAL.field={DATA.newBoard()} TABLE.cut(CUSTOMGAME_LOCAL.field)
CUSTOMGAME_LOCAL.field[1]=DATA.newBoard()
end end
local sequenceData=loadFile('conf/customSequence','-string -canSkip') local sequenceData=loadFile('conf/customSequence','-string -canSkip')
if sequenceData then if sequenceData then
local success,bag=DATA.pasteSequence(sequenceData) local success,bag=DATA.pasteSequence(sequenceData)
if success then if success then
CUSTOMGAME_LOCAL.bag=bag TABLE.cut(CUSTOMGAME_LOCAL.bag)
TABLE.cover(bag,CUSTOMGAME_LOCAL.bag)
end end
end end
local missionData=loadFile('conf/customMissions','-string -canSkip') local missionData=loadFile('conf/customMissions','-string -canSkip')
if missionData then if missionData then
local success,mission=DATA.pasteMission(missionData) local success,mission=DATA.pasteMission(missionData)
if success then if success then
CUSTOMGAME_LOCAL.mission=mission TABLE.cut(CUSTOMGAME_LOCAL.mission)
TABLE.cover(mission,CUSTOMGAME_LOCAL.mission)
end end
end end
local customData=loadFile('conf/customEnv','-canSkip') local customData=loadFile('conf/customEnv','-canSkip')
@@ -192,11 +199,13 @@ function scene.keyDown(key,isRep)
local success,bag=DATA.pasteSequence(args[2]) local success,bag=DATA.pasteSequence(args[2])
if not success then break end-- goto THROW_fail if not success then break end-- goto THROW_fail
CUSTOMGAME_LOCAL.bag=bag TABLE.cut(CUSTOMGAME_LOCAL.bag)
TABLE.cover(bag,CUSTOMGAME_LOCAL.bag)
local success,mission=DATA.pasteMission(args[3]) local success,mission=DATA.pasteMission(args[3])
if not success then break end-- goto THROW_fail if not success then break end-- goto THROW_fail
CUSTOMGAME_LOCAL.mission=mission TABLE.cut(CUSTOMGAME_LOCAL.mission)
TABLE.cover(mission,CUSTOMGAME_LOCAL.mission)
TABLE.cut(CUSTOMGAME_LOCAL.field) TABLE.cut(CUSTOMGAME_LOCAL.field)
CUSTOMGAME_LOCAL.field[1]=DATA.newBoard() CUSTOMGAME_LOCAL.field[1]=DATA.newBoard()

View File

@@ -82,7 +82,8 @@ function scene.keyDown(key)
end end
local success,mission=DATA.pasteMission(str) local success,mission=DATA.pasteMission(str)
if success then if success then
CUSTOMGAME_LOCAL.mission=mission TABLE.cut(MISSION)
TABLE.cover(mission,MISSION)
MES.new('check',text.importSuccess) MES.new('check',text.importSuccess)
cur=#MISSION cur=#MISSION
else else

View File

@@ -90,7 +90,8 @@ function scene.keyDown(key)
end end
local success,bag=DATA.pasteSequence(str) local success,bag=DATA.pasteSequence(str)
if success then if success then
CUSTOMGAME_LOCAL.bag=bag TABLE.cut(BAG)
TABLE.cover(bag,BAG)
MES.new('check',text.importSuccess) MES.new('check',text.importSuccess)
cur=#BAG cur=#BAG
else else