1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-15 13:33:36 +02:00

Minor changes/cleanups. Adventure map is shown :)

This commit is contained in:
Michał W. Urbańczyk 2008-07-26 06:39:44 +00:00
parent 0c139e72f5
commit b72d065265
7 changed files with 59 additions and 163 deletions

View File

@ -15,11 +15,11 @@ CClient::CClient(void)
CClient::CClient(CConnection *con, StartInfo *si) CClient::CClient(CConnection *con, StartInfo *si)
:serv(con) :serv(con)
{ {
timeHandler tmh, pomtime; timeHandler tmh;
CConnection &c(*con); CConnection &c(*con);
//////////////////////////////////////////////////// ////////////////////////////////////////////////////
ui8 pom8; ui8 pom8;
c << ui8(2) << ui8(1); c << ui8(2) << ui8(1); //new game; one client
c << *si; c << *si;
c >> pom8; c >> pom8;
if(pom8) throw "Server cannot open the map!"; if(pom8) throw "Server cannot open the map!";

View File

@ -18,38 +18,6 @@ using namespace boost::asio::ip;
#define LIL_ENDIAN #define LIL_ENDIAN
#endif #endif
//CConnection & operator<<(CConnection &c, const std::string &data)
//{
// boost::uint32_t length = data.size();
// c << length;
// c.write(data.c_str(),length);
// return c;
//}
//CConnection & operator>>(CConnection &c, std::string &data)
//{
// boost::uint32_t length;
// c >> length;
// data.resize(length);
// c.read((void*)data.c_str(),length);
// return c;
//}
//CConnection & operator<<(CConnection &c, const char * &data)
//{
// boost::uint32_t length = strlen(data);
// c << length;
// c.write(data,length);
// return c;
//}
//CConnection & operator>>(CConnection &c, char * &data)
//{
// boost::uint32_t length;
// c >> length;
// std::cout <<"Alokujemy " <<length << " bajtow."<<std::endl;
// data = new char[length];
// c.read(data,length);
// return c;
//}
void CConnection::init() void CConnection::init()
{ {
#ifdef LIL_ENDIAN #ifdef LIL_ENDIAN

View File

@ -4,25 +4,13 @@
#include <vector> #include <vector>
#include <set> #include <set>
#include <boost/type_traits/is_pointer.hpp>
#include <boost/type_traits/is_fundamental.hpp> #include <boost/type_traits/is_fundamental.hpp>
#include <boost/type_traits/is_enum.hpp> #include <boost/type_traits/is_enum.hpp>
#include <boost/type_traits/is_volatile.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/remove_all_extents.hpp>
#include <boost/serialization/is_abstract.hpp>
#include <boost/mpl/eval_if.hpp> #include <boost/mpl/eval_if.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpl/less.hpp>
#include <boost/mpl/greater_equal.hpp>
#include <boost/mpl/equal_to.hpp> #include <boost/mpl/equal_to.hpp>
#include <boost/mpl/int.hpp> #include <boost/mpl/int.hpp>
#include <boost/mpl/identity.hpp> #include <boost/mpl/identity.hpp>
#include <boost/mpl/list.hpp>
#include <boost/mpl/empty.hpp>
#include <boost/mpl/not.hpp>
const int version = 63; const int version = 63;
class CConnection; class CConnection;
@ -243,16 +231,27 @@ public:
for(ui32 i=0;i<length;i++) for(ui32 i=0;i<length;i++)
*this >> data[i]; *this >> data[i];
} }
//template <typename T> template <typename T>
//void saveSerializable(T &data) void saveSerializable(const std::set<T> &data)
//{ {
// data.serialize(*static_cast<COSer*>(this),version); boost::uint32_t length = data.size();
//} *this << length;
//template <typename T> for(std::set<T>::iterator i=data.begin();i!=data.end();i++)
//void loadSerializable(T &data) *this << *i;
//{ }
// data.serialize(*static_cast<CISer*>(this),version); template <typename T>
//} void loadSerializable(std::set<T> &data)
{
boost::uint32_t length;
*this >> length;
data.resize(length);
T ins;
for(ui32 i=0;i<length;i++)
{
*this >> ins;
data.insert(ins);
}
}
template <typename T> template <typename T>
void save(const T &data) void save(const T &data)
@ -270,6 +269,7 @@ public:
>::type typex; >::type typex;
typex::invoke(*this, data); typex::invoke(*this, data);
} }
template <typename T> template <typename T>
void load(T &data) void load(T &data)
{ {
@ -308,107 +308,4 @@ public:
int read(void * data, unsigned size); int read(void * data, unsigned size);
int readLine(void * data, unsigned maxSize); int readLine(void * data, unsigned maxSize);
~CConnection(void); ~CConnection(void);
}; };
//DLL_EXPORT CConnection & operator<<(CConnection &c, const std::string &data);
//DLL_EXPORT CConnection & operator>>(CConnection &c, std::string &data);
//DLL_EXPORT CConnection & operator<<(CConnection &c, const char * &data);
//DLL_EXPORT CConnection & operator>>(CConnection &c, char * &data);
//
//template <typename T> CConnection & operator<<(CConnection &c, std::vector<T> &data)
//{
// boost::uint32_t length = data.size();
// c << length;
// for(ui32 i=0;i<length;i++)
// c << data[i];
// return c;
//}
//template <typename T> CConnection & operator>>(CConnection &c, std::vector<T> &data)
//{
// boost::uint32_t length;
// c >> length;
// data.resize(length);
// for(ui32 i=0;i<length;i++)
// c >> data[i];
// return c;
//}
//template <typename T> CConnection & operator<<(CConnection &c, std::set<T> &data)
//{
// boost::uint32_t length = data.size();
// c << length;
// for(std::set<T>::iterator i=data.begin();i!=data.end();i++)
// c << *i;
// return c;
//}
//template <typename T> CConnection & operator>>(CConnection &c, std::set<T> &data)
//{
// boost::uint32_t length;
// c >> length;
// data.resize(length);
// T pom;
// for(int i=0;i<length;i++)
// {
// c >> pom;
// data.insert(pom);
// }
// return c;
//}
//template <typename T> CConnection & operator<<(CConnection &c, const T &data)
//{
// c.write(&data,sizeof(data));
// return c;
//}
//template <typename T> CConnection & operator>>(CConnection &c, T &data)
//{
// c.read(&data,sizeof(data));
// return c;
//}
//template <typename T> CConnection & operator<(CConnection &c, std::vector<T> &data)
//{
// boost::uint32_t length = data.size();
// c << length;
// for(ui32 i=0;i<length;i++)
// data[i].serialize(c.send,version);
// return c;
//}
//template <typename T> CConnection & operator>(CConnection &c, std::vector<T> &data)
//{
// boost::uint32_t length;
// c >> length;
// data.resize(length);
// for(ui32 i=0;i<length;i++)
// data[i].serialize(c.rec,version);
// return c;
//}
//template <typename T> CConnection & operator<(CConnection &c, std::set<T> &data)
//{
// boost::uint32_t length = data.size();
// c << length;
// for(std::set<T>::iterator i=data.begin();i!=data.end();i++)
// i->serialize(c.send,version);
// return c;
//}
//template <typename T> CConnection & operator>(CConnection &c, std::set<T> &data)
//{
// boost::uint32_t length;
// c >> length;
// data.resize(length);
// T pom;
// for(int i=0;i<length;i++)
// {
// pom.serialize(c.rec,version);
// data.insert(pom);
// }
// return c;
//}
//template <typename T> CConnection & operator<(CConnection &c, T &data)
//{
// data.serialize(c.send,version);
// return c;
//}
//template <typename T> CConnection & operator>(CConnection &c, T &data)
//{
// data.serialize(c.rec,version);
// return c;
//}

32
lib/NetPacks.h Normal file
View File

@ -0,0 +1,32 @@
#include "../global.h"
struct NewTurn
{
struct Hero
{
ui32 id, move, mana; //id is a general serial id
template <typename Handler> void serialize(Handler &h, const int version)
{
h -= id -= move -= mana;
}
};
struct Resources
{
ui8 player;
si32 resources[RESOURCE_QUANTITY];
template <typename Handler> void serialize(Handler &h, const int version)
{
h -= resources;
}
};
std::set<Hero> heroes;
std::set<Resources> res;
template <typename Handler> void serialize(Handler &h, const int version)
{
h += heroes += res;
}
};

View File

@ -50,7 +50,6 @@ CGameHandler::~CGameHandler(void)
} }
void CGameHandler::init(StartInfo *si, int Seed) void CGameHandler::init(StartInfo *si, int Seed)
{ {
Mapa *map = new Mapa(si->mapname); Mapa *map = new Mapa(si->mapname);
gs = new CGameState(); gs = new CGameState();
gs->init(si,map,Seed); gs->init(si,map,Seed);
@ -115,7 +114,7 @@ void CGameHandler::run()
{//init conn. {//init conn.
ui8 quantity, pom; ui8 quantity, pom;
//ui32 seed; //ui32 seed;
(*cc) << gs->scenarioOps->mapname;// << gs->map->checksum << seed; (*cc) << gs->scenarioOps->mapname << gs->map->checksum << gs->seed;
(*cc) >> quantity; (*cc) >> quantity;
for(int i=0;i<quantity;i++) for(int i=0;i<quantity;i++)
{ {

View File

@ -176,7 +176,7 @@
> >
</File> </File>
<File <File
RelativePath=".\server_main.cpp" RelativePath=".\CVCMIServer.cpp"
> >
</File> </File>
</Filter> </Filter>