#include <stdio.h>
#include <stdlib.h>
#include "includes.h"
#include "XDRIVER.h"

void XD_Polyline_abs(const int *xarray, const int *yarray, int number)
{
    XPoint *xpnts = alloc_xpoints(number);
    int i;

    if (number < 1)
	return;

    for (i = 0; i < number; i++) {
	xpnts[i].x = (short)xarray[i];
	xpnts[i].y = (short)yarray[i];
    }

    XDrawLines(dpy, bkupmap, gc, xpnts, number, CoordModeOrigin);
    cur_x = xpnts[number - 1].x;
    cur_y = xpnts[number - 1].y;
    needs_flush = 1;
}

void XD_Polyline_rel(const int *xarray, const int *yarray, int number)
{
    XPoint *xpnts = alloc_xpoints(number);
    int i;

    if (number < 1)
	return;

    xpnts[0].x = (short)(xarray[0] + cur_x);
    xpnts[0].y = (short)(yarray[0] + cur_y);
    cur_x = xpnts[0].x;
    cur_y = xpnts[0].y;

    for (i = 1; i < number; i++) {
	xpnts[i].x = (short)xarray[i];
	xpnts[i].y = (short)yarray[i];
	cur_x += xpnts[i].x;
	cur_y += xpnts[i].y;
    }

    XDrawLines(dpy, bkupmap, gc, xpnts, number, CoordModePrevious);
    needs_flush = 1;
}
