// $Source: /usr/local/SimSoft/Sfx3D/src/gts/gtsb38.cpp,v $
// $Revision: 1.2 $
// $Author: baum $
// $Date: 2001/11/29 15:18:10 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name: Release-14 $
// State assigned to revision
// $State: Exp $
//
//
// $Log: gtsb38.cpp,v $
// Revision 1.2  2001/11/29 15:18:10  baum
// -Realzeitsteuerung eingebaut
// -Handsteuerung eingebaut
//

/*** Windows headers ***/
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
//#include <winnt.h>
#endif /*WIN32*/

#include "gtstgb.h"
#include "gtsb38.h"

typBTPFtsZweibahnMitInhalt::typBTPFtsZweibahnMitInhalt ()
  : MaxGeschwindigkeit (100.0)
{ } // typBTPFtsZweibahnMitInhalt

typBTPFtsZweibahnMitInhalt::typBTPFtsZweibahnMitInhalt (const typBTPFtsZweibahnMitInhalt &copy)
{
  MaxGeschwindigkeit = copy.MaxGeschwindigkeit;
} // typBTPFtsZweibahnMitInhalt

typBTPFtsZweibahnMitInhalt::typBTPFtsZweibahnMitInhalt (const typBTPFtsZweibahnMitInhalt *zBTP)
{
  MaxGeschwindigkeit = zBTP->MaxGeschwindigkeit;
} // typBTPFtsZweibahnMitInhalt

typBTPFtsZweibahnMitInhalt::typBTPFtsZweibahnMitInhalt (InputFile& fin)
{
  SFXToken tok;
  tok.nextToken (fin); tok.EndOfLine (fin);  // Zeile überlesen
  tok.nextToken (fin); // Nr ueberlesen
  tok.nextToken (fin);  MaxGeschwindigkeit = atof(tok());
  tok.EndOfLine (fin);
}; // typBTPFtsZweibahnMitInhalt 

void typBTPFtsZweibahnMitInhalt::BTPLesen (InputFile& fin)
{
  SFXToken tok;
  tok.nextToken (fin);  MaxGeschwindigkeit = atof(tok());
  tok.EndOfLine (fin);
}  // ENDE BTPLesen

void typBTPFtsZweibahnMitInhalt::BTPSchreiben (ostream& ostrm, typBaustein *zbst, int satznr)
{
  Write (ostrm, "%4d ",     satznr);
  Write (ostrm, "%4d ",     zbst->i_BstNr());
  Write (ostrm, "%4d ",     zbst->i_BstTyp());
  Write (ostrm, "%11.5f\n", MaxGeschwindigkeit);
}  // ENDE BTPSchreiben

Ustring typBTPFtsZweibahnMitInhalt::getBTPWerte ()
{
  Ustring buf (MaxGeschwindigkeit);
  return buf;
}  // ENDE getBTPWerte

void typBTPFtsZweibahnMitInhalt::setBTPWerte (Ustring str)
{
  sscanf((char*)str.str(),"%f", &MaxGeschwindigkeit);
}  // ENDE setBTPWerte

void typBTPFtsZweibahnMitInhalt::setBTPWerte (const typBTPFtsZweibahnMitInhalt *zBTP)
{
  MaxGeschwindigkeit = zBTP->MaxGeschwindigkeit;
}  // ENDE setBTPWerte

typBTPFtsZweibahnMitInhalt::~typBTPFtsZweibahnMitInhalt ()
{ } // ~typBTPFtsZweibahnMitInhalt

typBSTFtsZweibahnMitInhalt::typBSTFtsZweibahnMitInhalt (const typBSTFtsZweibahnMitInhalt &copy, int nr)
                           :typBaustein(copy, nr),
                            typBTPFtsZweibahnMitInhalt(copy),
                            typBSPVariante1(copy)
{
} // typBSTFtsZweibahnMitInhalt

typBSTFtsZweibahnMitInhalt::typBSTFtsZweibahnMitInhalt (BstVariante *zaufTGB, int nr)
                           :typBaustein(zaufTGB, nr),
                            typBTPFtsZweibahnMitInhalt((typBTPFtsZweibahnMitInhalt*)zTGB->BTP ()),
                            typBSPVariante1((typBSPVariante1*)zTGB->BSP ())
{
} // typBSTFtsZweibahnMitInhalt

typBSTFtsZweibahnMitInhalt::typBSTFtsZweibahnMitInhalt (InputFile& fin, int nr, int btyp, int vtyp)
                           :typBaustein (fin, nr, btyp, vtyp),
                            typBTPFtsZweibahnMitInhalt((typBTPFtsZweibahnMitInhalt*)zTGB->BTP ()),
                            typBSPVariante1((typBSPVariante1*)zTGB->BSP ())
{
} // typBSTFtsZweibahnMitInhalt

typBSTFtsZweibahnMitInhalt::~typBSTFtsZweibahnMitInhalt ()
{ } // ~typBSTFtsZweibahnMitInhalt

void typBSTFtsZweibahnMitInhalt::VarianteErsetzen  (BstVariante *zaufTGB)
{
  typBTPFtsZweibahnMitInhalt::setBTPWerte ((typBTPFtsZweibahnMitInhalt*)zaufTGB->BTP());
  typBSPVariante1::setBSPWerte((typBSPVariante1*)zaufTGB->BSP());
  BausteinErsetzen (zaufTGB);
} // ENDE  VarianteErsetzen

Ustring typBSTFtsZweibahnMitInhalt::getBTPWerte ()
{
  return typBTPFtsZweibahnMitInhalt::getBTPWerte();
}  // ENDE getBTPWerte

void typBSTFtsZweibahnMitInhalt::setBTPWerte (Ustring str)
{
  typBTPFtsZweibahnMitInhalt::setBTPWerte (str);
}  // ENDE setBTPWerte

void typBSTFtsZweibahnMitInhalt::setBTPWerte (const typBTPFtsZweibahnMitInhalt *zBTP)
{
  typBSTFtsZweibahnMitInhalt::setBTPWerte (zBTP);
}  // ENDE setBTPWerte

void typBSTFtsZweibahnMitInhalt::BTPLesen (InputFile& fin)
{
  typBTPFtsZweibahnMitInhalt::BTPLesen (fin);
}  // ENDE BSPLesen

void typBSTFtsZweibahnMitInhalt::BTPSchreiben (ostream& ostrm, int satznr)
{
  typBTPFtsZweibahnMitInhalt::BTPSchreiben (ostrm, this, satznr);
}  // ENDE BTPSchreiben

void typBSTFtsZweibahnMitInhalt::BSPLesen (InputFile& fin)
{
  typBSPVariante1::BSPLesen (fin);
}  // ENDE BSPLesen

void typBSTFtsZweibahnMitInhalt::BSPSchreiben (ostream& ostrm, int satznr)
{
  typBSPVariante1::BSPSchreiben (ostrm, this, satznr);
}  // ENDE BSPSchreiben

Ustring typBSTFtsZweibahnMitInhalt::getBSPWerte ()
{
  return typBSPVariante1::getBSPWerte ();
}  // ENDE getBSPWerte

void typBSTFtsZweibahnMitInhalt::setBSPWerte (Ustring str)
{
  typBSPVariante1::setBSPWerte (str);
}  // ENDE setBSPWertetypBSTFtsWagen