diff --git a/scene/game_config.lua b/scene/game_config.lua index 6d50581..a6ca247 100644 --- a/scene/game_config.lua +++ b/scene/game_config.lua @@ -9,7 +9,8 @@ ConfigScene.options = { {"manlock", "Manual locking",{"Per ruleset","Per gamemode","Harddrop", "Softdrop"}}, {"piece_colour", "Piece Colours", {"Per ruleset","Arika" ,"TTC"}}, {"world_reverse","A Button Rotation", {"Left" ,"Auto" ,"Right"}}, - {"das_last_key", "DAS Switch", {"Default", "Instant"}} + {"das_last_key", "DAS Switch", {"Default", "Instant"}}, + {"synchroes_allowed", "Synchroes", {"Per ruleset", "On", "Off"}} } local optioncount = #ConfigScene.options diff --git a/tetris/rulesets/ruleset.lua b/tetris/rulesets/ruleset.lua index 81f332f..f1e8f56 100644 --- a/tetris/rulesets/ruleset.lua +++ b/tetris/rulesets/ruleset.lua @@ -211,8 +211,16 @@ function Ruleset:processPiece( drop_locked, hard_drop_locked, hard_drop_enabled, additive_gravity ) - self:rotatePiece(inputs, piece, grid, prev_inputs, false) - self:movePiece(piece, grid, move, gravity >= 20) + + local synchroes_allowed = ({not self.world, true, false})[config.gamesettings.synchroes_allowed] + + if synchroes_allowed then + self:rotatePiece(inputs, piece, grid, prev_inputs, false) + self:movePiece(piece, grid, move, gravity >= 20) + else + self:movePiece(piece, grid, move, gravity >= 20) + self:rotatePiece(inputs, piece, grid, prev_inputs, false) + end self:dropPiece( inputs, piece, grid, gravity, drop_speed, drop_locked, hard_drop_locked, hard_drop_enabled, additive_gravity