MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / updateFromPacket

Method updateFromPacket

source/entities/Creature.cpp:1604–1647  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1602}
1603
1604void Creature::updateFromPacket(ODPacket& is)
1605{
1606 MovableGameEntity::updateFromPacket(is);
1607
1608 int seatId;
1609 OD_ASSERT_TRUE(is >> mLevel);
1610 OD_ASSERT_TRUE(is >> seatId);
1611 OD_ASSERT_TRUE(is >> mOverlayHealthValue);
1612 OD_ASSERT_TRUE(is >> mOverlayMoodValue);
1613 OD_ASSERT_TRUE(is >> mGroundSpeed);
1614 OD_ASSERT_TRUE(is >> mWaterSpeed);
1615 OD_ASSERT_TRUE(is >> mLavaSpeed);
1616 OD_ASSERT_TRUE(is >> mSpeedModifier);
1617
1618 // We do not scale the creature if it is picked up (because it is already not at its normal size). It will be
1619 // resized anyway when dropped
1620 if(getIsOnMap())
1621 RenderManager::getSingleton().rrScaleCreature(*this);
1622
1623 if(getSeat()->getId() != seatId)
1624 {
1625 Seat* seat = getGameMap()->getSeatById(seatId);
1626 if(seat == nullptr)
1627 {
1628 OD_LOG_ERR("Creature " + getName() + ", wrong seatId=" + Helper::toString(seatId));
1629 }
1630 else
1631 {
1632 setSeat(seat);
1633 }
1634 }
1635
1636 OD_ASSERT_TRUE(is >> seatId);
1637 if(seatId == -1)
1638 mSeatPrison = nullptr;
1639 else
1640 {
1641 mSeatPrison = getGameMap()->getSeatById(seatId);
1642 if(mSeatPrison == nullptr)
1643 {
1644 OD_LOG_ERR("Creature " + getName() + ", wrong seatId=" + Helper::toString(seatId));
1645 }
1646 }
1647}
1648
1649void Creature::updateTilesInSight()
1650{

Callers

nothing calls this directly

Calls 4

rrScaleCreatureMethod · 0.80
getSeatByIdMethod · 0.80
toStringFunction · 0.50
getIdMethod · 0.45

Tested by

no test coverage detected