Internally, text boxes will look like this:
squeak(terminal)
text(gray,0,0,1)
This is a text box.
position(center)
speak_active
squeak(terminal) makes a terminal sound, text(gray,0,0,1) stores the following line of text in the memory, position(center) overrides the coordinates used in the text() command and makes sure the text box is in the center, and without speak_active nothing would show up at all: speak_active makes the text box appear.
Terry didn't have to worry about the number of lines available for commands, but if you want to use internal commands in the level editor, you have to use this:
say(-1)
text(1,0,0,4)
say(5)
[internal]
[internal]
[internal]
[internal]
text(1,0,0,4)
say(5)
[internal]
[internal]
[internal]
[internal]
text(1,0,0,4)
say(5)
Etc.
You can only use 4 lines of internal code after each other each time, so the code I showed in the beginning of this post won't fit. You have to split it up. You have to split it after squeak(terminal), because these lines:
text(gray,0,0,1)
This is a text box.
position(center)
speak_active
have to come after each other.
So you can use:
say(-1)
text(1,0,0,4)
say(2)
squeak(terminal)
text(1,0,0,4)
say(5)
text(gray,0,0,1)
This is a text box.
position(center)
speak_active
text(1,0,0,4)
say(4)
endtext
endcutscene()
untilbars()
loadscript(stop)
Now you can only have a text box with one line of text. If you omit position(center), the text box will appear at the top left corner of the screen. If you omit speak_active, no text box will appear at all. If you put these commands after text(1,0,0,4) say(5), you will see a text box with gibberish. You can omit position(center), as long as you use coordinates in the text() command to put it at the appropriate position. FIQ used 54,55 to put it in the center. If you use that, you can use two lines:
say(-1)
text(1,0,0,4)
say(2)
squeak(terminal)
text(1,0,0,4)
say(5)
text(gray,54,55,2)
This is a text box
with two lines!
speak_active
text(1,0,0,4)
say(4)
endtext
endcutscene()
untilbars()
loadscript(stop)
If you use 2.1, and only IF, you can also use this:
say(-1)
text(1,0,0,4)
say(infinite number of lines)
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
[internal]
etc.
So you can use something like this:
say(-1)
text(1,0,0,4)
say(13)
squeak(terminal)
text(gray,0,0,5)
This
is a
long
text
box.
position(center)
speak_active
endtext
endcutscene()
untilbars()
loadscript(stop)
But please note that this only works with 2.1, and it will not work with 2.0!