#include #include "execdef.h" #include "intuidef.h" #include "loadrecord.h" #include "windowinfo.h" #include "DrawDataLine.proto" #include void DrawDataLine(window, record, x, value) Window *window; LoadRecord *record; short x; LoadDataValue value; { WindowInfo *window_info; register short deltay, moduloy, y, miny; unsigned char data_pen_num, ref_pen_num; register RastPort *rport; window_info = WINDOWINFO(window); data_pen_num = record->data_pen_num; ref_pen_num = record->ref_pen_num; x += window_info->leftedge; rport = window->RPort; y = window_info->bottomedge; miny = y - (value * window_info->height) / record->scaled_ticks; Move(rport, x, y); if (record->scale <= 1) { SetAPen(rport, record->data_pen_num); Draw(rport, x, miny); } else { deltay = record->deltay; moduloy = record->moduloy; do { y -= deltay; if (moduloy-- > 0) y--; SetAPen(rport, data_pen_num); if ( y < miny) { Draw(rport, x, miny); break; } Draw(rport, x, y); SetAPen(rport, ref_pen_num); WritePixel(rport, x, y); Move(rport, x, (short)(y-1)); } while (y >= miny); } }