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

/*
Firma   : Digital Artist (DgA)
Objekt  : reederei/achse.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 Number[3];
SHORT Berg[8];
UBYTE Nummer[11];
LONG Kohle;

USHORT acpts[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 acggtxt =
 {1,13,JAM2,17,2,&font[0],"Weiter",NULL};

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

struct Gadget acgg =
 {NULL,484,160,92,13,GADGIMAGE|GADGHNONE,GADGIMMEDIATE,BOOLGADGET|REQGADGET,&acggim,NULL,&acggtxt,0L,NULL,0,NULL};

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

struct IntuiText actxt[11] =
 {
  {1,0,JAM2,439,3,&font,"Finanzübersicht",&actxt[1]},
  {1,0,JAM2,10,3,&font,"Reeder",&actxt[2]},
  {1,0,JAM2,85,3,&font,NULL,&actxt[3]},
  {11,0,JAM2,340,50,&font,"Reeder :",&actxt[4]},
  {4,0,JAM2,430,50,&font,NULL,&actxt[5]},
  {11,0,JAM2,340,75,&font,"Firma :",&actxt[6]},
  {4,0,JAM2,430,75,&font,NULL,&actxt[7]},
  {11,0,JAM2,340,100,&font,"Barvermögen :",&actxt[8]},
  {4,0,JAM2,480,100,&font,&Nummer[0],&actxt[9]},
  {11,0,JAM2,340,125,&font,"Marktanteile :",&actxt[10]},
  {4,0,JAM2,480,125,&font,&Number[0],NULL}
 };

struct Requester achse =
 {NULL,20,5,600,180,0,0,&acgg,&acbo[1],&actxt[0],0,0,NULL,NULL,NULL,NULL,NULL};

Achse(pl)
SHORT pl;
 {
  int i;
  int a = 0;
  struct IntuiMessage *acmsg = NULL;
  struct RastPort *RPort;

  for(i=0;i<4;i++)
   a += Quartal[7].Aktienwert[i];

  sprintf(&Nummer[0],"%d",Spieler[pl].Geld);
  if (Spieler[pl].Geld != 0)
   strcat(&Nummer[0],"000");
  else
   strcpy(&Nummer[0],"--");

  sprintf(&Number[0],"%d%%",Quartal[7].Aktienwert[pl]*100/a);

  actxt[2].IText = Spieler[pl].Name;
  actxt[4].IText = Spieler[pl].Name;
  actxt[6].IText = Spieler[pl].Firma;

  acggim.ImageData = box2;

  Request(&achse,Window);

  RPort = achse.ReqLayer->rp;

  SetAPen(RPort,14);
  Move(RPort,50,30);
  Draw(RPort,50,160);   /* y-Achse */
  Move(RPort,49,30);
  Draw(RPort,49,160);
  Move(RPort,49,30);
  Draw(RPort,43,32);
  Move(RPort,50,30);
  Draw(RPort,56,32);

  Move(RPort,50,160);   /* x-Achse */
  Draw(RPort,295,160);
  Draw(RPort,289,157);
  Move(RPort,295,160);
  Draw(RPort,289,163);

  SetAPen(RPort,13);
  for(a=0;a<25;a++)
   {
    Move(RPort,40+a*10,95);   /* Hälfte */
    Draw(RPort,45+a*10,95);
   }

  for(a=0;a<8;a++)
   Berg[a] = 160 - (Quartal[a].Aktienwert[pl] / 2);

  SetAPen(RPort,6);
  Move(RPort,51,Berg[0]);
  for(i=0;i<7;i++)
   {
    Move(RPort,50+(i*30),Berg[i]);
    Draw(RPort,80+(i*30),Berg[i+1]);
    Move(RPort,50+(i*30),Berg[i]-1);
    Draw(RPort,80+(i*30),Berg[i+1]-1);
   }

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

  EndRequest(&achse,Window);

  return;
 } 
