From e74345c9d51a90637edfc8c11fd1b9f589d92736 Mon Sep 17 00:00:00 2001
From: Peter Kosyh
Date: Sun, 26 Jan 2014 13:21:44 +0400
Subject: [PATCH] stead.atleast added
---
ChangeLog | 4 +--
debian/changelog | 2 +-
stead/stead.lua | 64 ++++++++++++++++++++++++++++++------------------
3 files changed, 43 insertions(+), 27 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index be193520a..0d0442bd9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,7 +11,7 @@
* -lua and -luac parameters;
* in windows do not close -debug console until press return;
* game.gui.hidetitle;
- * stead.api_atleast();
+ * stead.api_atleast() and stead.atleast();
* stead.tonum, stead.tostr, stead.type, stead.ipairs, stead.pairs, stead.opairs;
* potential bug with non ascii save path and non UTF-8 game codepage;
* bug with language changing;
@@ -19,7 +19,7 @@
* bug with anigif and cursor;
* typo in Please, wait message;
- -- Peter Kosyh Mon, 25 Jan 2014 21:38:00 +0400
+ -- Peter Kosyh Sun, 26 Jan 2014 13:12:00 +0400
1.9.1
diff --git a/debian/changelog b/debian/changelog
index d777303e5..14332e1a9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,7 @@
instead (2.0.0) unstable; urgency=low
* 2.0.0 release;
- -- Peter Kosyh Mon, 25 Jan 2014 21:38:00 +0400
+ -- Peter Kosyh Sun, 26 Jan 2014 13:12:00 +0400
instead (1.9.1) unstable; urgency=low
* 1.9.1 release;
diff --git a/stead/stead.lua b/stead/stead.lua
index 670396c9a..08d936948 100644
--- a/stead/stead.lua
+++ b/stead/stead.lua
@@ -1,22 +1,6 @@
stead = {
version = "2.0.0",
api_version = "1.1.6", -- last version before 1.2.0
- api_atleast = function(...)
- local k
- local v
- for k, v in ipairs {...} do
- if stead.type(k) ~= 'number' then
- return false
- end
- if not stead.api_version_table[k] or v > stead.api_version_table[k] then
- return false
- end
- if v < stead.api_version_table[k] then
- return true
- end
- end
- return true
- end;
table = table,
delim = ',',
busy = instead_busy,
@@ -73,6 +57,40 @@ stead = {
end
}
+stead.api_atleast = function(...)
+ local k
+ local v
+ for k, v in stead.ipairs {...} do
+ if stead.type(k) ~= 'number' then
+ return false
+ end
+ if not stead.api_version_table[k] or v > stead.api_version_table[k] then
+ return false
+ end
+ if v < stead.api_version_table[k] then
+ return true
+ end
+ end
+ return true
+end;
+
+stead.atleast = function(...)
+ local k
+ local v
+ for k, v in stead.ipairs {...} do
+ if stead.type(k) ~= 'number' then
+ return false
+ end
+ if not stead.version_table[k] or v > stead.version_table[k] then
+ return false
+ end
+ if v < stead.version_table[k] then
+ return true
+ end
+ end
+ return true
+end;
+
stead.last_act = function(s)
local r = game.__last_act
@@ -3134,33 +3152,31 @@ function stead_version(v)
return
end
local n
- local ver = {}
stead.version_table = {}
+ stead.api_version_table = {}
+
for n in stead.string.gfind(stead.version, "[0-9]+") do
stead.table.insert(stead.version_table, stead.tonum(n))
end
for n in stead.string.gfind(v, "[0-9]+") do
- stead.table.insert(ver, stead.tonum(n))
+ stead.table.insert(stead.api_version_table, stead.tonum(n))
end
- stead.api_version_table = stead.version_table
-
- if not stead.api_atleast(stead.unpack(ver)) then
+ if not stead.atleast(stead.unpack(stead.api_version_table)) then
error ([[The game requires instead engine of version ]] ..v.. [[ or higher.
http://instead.sourceforge.net]], 2)
end
stead.api_version = v
- stead.api_version_table = ver
- if v >= "1.2.0" then
+ if stead.api_atleast(1, 2, 0) then
require ("walk")
require ("vars")
require ("object")
end
- if v >= "1.6.3" then
+ if stead.api_atleast(1, 6, 3) then
require ("dlg")
end
end