summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/mods/theme/scpt/intro.lua66
-rw-r--r--lib/scpt/intro.lua66
-rw-r--r--src/externs.h4
-rw-r--r--src/lua_bind.c70
-rw-r--r--src/util.pkg3
5 files changed, 75 insertions, 134 deletions
diff --git a/lib/mods/theme/scpt/intro.lua b/lib/mods/theme/scpt/intro.lua
index 31229ccc..3cdce225 100644
--- a/lib/mods/theme/scpt/intro.lua
+++ b/lib/mods/theme/scpt/intro.lua
@@ -1,69 +1,3 @@
-function drop_text_left(c, str, y, o)
- local i = strlen(str)
- local x = 39 - (strlen(str) / 2) + o
- while (i > 0)
- do
- local a = 0
- local time = 0
-
- if (strbyte(str, i) ~= strbyte(" ", 1)) then
- while (a < x + i - 1)
- do
- Term_putch(a - 1, y, c, 32)
- Term_putch(a, y, c, strbyte(str, i))
- time = time + 1
- if time >= 4 then
- Term_xtra(TERM_XTRA_DELAY, 1)
- time = 0
- end
- Term_redraw_section(a - 1, y, a, y)
- a = a + 1
-
- inkey_scan = TRUE
- if (inkey() ~= 0) then
- return TRUE
- end
- end
- end
-
- i = i - 1
- end
- return FALSE
-end
-
-function drop_text_right(c, str, y, o)
- local x = 39 - (strlen(str) / 2) + o
- local i = 1
- while (i <= strlen(str))
- do
- local a = 79
- local time = 0
-
- if (strbyte(str, i) ~= strbyte(" ", 1)) then
- while (a >= x + i - 1)
- do
- Term_putch(a + 1, y, c, 32)
- Term_putch(a, y, c, strbyte(str, i))
- time = time + 1
- if time >= 4 then
- Term_xtra(TERM_XTRA_DELAY, 1)
- time = 0
- end
- Term_redraw_section(a, y, a + 1, y)
- a = a - 1
-
- inkey_scan = TRUE
- if (inkey() ~= 0) then
- return TRUE
- end
- end
- end
-
- i = i + 1
- end
- return FALSE
-end
-
function tome_intro()
screen_save()
Term_clear()
diff --git a/lib/scpt/intro.lua b/lib/scpt/intro.lua
index 2c4d3def..ef6041a5 100644
--- a/lib/scpt/intro.lua
+++ b/lib/scpt/intro.lua
@@ -1,69 +1,3 @@
-function drop_text_left(c, str, y, o)
- local i = strlen(str)
- local x = 39 - (strlen(str) / 2) + o
- while (i > 0)
- do
- local a = 0
- local time = 0
-
- if (strbyte(str, i) ~= strbyte(" ", 1)) then
- while (a < x + i - 1)
- do
- Term_putch(a - 1, y, c, 32)
- Term_putch(a, y, c, strbyte(str, i))
- time = time + 1
- if time >= 4 then
- Term_xtra(TERM_XTRA_DELAY, 1)
- time = 0
- end
- Term_redraw_section(a - 1, y, a, y)
- a = a + 1
-
- inkey_scan = TRUE
- if (inkey() ~= 0) then
- return TRUE
- end
- end
- end
-
- i = i - 1
- end
- return FALSE
-end
-
-function drop_text_right(c, str, y, o)
- local x = 39 - (strlen(str) / 2) + o
- local i = 1
- while (i <= strlen(str))
- do
- local a = 79
- local time = 0
-
- if (strbyte(str, i) ~= strbyte(" ", 1)) then
- while (a >= x + i - 1)
- do
- Term_putch(a + 1, y, c, 32)
- Term_putch(a, y, c, strbyte(str, i))
- time = time + 1
- if time >= 4 then
- Term_xtra(TERM_XTRA_DELAY, 1)
- time = 0
- end
- Term_redraw_section(a, y, a + 1, y)
- a = a - 1
-
- inkey_scan = TRUE
- if (inkey() ~= 0) then
- return TRUE
- end
- end
- end
-
- i = i + 1
- end
- return FALSE
-end
-
function tome_intro()
screen_save()
Term_clear()
diff --git a/src/externs.h b/src/externs.h
index dc01f361..49f848fd 100644
--- a/src/externs.h
+++ b/src/externs.h
@@ -1827,8 +1827,8 @@ extern void lua_display_list(int y, int x, int h, int w, cptr title, list_type *
extern cptr compass(int y, int x, int y2, int x2);
extern cptr approximate_distance(int y, int x, int y2, int x2);
-extern cptr compass(int y, int x, int y2, int x2);
-extern cptr approximate_distance(int y, int x, int y2, int x2);
+extern bool_ drop_text_left(byte c, cptr s, int y, int o);
+extern bool_ drop_text_right(byte c, cptr s, int y, int o);
/* skills.c */
extern void dump_skills(FILE *fff);
diff --git a/src/lua_bind.c b/src/lua_bind.c
index 7894b7d4..c8e861a9 100644
--- a/src/lua_bind.c
+++ b/src/lua_bind.c
@@ -630,3 +630,73 @@ cptr approximate_distance(int y, int x, int y2, int x2)
return "not very far";
}
}
+
+bool_ drop_text_left(byte c, cptr str, int y, int o)
+{
+ int i = strlen(str);
+ int x = 39 - (strlen(str) / 2) + o;
+ while (i > 0)
+ {
+ int a = 0;
+ int time = 0;
+
+ if (str[i-1] != ' ')
+ {
+ while (a < x + i - 1)
+ {
+ Term_putch(a - 1, y, c, 32);
+ Term_putch(a, y, c, str[i-1]);
+ time = time + 1;
+ if (time >= 4)
+ {
+ Term_xtra(TERM_XTRA_DELAY, 1);
+ time = 0;
+ }
+ Term_redraw_section(a - 1, y, a, y);
+ a = a + 1;
+
+ inkey_scan = TRUE;
+ if (inkey()) {
+ return TRUE;
+ }
+ }
+ }
+
+ i = i - 1;
+ }
+ return FALSE;
+}
+
+bool_ drop_text_right(byte c, cptr str, int y, int o)
+{
+ int x = 39 - (strlen(str) / 2) + o;
+ int i = 1;
+ while (i <= strlen(str))
+ {
+ int a = 79;
+ int time = 0;
+
+ if (str[i-1] != ' ') {
+ while (a >= x + i - 1)
+ {
+ Term_putch(a + 1, y, c, 32);
+ Term_putch(a, y, c, str[i-1]);
+ time = time + 1;
+ if (time >= 4) {
+ Term_xtra(TERM_XTRA_DELAY, 1);
+ time = 0;
+ }
+ Term_redraw_section(a, y, a + 1, y);
+ a = a - 1;
+
+ inkey_scan = TRUE;
+ if (inkey()) {
+ return TRUE;
+ }
+ }
+ }
+
+ i = i + 1;
+ }
+ return FALSE;
+}
diff --git a/src/util.pkg b/src/util.pkg
index c6f97ebf..b2981681 100644
--- a/src/util.pkg
+++ b/src/util.pkg
@@ -2697,3 +2697,6 @@ extern void calc_bonuses(bool silent);
extern void note_spot(int y, int x);
extern void lite_spot(int y, int x);
+
+extern bool drop_text_left(byte c, cptr s, int y, int o);
+extern bool drop_text_right(byte c, cptr s, int y, int o);