| 1461 | } |
| 1462 | |
| 1463 | bool LevelHandler::SerializeResumableToStream(Stream& dest) |
| 1464 | { |
| 1465 | std::uint8_t flags = 0; |
| 1466 | if (_isReforged) flags |= 0x01; |
| 1467 | if (_cheatsUsed) flags |= 0x02; |
| 1468 | dest.WriteValue<std::uint8_t>(flags); |
| 1469 | |
| 1470 | auto p = _levelName.partition('/'); |
| 1471 | |
| 1472 | dest.WriteValue<std::uint8_t>((std::uint8_t)p[0].size()); |
| 1473 | dest.Write(p[0].data(), (std::uint32_t)p[0].size()); |
| 1474 | dest.WriteValue<std::uint8_t>((std::uint8_t)p[2].size()); |
| 1475 | dest.Write(p[2].data(), (std::uint32_t)p[2].size()); |
| 1476 | |
| 1477 | dest.WriteValue<std::uint8_t>((std::uint8_t)_difficulty); |
| 1478 | dest.WriteVariableUint64(_elapsedMillisecondsBegin); |
| 1479 | dest.WriteValueAsLE<float>(_checkpointFrames); |
| 1480 | dest.WriteValueAsLE<float>(_waterLevel); |
| 1481 | dest.WriteValue<std::uint8_t>((std::uint8_t)_weatherType); |
| 1482 | dest.WriteValue<std::uint8_t>(_weatherIntensity); |
| 1483 | |
| 1484 | _tileMap->SerializeResumableToStream(dest, true); |
| 1485 | _eventMap->SerializeResumableToStream(dest, true); |
| 1486 | |
| 1487 | std::size_t playerCount = _players.size(); |
| 1488 | dest.WriteValue<std::uint8_t>((std::uint8_t)playerCount); |
| 1489 | for (std::size_t i = 0; i < playerCount; i++) { |
| 1490 | _players[i]->SerializeResumableToStream(dest); |
| 1491 | } |
| 1492 | |
| 1493 | return true; |
| 1494 | } |
| 1495 | |
| 1496 | void LevelHandler::OnTileFrozen(std::int32_t x, std::int32_t y) |
| 1497 | { |
no test coverage detected