Ultima modifica:
Buongiorno, un bugfix che rilasciai nel 2016 o 2017 (forse anche qui non ricordo).
Succede generalmente su sorgenti vergini quando cerchi di compilare con Boost > 1.43.
File game/src/vid.h cambiare tutto il contenuto in questo
Creare un nuovo file chiamato vid.cpp e incollare questo
Quello che faccio qui, è creare una definizione per calcolare l'hash di vid (fatto in maniera veloce), una altra possibile, e forse più funzionale, modifica sarebbe quella di cambiare boost::unordered_map con std::unordered_map (però std::unordered_map è disponibile solo su C++11 o superiore).
è necessario aggiungere vid.cpp nel proprio progetto di Visual Studio e nel proprio makefile.
Buona fortuna.
Succede generalmente su sorgenti vergini quando cerchi di compilare con Boost > 1.43.
File game/src/vid.h cambiare tutto il contenuto in questo
Codice:
#ifndef __INC_METIN_II_VID_H__
#define __INC_METIN_II_VID_H__
class VID
{
public:
VID() : m_id(0), m_crc(0)
{
}
VID(DWORD id, DWORD crc)
{
m_id = id;
m_crc = crc;
}
VID(const VID &rvid)
{
*this = rvid;
}
const VID & operator = (const VID & rhs)
{
m_id = rhs.m_id;
m_crc = rhs.m_crc;
return *this;
}
bool operator == (const VID & rhs) const
{
return (m_id == rhs.m_id) && (m_crc == rhs.m_crc);
}
bool operator != (const VID & rhs) const
{
return !(*this == rhs);
}
operator DWORD() const
{
return m_id;
}
void Reset()
{
m_id = 0, m_crc = 0;
}
DWORD getID() const {
return m_id;
}
private:
DWORD m_id;
DWORD m_crc;
};
extern std::size_t hash_value(VID const& v);
#endif
Creare un nuovo file chiamato vid.cpp e incollare questo
Codice:
#include "stdafx.h"
#include "vid.h"
#include <boost/functional/hash.hpp>
// 16.06.2016 Soluzione dell'Hash della classe VID || Arves100 ||
std::size_t hash_value(VID const& v) {
boost::hash<DWORD> hasher;
return hasher(v.getID());
}
Quello che faccio qui, è creare una definizione per calcolare l'hash di vid (fatto in maniera veloce), una altra possibile, e forse più funzionale, modifica sarebbe quella di cambiare boost::unordered_map con std::unordered_map (però std::unordered_map è disponibile solo su C++11 o superiore).
è necessario aggiungere vid.cpp nel proprio progetto di Visual Studio e nel proprio makefile.
Buona fortuna.