File: MultiPlay.h

package info (click to toggle)
csmash 0.6.6-6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,548 kB
  • ctags: 1,687
  • sloc: cpp: 19,531; sh: 3,515; makefile: 439; ansic: 120; sed: 16
file content (137 lines) | stat: -rw-r--r-- 3,487 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/* $Id: MultiPlay.h,v 1.20 2003/07/16 16:03:38 nan Exp $ */

// Copyright (C) 2000, 2001, 2003  神南 吉宏(Kanna Yoshihiro)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

#ifndef _MultiPlay_
#define _MultiPlay_

#include "PlayGame.h"

class ExternalData {
public:
  ExternalData();
  ExternalData( long side );

  virtual ~ExternalData();

  long side;
  long dataType;
  long sec;
  char count;
  char data[256];
  ExternalData *next;

  virtual bool Apply( Player *targetPlayer, bool &fThePlayer, bool &fComPlayer,
		      bool &fTheBall ) = 0;
  virtual bool Read( long sock ) = 0;

  static ExternalData* ReadData( long s );

  virtual bool isNull() { return false; };

protected:
  void ReadTime( int sd, long *sec, char *count );
};

class ExternalPVData : public ExternalData {
public:
  ExternalPVData();
  ExternalPVData( long side );

  virtual bool Apply( Player *targetPlayer, bool &fThePlayer, bool &fComPlayer,
		      bool &fTheBall );
  virtual bool Read( long sock );
};

class ExternalPSData : public ExternalData {
public:
  ExternalPSData();
  ExternalPSData( long side );

  virtual bool Apply( Player *targetPlayer, bool &fThePlayer, bool &fComPlayer,
		      bool &fTheBall );
  virtual bool Read( long sock );
};

class ExternalBVData : public ExternalData {
public:
  ExternalBVData();
  ExternalBVData( long side );

  virtual bool Apply( Player *targetPlayer, bool &fThePlayer, bool &fComPlayer,
		      bool &fTheBall );
  virtual bool Read( long sock );
};

class ExternalPTData : public ExternalData {
public:
  ExternalPTData();
  ExternalPTData( long side );

  virtual bool Apply( Player *targetPlayer, bool &fThePlayer, bool &fComPlayer,
		      bool &fTheBall );
  virtual bool Read( long sock );
};

class ExternalNullData : public ExternalData {
public:
  virtual bool Apply( Player *targetPlayer, bool &fThePlayer, bool &fComPlayer,
		      bool &fTheBall ) { return false; };
  virtual bool Read( long sock ) { return false; };

  virtual bool isNull() { return true; };
};


class MultiPlay : public PlayGame {
public:
  MultiPlay();
  virtual ~MultiPlay();

  virtual bool Init();

  static void Create( long player, long com );

  virtual bool Move( SDL_keysym *KeyHistory, long *MouseXHistory,
		     long *MouseYHistory, unsigned long *MouseBHistory,
		     int Histptr );

  //long GetSmashPtr() { return m_smashPtr; };

  virtual bool LookAt( double &srcX, double &srcY, double &srcZ,
		       double &destX, double &destY, double &destZ );


  void SendTime( char *buf );

  virtual void EndGame();

  //long GetTimeAdj() { return m_timeAdj; };

  void StartServer();
  void StartClient();

  static int WaitForData( void * );
  static int Connect( void * );

protected:
  //bool m_smash;
  //long m_smashCount;
  //long m_smashPtr;
};

#endif	// _MultiPlay_