[Main]
Name=DrawMultiLines
Type=Function
Subtype=ROM Call
Header Files=graph.h
Definition=void DrawMultiLines (short x, short y, const void *multi_lines);

[ROM Call]
Index=$196

[Description]
Draws a set of lines in one turn.

[Explanation]
DrawMultiLines draws a whole set of lines using a single command. The
parameter <I>multi_lines</I> is a pointer to the byte-area structure
organized as follows:
<UL>
<LI>The first byte is the total number of lines;</LI>
<LI>Then, each line is described using a 5-byte structure as follows:
<UL>
<LI>The first byte is line attribute;</LI>
<LI>The next four bytes are x0, y0, x1 and y1 respective.</LI>
</UL>
</LI>
</UL>
The line will be clipped at the current clipping area boundaries given with
<A HREF="$$LINK(graph.h/SetCurClip)">SetCurClip</A> command.
<I>multi_lines</I> is usually a pointer to the <A HREF="$$LINK(graph.h/MULTI_LINE)">MULTI_LINE</A>
structure. See <A HREF="$$LINK(graph.h/DrawLine)">DrawLine</A> for more info about line attributes.
<BR><BR>
Parameters <I>x</I> and <I>y</I> act as a translation shifters. They are added to
all line coordinates before drawing (the structure itself remains intact), so by using
the same <I>multi_line</I> with various <I>x</I>-s and <I>y</I>-s, it is possible
to draw several instances of the same-shape objects on various places on the screen.
<BR><BR>
The following example will draw two stars on the screen:
<PRE>static MULTI_LINE star_shape = {3, {{1, 30, 50, 70, 50},
                                    {1, 35, 35, 65, 65},
                                    {1, 35, 65, 65, 35}}};
...
DrawMultiLines (0, 0, &amp;star_shape);
DrawMultiLines (80, 0, &amp;star_shape);
</PRE>

[References]
In=menus.h/MenuKey, menus.h/MenuOff, menus.h/MenuOn, menus.h/MenuTopRedef, menus.h/MenuTopSelect
Out=graph.h/LineTo, graph.h/MoveTo, graph.h/SetCurAttr
