1 /* -*- Mode: C++; c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil -*-
2  *
3  * Quadra, an action puzzle game
4  * Copyright (C) 1998-2000  Ludus Design
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20 
21 #ifndef _HEADER_NET_STUFF
22 #define _HEADER_NET_STUFF
23 
24 #include "net.h"
25 #include "overmind.h"
26 
27 class Net_starter {
28 	class Net_module: public Module {
29 		Dword last_video_frame;
30 	public:
31 		Net_module();
32 		virtual void step();
33 	};
34 	Executor *net_exec;
35 public:
36 	Net_starter();
37 	virtual ~Net_starter();
38 };
39 
40 extern Net_starter* net_starter;
41 
42 class Quadra_param: public Net_param {
43 public:
44 	virtual int tcpport();
45 	virtual void print_packet(Packet *p2, char *st);
46 	virtual Packet *alloc_packet(Word pt);
47 	virtual bool is_dispatchable(Net_connection *nc, Packet *p);
magic()48 	virtual Dword magic() {
49 		return ('R'<<24) | ('M'<<16) | ('T'<<8) | ('3');
50 	}
51 	virtual void server_deconnect();
52 	virtual void client_connect(Net_connection *adr);
53 	virtual void client_deconnect(Net_connection *adr);
54 	virtual bool accept_connection(Net_connection *nc);
55 	virtual const char *get_motd();
56 };
57 
58 extern void send_msg(Net_connection *nc, const char *msg, ...);
59 
60 #endif
61