| 4821 | } |
| 4822 | |
| 4823 | void SyncObjectAnim(Object &object) |
| 4824 | { |
| 4825 | object_graphic_id index = AllObjects[object._otype].ofindex; |
| 4826 | |
| 4827 | if (!HeadlessMode) { |
| 4828 | const auto &found = std::find(std::begin(ObjFileList), std::end(ObjFileList), index); |
| 4829 | if (found == std::end(ObjFileList)) { |
| 4830 | LogCritical("Unable to find object_graphic_id {} in list of objects to load, level generation error.", static_cast<int>(index)); |
| 4831 | return; |
| 4832 | } |
| 4833 | |
| 4834 | const int i = std::distance(std::begin(ObjFileList), found); |
| 4835 | |
| 4836 | if (pObjCels[i]) { |
| 4837 | object._oAnimData.emplace(*pObjCels[i]); |
| 4838 | } else { |
| 4839 | object._oAnimData = std::nullopt; |
| 4840 | } |
| 4841 | } |
| 4842 | |
| 4843 | switch (object._otype) { |
| 4844 | case OBJ_L1LDOOR: |
| 4845 | case OBJ_L1RDOOR: |
| 4846 | case OBJ_L2LDOOR: |
| 4847 | case OBJ_L2RDOOR: |
| 4848 | case OBJ_L3LDOOR: |
| 4849 | case OBJ_L3RDOOR: |
| 4850 | case OBJ_L5LDOOR: |
| 4851 | case OBJ_L5RDOOR: |
| 4852 | SyncDoor(object); |
| 4853 | break; |
| 4854 | case OBJ_CRUX1: |
| 4855 | case OBJ_CRUX2: |
| 4856 | case OBJ_CRUX3: |
| 4857 | SyncCrux(object); |
| 4858 | break; |
| 4859 | case OBJ_LEVER: |
| 4860 | case OBJ_L5LEVER: |
| 4861 | case OBJ_BOOK2L: |
| 4862 | case OBJ_SWITCHSKL: |
| 4863 | SyncLever(object); |
| 4864 | break; |
| 4865 | case OBJ_BOOK2R: |
| 4866 | case OBJ_BLINDBOOK: |
| 4867 | case OBJ_STEELTOME: |
| 4868 | SyncQSTLever(object); |
| 4869 | break; |
| 4870 | case OBJ_PEDESTAL: |
| 4871 | SyncPedestal(object); |
| 4872 | break; |
| 4873 | default: |
| 4874 | break; |
| 4875 | } |
| 4876 | } |
| 4877 | |
| 4878 | StringOrView Object::name() const |
| 4879 | { |
no test coverage detected