diff options
-rw-r--r-- | lib/mods/theme/scpt/intro.lua | 66 | ||||
-rw-r--r-- | lib/scpt/intro.lua | 66 | ||||
-rw-r--r-- | src/externs.h | 4 | ||||
-rw-r--r-- | src/lua_bind.c | 70 | ||||
-rw-r--r-- | src/util.pkg | 3 |
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); |