| 1583 | } |
| 1584 | |
| 1585 | void SaveObject(SaveHelper &file, const Object &object) |
| 1586 | { |
| 1587 | file.WriteLE<int32_t>(ConvertToHellfireObject(object._otype)); |
| 1588 | file.WriteLE<int32_t>(object.position.x); |
| 1589 | file.WriteLE<int32_t>(object.position.y); |
| 1590 | file.WriteLE<uint32_t>(object.applyLighting ? 1 : 0); |
| 1591 | file.WriteLE<uint32_t>(object._oAnimFlag ? 1 : 0); |
| 1592 | file.Skip(4); // Skip pointer _oAnimData |
| 1593 | file.WriteLE<int32_t>(object._oAnimDelay); |
| 1594 | file.WriteLE<int32_t>(object._oAnimCnt); |
| 1595 | file.WriteLE<uint32_t>(object._oAnimLen); |
| 1596 | file.WriteLE<uint32_t>(object._oAnimFrame); |
| 1597 | file.WriteLE<int32_t>(object._oAnimWidth); |
| 1598 | file.WriteLE<int32_t>(CalculateWidth2(static_cast<int>(object._oAnimWidth))); // Write _oAnimWidth2 for vanilla compatibility |
| 1599 | file.WriteLE<uint32_t>(object._oDelFlag ? 1 : 0); |
| 1600 | file.WriteLE<int8_t>(object._oBreak); |
| 1601 | file.Skip(3); // Alignment |
| 1602 | file.WriteLE<uint32_t>(object._oSolidFlag ? 1 : 0); |
| 1603 | file.WriteLE<uint32_t>(object._oMissFlag ? 1 : 0); |
| 1604 | |
| 1605 | file.WriteLE<int8_t>(object._oSelFlag); |
| 1606 | file.Skip(3); // Alignment |
| 1607 | file.WriteLE<uint32_t>(object._oPreFlag ? 1 : 0); |
| 1608 | file.WriteLE<uint32_t>(object._oTrapFlag ? 1 : 0); |
| 1609 | file.WriteLE<uint32_t>(object._oDoorFlag ? 1 : 0); |
| 1610 | file.WriteLE<int32_t>(object._olid); |
| 1611 | file.WriteLE<uint32_t>(object._oRndSeed); |
| 1612 | |
| 1613 | /* Make dynamic light sources unseen when saving level data for level change */ |
| 1614 | int32_t var1 = object._oVar1; |
| 1615 | switch (object._otype) { |
| 1616 | case OBJ_L1LIGHT: |
| 1617 | case OBJ_SKFIRE: |
| 1618 | case OBJ_CANDLE1: |
| 1619 | case OBJ_CANDLE2: |
| 1620 | case OBJ_BOOKCANDLE: |
| 1621 | case OBJ_STORYCANDLE: |
| 1622 | case OBJ_L5CANDLE: |
| 1623 | case OBJ_TORCHL: |
| 1624 | case OBJ_TORCHR: |
| 1625 | case OBJ_TORCHL2: |
| 1626 | case OBJ_TORCHR2: |
| 1627 | case OBJ_BCROSS: |
| 1628 | case OBJ_TBCROSS: |
| 1629 | if (var1 != -1) |
| 1630 | var1 = 0; |
| 1631 | break; |
| 1632 | default: |
| 1633 | break; |
| 1634 | } |
| 1635 | file.WriteLE<int32_t>(var1); |
| 1636 | file.WriteLE<int32_t>(object._oVar2); |
| 1637 | file.WriteLE<int32_t>(object._oVar3); |
| 1638 | file.WriteLE<int32_t>(object._oVar4); |
| 1639 | file.WriteLE<int32_t>(object._oVar5); |
| 1640 | file.WriteLE<uint32_t>(object._oVar6); |
| 1641 | file.WriteLE<int32_t>(object.bookMessage); |
| 1642 | file.WriteLE<int32_t>(object._oVar8); |
no test coverage detected