diff --git a/game/engines/default/engine/Module.lua b/game/engines/default/engine/Module.lua index ee7d3d0e6e92f8a7f99a7eee261cc2a779284789..9a1d896b8717c1faa5b9cbf2fde97a20f995967a 100644 --- a/game/engines/default/engine/Module.lua +++ b/game/engines/default/engine/Module.lua @@ -586,7 +586,7 @@ function _M:loadAddons(mod, saveuse) print("Removing addon "..add.short_name..": not allowed by config") table.remove(adds, i) removed = true end - elseif not config.settings.cheat and not engine.beta_allow_addon(add.short_name) then + elseif not config.settings.cheat and not engine.beta_allow_addon(add) then print("Removing addon "..add.short_name..": game beta forbids") table.remove(adds, i) removed = true beta_removed[#beta_removed+1] = add.long_name diff --git a/game/engines/default/engine/version.lua b/game/engines/default/engine/version.lua index fed45a0957df19f2aeeafb3688e9e37fdcce2a5c..896342f38a7bdc1d9304831cd9deeac323804ae9 100644 --- a/game/engines/default/engine/version.lua +++ b/game/engines/default/engine/version.lua @@ -116,13 +116,14 @@ function engine.version_hasbeta() end --- Check if we are running as beta -function engine.beta_allow_addon(name) +function engine.beta_allow_addon(add) if fs.exists("/engine/version_beta.lua") then local beta, allowed_addons = dofile("/engine/version_beta.lua") if not beta or not allowed_addons then return true end for _, test in ipairs(allowed_addons) do - if name == test then return true - elseif name:find(test) then return true end + if type(test) == "function" then return test(add) + elseif add.short_name == test then return true + elseif add.short_name:find(test) then return true end end else return true diff --git a/utils/release.sh b/utils/release.sh index 6e5c6045bd28dae22a564d22330f874da838541d..119c5599324cdfef0f502f1e47c4e05209347cdb 100755 --- a/utils/release.sh +++ b/utils/release.sh @@ -1,7 +1,7 @@ #!/bin/sh if test $# -lt 1 ; then - echo "Usage: release.sh [version] [beta, if any] [allowed addons, if beta]" + echo "Usage: release.sh [version] [beta, if any] [if beta, allowed addons list or 'all' or 'no-dlc' or 'with-dlc']" exit fi @@ -70,15 +70,19 @@ echo "version_desc = '$ver'" >> game/engines/default/modules/boot/init.lua echo "version_desc = '$ver'" >> game/modules/tome/init.lua if test -n "$beta"; then if test $# -lt 3 ; then - echo "Usage: release.sh [version] [beta] [allowed addons or 'all']" + echo "Usage: release.sh [version] [beta] [allowed addons list or 'all' or 'no-dlc' or 'with-dlc']" exit fi addons="$3" if test "$addons" = "all"; then echo "return '$beta'" > game/engines/default/engine/version_beta.lua + elif test "$addons" = "no-dlc"; then + echo "return '$beta', "'{"possessors", "items-vault", "^cosmetic%-shimmer%-.+"}' > game/engines/default/engine/version_beta.lua + elif test "$addons" = "with-dlc"; then + echo "return '$beta', "'{"possessors", "items-vault", "^cosmetic%-shimmer%-.+", function(add) return add.id_dlc end}' > game/engines/default/engine/version_beta.lua else addons_check=`echo "$addons" | sed -e 's/\([^,]\+\)/"\1"/g' -e 's/^/{/' -e 's/$/}/'` - echo "return '$beta' '$addons_check'" > game/engines/default/engine/version_beta.lua + echo "return '$beta', '$addons_check'" > game/engines/default/engine/version_beta.lua fi fi