void FAPythonFuncs::startGame() { auto world = FAWorld::World::get(); world->setLevel(0); auto level = world->getCurrentLevel(); auto player = world->getCurrentPlayer(); player->mPos = FAWorld::Position(level->upStairsPos().first, level->upStairsPos().second); mEngine.unPause(); mGuiManager.showIngameGui(); }
void NetManager::readClientPacket(ENetEvent& event) { if(event.packet->flags & ENET_PACKET_FLAG_RELIABLE) { int32_t typeHeader; size_t position = 0; readFromPacket(event.packet, position, typeHeader); switch(typeHeader) { case ReliableMessageKind::Sprite: { readSpriteRequest(event.packet, event.peer, position); break; } } } else { ClientPacket data; size_t position = 0; readFromPacket(event.packet, position, data); auto world = FAWorld::World::get(); auto player = mServerPlayerList[event.peer->connectID]; player->destination().first = data.destX; player->destination().second = data.destY; if(data.levelIndex != -1 && (player->getLevel() == NULL || data.levelIndex != (int32_t)player->getLevel()->getLevelIndex())) { auto level = world->getLevel(data.levelIndex); if(player->getLevel() != NULL && data.levelIndex < (int32_t)player->getLevel()->getLevelIndex()) player->mPos = FAWorld::Position(level->downStairsPos().first, level->downStairsPos().second); else player->mPos = FAWorld::Position(level->upStairsPos().first, level->upStairsPos().second); player->setLevel(level); } } }