
/** diagramm.c *************/
/*                         */
/* by LONG                 */
/*                         */
/* Copyright © 1988 by DgA */
/*                         */
/***************************/

/*
Firma   : Digital Artist (DgA)
Objekt  : reederei/diagramm.c
Version : 1.0
Autor   : LONG
Datum   : 06-18-1988
Status  : geheim

Version : 1.1
Autor   : [RK]
Datum   : 09-03-1988
Status  : geheim
*/

#include <exec/types.h>
#include <intuition/intuition.h>
#include <graphics/text.h>
#include "reederei.h"

extern struct Window *Window;
extern struct TextAttr font[2];
extern struct Spieler Spieler[4];
extern struct Quartal Quartal[8];
extern USHORT *box2;

UBYTE zahl[4][5];

USHORT dpts[2][18] =
 {
  {0,0,599,0,599,179,1,179,1,0,598,0,598,179,0,179,0,0},
  {0,0,599,0,599,14,1,14,1,0,598,0,598,14,0,14,0,0}
 };

struct IntuiText dggtxt =
 {1,13,JAM2,17,2,&font[0],"Weiter",NULL};

struct Image dggim =
 {-2,-1,96,15,4,NULL,0xf,0x0,NULL};

struct Gadget dgg =
 {NULL,484,160,92,13,GADGIMAGE|GADGHNONE,GADGIMMEDIATE,BOOLGADGET|REQGADGET,&dggim,NULL,&dggtxt,0L,NULL,0,NULL};

struct Border dbo[2] =
 {
  {0,0,13,0,JAM2,9,&dpts[1][0],NULL},
  {0,0,13,0,JAM2,9,&dpts[0][0],&dbo[0]}
 };

struct IntuiText dtxt[15] =
 {
  {1,0,JAM2,465,3,&font[0],"Kursübersicht",&dtxt[1]},
  {1,0,JAM2,10,3,&font[0],"Reeder",&dtxt[2]},
  {1,0,JAM2,85,3,&font[0],NULL,&dtxt[3]},
  {7,0,JAM2,449,50,&font[0],NULL,&dtxt[4]},
  {6,0,JAM1,450,51,&font[0],NULL,&dtxt[5]},
  {12,0,JAM2,449,70,&font[0],NULL,&dtxt[6]},
  {11,0,JAM1,450,71,&font[0],NULL,&dtxt[7]},
  {5,0,JAM2,449,90,&font[0],NULL,&dtxt[8]},
  {4,0,JAM1,450,91,&font[0],NULL,&dtxt[9]},
  {8,0,JAM2,449,110,&font[0],NULL,&dtxt[10]},
  {10,0,JAM1,450,111,&font[0],NULL,&dtxt[11]},
  {11,0,JAM2,50,160,&font[0],&zahl[0][0],&dtxt[12]},
  {11,0,JAM2,150,160,&font[0],&zahl[1][0],&dtxt[13]},
  {11,0,JAM2,250,160,&font[0],&zahl[2][0],&dtxt[14]},
  {11,0,JAM2,350,160,&font[0],&zahl[3][0],NULL}
 };

struct Requester diagramm =
 {NULL,20,5,600,180,0,0,&dgg,&dbo[1],&dtxt[0],0,0,NULL,NULL,NULL,NULL,NULL};

SHORT Index[3], Kurs[4];
int a;

Diagramm(pl)
SHORT pl;
 {
  struct IntuiMessage *dmsg = NULL;
  struct RastPort *RPort;
  int i;

  dtxt[2].IText = Spieler[pl].Name;

  for(i=0;i<4;i++)
   {
    dtxt[3+(i*2)].IText = Spieler[i].Firma;
    dtxt[4+(i*2)].IText = Spieler[i].Firma;
   }

  for (i=0;i<4;i++)
   {
    if (Quartal[7].Aktienwert[i] != 0)
     sprintf(&zahl[i][0],"%4d",Quartal[7].Aktienwert[i]);
    else
     strcpy(&zahl[i][0]," --");
   }

  dggim.ImageData = box2;

   a=0;

   while(a < 4)
    {
     Index[a] = 160 - (Quartal[7].Aktienwert[a] / 2);
     a++;
    }

  Request(&diagramm,Window);

  RPort = diagramm.ReqLayer->rp;

  if(Index[0] < 160)
   {
    SetAPen(RPort,7);
    RectFill(RPort,50,Index[0],100,155);
    SetAPen(RPort,6);
    Move(RPort,50,155),        Draw(RPort,50,Index[0]-1);
    Move(RPort,50,Index[0]-1), Draw(RPort,100,Index[0]-1);
    Move(RPort,100,Index[0]-1),Draw(RPort,100,155);
   }

  if(Index[1] < 160)
   {
    SetAPen(RPort,12);
    RectFill(RPort,150,Index[1],200,155);
    SetAPen(RPort,11);
    Move(RPort,150,155),        Draw(RPort,150,Index[1]-1);
    Move(RPort,150,Index[1]-1), Draw(RPort,200,Index[1]-1);
    Move(RPort,200,Index[1]-1), Draw(RPort,200,155);
   }

  if(Index[2] < 160)
   {
    SetAPen(RPort,5);
    RectFill(RPort,250,Index[2],300,155);
    SetAPen(RPort,4);
    Move(RPort,250,155),        Draw(RPort,250,Index[2]-1);
    Move(RPort,250,Index[2]-1), Draw(RPort,300,Index[2]-1);
    Move(RPort,300,Index[2]-1), Draw(RPort,300,155);
   }

  if(Index[3] < 160)
   {
    SetAPen(RPort,8);
    RectFill(RPort,350,Index[3],400,155);
    SetAPen(RPort,10);
    Move(RPort,350,155),        Draw(RPort,350,Index[3]-1);
    Move(RPort,350,Index[3]-1), Draw(RPort,400,Index[3]-1);
    Move(RPort,400,Index[3]-1), Draw(RPort,400,155);
   }

  SetAPen(RPort,13);
  Move(RPort,30,156);  Draw(RPort,420,156);

  while (dmsg->Class != GADGETDOWN)
   {
    while((dmsg=(struct IntuiMessage *)GetMsg(Window->UserPort))==NULL);
    ReplyMsg(dmsg);
   }

  EndRequest(&diagramm,Window);

  return;
 } 
