mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-15 00:05:02 +02:00
Full rework of pre-game interface and networking
New features for players: * Loading for multiplayer. Any save could be used for multiplayer. * Restart for multiplayer. All clients will restart together. * Loading from single save. * Hotseat mixed with network game. Multiple players per client. * Now connection to server could be cancelled. * Return to menu on disconnections instead of crashes. * Restoring of last selected map, save or campaign on next run. TLDR on important changes in engine code: * UI: work with server separated from UI * UI: all explitic blitting replaced with IntObject's * UI: all new code use smart pointers instead of DISPOSE * Gameplay always start through lobby controlled by server. * Threads receiving netpacks now shared for lobby and gameplay. * Campaigns: heroes for crossover now serialized as JsonNode.
This commit is contained in:
@ -184,11 +184,6 @@ bool TerrainTile::isWater() const
|
||||
return terType == ETerrainType::WATER;
|
||||
}
|
||||
|
||||
const int CMapHeader::MAP_SIZE_SMALL = 36;
|
||||
const int CMapHeader::MAP_SIZE_MIDDLE = 72;
|
||||
const int CMapHeader::MAP_SIZE_LARGE = 108;
|
||||
const int CMapHeader::MAP_SIZE_XLARGE = 144;
|
||||
|
||||
void CMapHeader::setupEvents()
|
||||
{
|
||||
EventCondition victoryCondition(EventCondition::STANDARD_WIN);
|
||||
@ -269,6 +264,8 @@ CMap::~CMap()
|
||||
|
||||
for(auto quest : quests)
|
||||
quest.dellNull();
|
||||
|
||||
resetStaticData();
|
||||
}
|
||||
|
||||
void CMap::removeBlockVisTiles(CGObjectInstance * obj, bool total)
|
||||
@ -647,3 +644,11 @@ CMapEditManager * CMap::getEditManager()
|
||||
if(!editManager) editManager = make_unique<CMapEditManager>(this);
|
||||
return editManager.get();
|
||||
}
|
||||
|
||||
void CMap::resetStaticData()
|
||||
{
|
||||
CGKeys::reset();
|
||||
CGMagi::reset();
|
||||
CGObelisk::reset();
|
||||
CGTownInstance::reset();
|
||||
}
|
||||
|
Reference in New Issue
Block a user