PROCEDURE empirestate;

VAR	
	
	pageWidth:	REAL;
	pageHeight:	REAL;

	X1:	REAL;
	X2:	REAL;

	Y1:	REAL;
	Y2:	REAL;
	Y3:	REAL;
	Y4:	REAL;
	Y5:	REAL;
	Y6:	REAL;

	Z1:	REAL;
	Z2:	REAL;

	b:	REAL;
	
BEGIN
	
	{*Variablen berechnen*}
	pageWidth:= PpageWidth;
	pageHeight:= PpageHeight;

	X1:= PX1;
	X2:= PX2;
	
	Y1:= PY1;
	Y2:= PY2;
	Y3:= PY3;
	Y4:= PY4;
	Y5:= PY5;
	Y6:= PY6;

	Z1:= PZ1;
	Z2:= PZ2;

	b:= Y1+(Z1-Z2)+Y2+(Z2-1.5)+Y3;

	{*Stift einstellen*}
	penPat(2);
	penFore(0,0,65535);
	
	{*blatt zeichnen*}
	moveto(-((pageWidth-X1)/2),-(0.074*pageHeight));
	lineto(X1+((pageWidth-X1)/2),-(0.074*pageHeight));
	lineto(X1+((pageWidth-X1)/2),pageHeight-(0.074*pageHeight));
	lineto(-((pageWidth-X1)/2),pageHeight-(0.074*pageHeight));
	lineto(-((pageWidth-X1)/2),-(0.074*pageHeight));

	{*schnittkanten zeichnen*}

	{*1. Geschoss*}	
	moveto(0,0);
	lineto(0,Z1+Y1);

	moveto(0.0667*X1,0);
	lineto(0.0667*X1,0.5*Y1);
	lineto(0.111*X1,0.5*Y1);
	lineto(0.111*X1,0);
	
	moveto(0.164*X1,0);
	lineto(0.164*X1,0.5*Y1);
	lineto(0.222*X1,0.5*Y1);
	lineto(0.222*X1,0);

	moveto(0.28*X1,0);
	lineto(0.28*X1,0.75*Y1);
	lineto(0.39*X1,0.75*Y1);
	lineto(0.39*X1,0);
	
	moveto(0.475*X1,0);
	lineto(0.475*X1,0.5*Y1);
	lineto(0.542*X1,0.5*Y1);
	lineto(0.542*X1,0);
	
	moveto(0.617*X1,0);
	lineto(0.617*X1,0.75*Y1);
	lineto(0.728*X1,0.75*Y1);
	lineto(0.728*X1,0);

	moveto(0.791*X1,0);
	lineto(0.791*X1,0.5*Y1);
	lineto(0.844*X1,0.5*Y1);
	lineto(0.844*X1,0);

	moveto(0.902*X1,0);
	lineto(0.902*X1,0.5*Y1);
	lineto(0.953*X1,0.5*Y1);
	lineto(0.953*X1,0);

	{*2. Geschoss*}
	moveto(X1,0);
	lineto(X1,Z1+Y1);

	moveto((X1-X2)/2+X2,Y1+(Z1-Z2));
	lineto((X1-X2)/2+X2,Y1+(Z1-Z2)+Y2);
	lineto((X1-X2)/2+X2,Y1+(Z1-Z2)+Y2+Z2);
	
	moveto(((X1-X2)/2)+0.94*X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.94*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.874*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.874*X2,Y1+(Z1-Z2));
	
	moveto(((X1-X2)/2)+0.794*X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.794*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.725*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.725*X2,Y1+(Z1-Z2));

	moveto(((X1-X2)/2)+0.65*X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.65*X2,Y1+(Z1-Z2)+Y2+0.4);
	
	moveto(((X1-X2)/2)+0.5543*X2,Y1+(Z1-Z2)+0.4);
	lineto(((X1-X2)/2)+0.5543*X2,Y1+(Z1-Z2)+Y2+0.4);
	lineto(((X1-X2)/2)+0.468*X2,Y1+(Z1-Z2)+Y2+0.4);
	lineto(((X1-X2)/2)+0.468*X2,Y1+(Z1-Z2)+0.4);

	moveto(((X1-X2)/2)+0.36*X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.36*X2,Y1+(Z1-Z2)+Y2+0.4);

	moveto(((X1-X2)/2)+0.285*X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.2853*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.2171*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.2171*X2,Y1+(Z1-Z2));

	moveto(((X1-X2)/2)+0.148*X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.148*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.068*X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.068*X2,Y1+(Z1-Z2));

	moveto((X1-X2)/2,Y1+(Z1-Z2));
	lineto((X1-X2)/2,Y1+(Z1-Z2)+Y2);
	lineto((X1-X2)/2,Y1+(Z1-Z2)+Y2+Z2);

	{*3. Geschoss*}
	moveto((X1-2.5)/2,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto((X1-2.5)/2,b+1.5);
	
	moveto(((X1-2.5)/2)+0.2,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto(((X1-2.5)/2)+0.2,b);
	lineto((X1-1.5)/2,b);
	lineto((X1-1.5)/2,Y1+(Z1-Z2)+Y2+(Z2-1.5));

	moveto((X1-1.5)/2,Y1+(Z1-Z2)+Y2+Z2);
	lineto(((X1-2.5)/2)+0.2,Y1+(Z1-Z2)+Y2+Z2);
	
	moveto((X1-1)/2,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto((X1-1)/2,b+0.5);
	
	moveto(((X1-1)/2)+0.35,Y1+(Z1-Z2)+Y2+(Z2-1.5)+0.5);
	lineto(((X1-1)/2)+0.35,b+1.5);
	lineto(((X1-1)/2)+0.65,b+1.5);
	lineto(((X1-1)/2)+0.65,Y1+(Z1-Z2)+Y2+(Z2-1.5)+0.5);
	
	moveto(((X1-1)/2)+0.35,Y1+(Z1-Z2)+Y2+Z2);
	lineto(((X1-1)/2)+0.65,Y1+(Z1-Z2)+Y2+Z2);
	
	moveto(((X1-1)/2)+1,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto(((X1-1)/2)+1,b+0.5);
	
	moveto(((X1-1.5)/2)+1.5,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto(((X1-1.5)/2)+1.5,b);
	lineto(((X1-1.5)/2)+1.8,b);
	lineto(((X1-1.5)/2)+1.8,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	
	moveto(((X1-1.5)/2)+1.5,Y1+(Z1-Z2)+Y2+Z2);
	lineto(((X1-1.5)/2)+1.8,Y1+(Z1-Z2)+Y2+Z2);

	moveto(((X1-2.5)/2)+2.5,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto(((X1-2.5)/2)+2.5,b+1.5);

	{*4. Geschoss*}
	moveto((X1-1.5)/2,b+0.5);
	lineto((X1-1.5)/2,b+1.5+Y4);
	
	moveto(((X1-1.5)/2)+1.5,b+0.5);
	lineto(((X1-1.5)/2)+1.5,b+1.5+Y4);
	
	moveto(((X1-1.5)/2)+0.6,b+0.5+Y4);
	lineto(((X1-1.5)/2)+0.6,b+1.5+Y4);
	
	moveto(((X1-1.5)/2)+0.9,b+0.5+Y4);
	lineto(((X1-1.5)/2)+0.9,b+1.5+Y4);

	{*5. Geschoss*}
	moveto((X1-1)/2,b+1+Y4);
	lineto((X1-1)/2,b+1.5+Y4+Y5);
	
	moveto(((X1-1)/2)+1,b+1+Y4);
	lineto(((X1-X2)/2)+((X2-1)/2)+1,b+1.5+Y4+Y5);

	{*Antenne*}
	moveto((X1-0.2)/2,b+1+Y4+Y5);
	lineto((X1-0.2)/2,b+1+Y4+Y5+Y6);
	lineto(((X1-X2)/2)+((X2-0.2)/2)+0.2,b+1+Y4+Y5+Y6);
	lineto(((X1-X2)/2)+((X2-0.2)/2)+0.2,b+1+Y4+Y5);

	{*Stift einstellen*}
	penFore(65535,0,0);
	penPat(-2);

	{*blatt faltkanten zeichnen*}
	moveto(X1+((pageWidth-X1)/2),Z1);
	lineto(-((pageWidth-X1)/2),Z1);

	{*faltkanten nach innen zeichnen*}
	{*1. Geschoss*}
	moveto(0,0);
	lineto(X1,0);
	
	{*2. Geschoss*}
	moveto((X1-X2)/2+X2,Y1+(Z1-Z2));
	lineto(((X1-X2)/2)+0.65*X2,Y1+(Z1-Z2));

	moveto(((X1-X2)/2)+0.65*X2,Y1+(Z1-Z2)+0.4);
	lineto(((X1-X2)/2)+0.36*X2,Y1+(Z1-Z2)+0.4);

	moveto(((X1-X2)/2)+0.36*X2,Y1+(Z1-Z2));
	lineto((X1-X2)/2,Y1+(Z1-Z2));

	moveto(0,Z1+Y1);
	lineto((X1-X2)/2,Z1+Y1);

	moveto(X1,Z1+Y1);
	lineto((X1-X2)/2+X2,Z1+Y1);

	{*3. Geschoss*}
	moveto((X1-2.5)/2,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto((X1-1)/2,Y1+(Z1-Z2)+Y2+(Z2-1.5));

	moveto((X1-1)/2,Y1+(Z1-Z2)+Y2+(Z2-1.5)+0.5);
	lineto(((X1-1)/2)+1,Y1+(Z1-Z2)+Y2+(Z2-1.5)+0.5);

	moveto(((X1-1)/2)+1,Y1+(Z1-Z2)+Y2+(Z2-1.5));
	lineto(((X1-2.5)/2)+2.5,Y1+(Z1-Z2)+Y2+(Z2-1.5));

	moveto((X1-X2)/2,Y1+(Z1-Z2)+Y2+Z2);
	lineto((X1-2.5)/2,Y1+(Z1-Z2)+Y2+Z2);

	moveto(((X1-X2)/2)+X2,Y1+(Z1-Z2)+Y2+Z2);
	lineto(((X1-2.5)/2)+2.5,Y1+(Z1-Z2)+Y2+Z2);

	{*4. Geschoss*}
	moveto((X1-1.5)/2,b+0.5);
	lineto((X1-1)/2,b+0.5);
	
	moveto(((X1-1.5)/2)+1.5,b+0.5);
	lineto(((X1-1)/2)+1,b+0.5);

	moveto((X1-2.5)/2,b+1.5);
	lineto((X1-1.5)/2,b+1.5);
	
	moveto(((X1-2.5)/2)+2.5,b+1.5);
	lineto(((X1-1.5)/2)+1.5,b+1.5);

	{*5. Geschoss*}
	moveto((X1-1)/2,b+1+Y4);
	lineto(((X1-1)/2)+0.35,b+1+Y4);

	moveto(((X1-1)/2)+1,b+1+Y4);
	lineto(((X1-1)/2)+0.65,b+1+Y4);

	moveto((X1-1.5)/2,b+1.5+Y4);
	lineto((X1-1)/2,b+1.5+Y4);

	moveto(((X1-1.5)/2)+1.5,b+1.5+Y4);
	lineto(((X1-1)/2)+1,b+1.5+Y4);
	
	moveto((X1-1)/2,b+1.5+Y4+Y5);
	lineto(((X1-1)/2)+0.4,b+1.5+Y4+Y5);

	moveto(((X1-1)/2)+1,b+1.5+Y4+Y5);
	lineto(((X1-1)/2)+0.6,b+1.5+Y4+Y5);

	{*Stift einstellen*}
	penFore(65535,0,0);
	penPat(2);

	{*faltkanten nach aussen zeichnen*}
	{*1. Geschoss*}
	moveto(0,Y1);
	lineto(X1,Y1);
	
	{*2. Geschoss*}
	moveto((X1-X2)/2+X2,Y1+(Z1-Z2)+Y2);
	lineto(((X1-X2)/2)+0.65*X2,Y1+(Z1-Z2)+Y2);

	moveto(((X1-X2)/2)+0.65*X2,Y1+(Z1-Z2)+Y2+0.4);
	lineto(((X1-X2)/2)+0.36*X2,Y1+(Z1-Z2)+Y2+0.4);
	
	moveto(((X1-X2)/2)+0.36*X2,Y1+(Z1-Z2)+Y2);
	lineto((X1-X2)/2,Y1+(Z1-Z2)+Y2);

	{*3. Geschoss*}
	moveto((X1-2.5)/2,b);
	lineto((X1-1)/2,b);

	moveto(((X1-2.5)/2)+2.5,b);
	lineto(((X1-1)/2)+1,b);
	
	{*4. Geschoss*}
	moveto((X1-1.5)/2,b+0.5+Y4);
	lineto(((X1-1.5)/2)+0.6,b+0.5+Y4);

	moveto(((X1-1.5)/2)+1.5,b+0.5+Y4);
	lineto(((X1-1.5)/2)+0.9,b+0.5+Y4);

	{*5. Geschoss*}
	moveto((X1-1)/2,b+1+Y4+Y5);
	lineto(((X1-1)/2)+0.4,b+1+Y4+Y5);

	moveto(((X1-1)/2)+1,b+1+Y4+Y5);
	lineto(((X1-1)/2)+0.6,b+1+Y4+Y5);

END;
RUN(empirestate);