#ifndef VideoNachricht_H #define VideoNachricht_H #include #include #include "../VideoDaten/VideoDaten.h" using namespace Framework; struct VideoMSG { char typ; // 0 = Tick, 1 = Aktion }; // typ = 1 struct VideoAktionMSG : public VideoMSG { int spielerNummer; char aktion; // 0 = T_Links press, 1 = T_Links release, 2 = T_Rechts press, 3 = T_Rechts release, 4 = Chat Nachricht, 5 = Linien Unterbrechung }; // action = 4 struct VideoChatMSG : public VideoAktionMSG { int län; Text msg; }; // aktion = 5 struct VideoLinieMSG : public VideoAktionMSG { char unterbrechung; }; class RundeNachricht { private: int index; int maxNachricht; Array< VideoMSG* > *nachrichten; Datei *vDat; RundeVideoDaten *rvd; Array< RundeSpielerVideoDaten* > *rsvd; bool aktiv; int ref; public: // Konstruktor RundeNachricht( Datei *d, int spielerAnzahl ); // Destruktor ~RundeNachricht(); // nicht constant VideoMSG *GetNextNachricht(); VideoMSG *GetLastNachricht(); void setEnde(); // constant RundeVideoDaten *getRVD() const; RundeSpielerVideoDaten *getRSVD( int index ) const; // Reference Counting RundeNachricht *getThis(); RundeNachricht *release(); }; class SpielNachricht { private: int runde; int maxRunde; int teamAnzahl; RCArray< RundeNachricht > *runden; Datei *vDat; SpielVideoDaten *svd; Array< SpielerVideoDaten* > *spvd; Array< TeamVideoDaten* > *tvd; bool error; Text *fehler; int ref; public: // Konstruktor SpielNachricht( int num ); // Destruktor ~SpielNachricht(); // nicht constant VideoMSG *GetNextNachricht(); VideoMSG *GetLastNachricht(); int setRundenEnde( bool vorwärts ); // constant SpielVideoDaten *getSVD() const; SpielerVideoDaten *getSPVD( int index ) const; TeamVideoDaten *getTVD( int index ) const; RundeVideoDaten *getRVD() const; RundeSpielerVideoDaten *getRSVD( int index ) const; bool hatFehler( Text *txt ) const; int getTeamAnzahl() const; int getRunde() const; // Reference Counting SpielNachricht *getThis(); SpielNachricht *release(); }; #endif