// // Copyright 2020 Electronic Arts Inc. // // TiberianDawn.DLL and RedAlert.dll and corresponding source code 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 3 of the License, or (at your option) any later version. // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed // in the hope that it will be useful, but with permitted additional restrictions // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT // distributed with this program. You should have received a copy of the // GNU General Public License along with permitted additional restrictions // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection #ifndef mpmgr_h #define mpmgr_h #include "connmgr.h" #include "mplayer.h" #include // maximum number of connections #define CONNECT_MAX 7 #define MAX_NAME_LEN 128 class MPlayerManClass : public ConnManClass { public: MPlayerManClass(void); ~MPlayerManClass(void); // queues up incoming packets appropriately int Service(void); // initialization int Init(void); int Find_Num_Connections(void); void Flush_All(void); // send/receive data int Send_Private_Message(void *buf, int buflen, int ack_req = 1, int conn_id = CONNECTION_NONE); int Get_Private_Message(void *buf, int *buflen, int *conn_id); int Send_Global_Message(void *buf, int buflen, int ack_req = 0, int address = 0); int Get_Global_Message(void *buf, int *buflen, int *address = 0); // manage connections int Num_Connections(void); int Connection_ID(int index); int Connection_Index(int id); int Create_Connection(int id, char *name, int address); int Delete_Connection(int id); char *Connection_Name(int id); int Connection_Address(int id); // queueing routines int Global_Num_Send(void); int Global_Num_Receive(void); int Private_Num_Send(int id = CONNECTION_NONE); int Private_Num_Receive(int id = CONNECTION_NONE); // timing magnagement void Reset_Response_Time(void); unsigned long Response_Time(void); void Set_Timing(unsigned long retrydelta, unsigned long maxretries, unsigned long timeout); // debug void Configure_Debug(int index, int type_offset, int type_size, char **names, int namestart, int namecount); void Mono_Debug_Print(int index, int refresh); private: //HGULP _gulp; //HGULP _pgulp; //GAMEDEF _gameDef; //int _myAddr; //int _Connections[CONNECT_MAX]; //int _ID[CONNECT_MAX]; //char _Names[CONNECT_MAX][MAX_NAME_LEN]; //int _nConnections; }; #endif // mpmgr_h