MCPcopy Create free account
hub / github.com/diasurgical/DevilutionX / SetupObject

Function SetupObject

Source/objects.cpp:768–812  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

766}
767
768void SetupObject(Object &object, Point position, _object_id ot)
769{
770 const ObjectData &objectData = AllObjects[ot];
771 object._otype = ot;
772 object_graphic_id ofi = objectData.ofindex;
773 object.position = position;
774
775 if (!HeadlessMode) {
776 const auto &found = std::find(std::begin(ObjFileList), std::end(ObjFileList), ofi);
777 if (found == std::end(ObjFileList)) {
778 LogCritical("Unable to find object_graphic_id {} in list of objects to load, level generation error.", static_cast<int>(ofi));
779 return;
780 }
781
782 const int j = std::distance(std::begin(ObjFileList), found);
783
784 if (pObjCels[j]) {
785 object._oAnimData.emplace(*pObjCels[j]);
786 } else {
787 object._oAnimData = std::nullopt;
788 }
789 }
790 object._oAnimFlag = objectData.isAnimated();
791 if (object._oAnimFlag) {
792 object._oAnimDelay = objectData.animDelay;
793 object._oAnimCnt = GenerateRnd(object._oAnimDelay);
794 object._oAnimLen = objectData.animLen;
795 object._oAnimFrame = GenerateRnd(object._oAnimLen - 1) + 1;
796 } else {
797 object._oAnimDelay = 1000;
798 object._oAnimCnt = 0;
799 object._oAnimLen = objectData.animLen;
800 object._oAnimFrame = objectData.animDelay;
801 }
802 object._oAnimWidth = objectData.animWidth;
803 object._oSolidFlag = objectData.isSolid() ? 1 : 0;
804 object._oMissFlag = objectData.missilesPassThrough() ? 1 : 0;
805 object.applyLighting = objectData.applyLighting();
806 object._oDelFlag = false;
807 object._oBreak = objectData.isBreakable() ? 1 : 0;
808 object._oSelFlag = objectData.selFlag;
809 object._oPreFlag = false;
810 object._oTrapFlag = false;
811 object._oDoorFlag = false;
812}
813
814void AddCryptBook(_object_id ot, int v2, Point position)
815{

Callers 2

AddCryptBookFunction · 0.85
AddObjectFunction · 0.85

Calls 9

beginFunction · 0.85
endFunction · 0.85
LogCriticalFunction · 0.85
GenerateRndFunction · 0.85
isAnimatedMethod · 0.80
isSolidMethod · 0.80
missilesPassThroughMethod · 0.80
applyLightingMethod · 0.80
isBreakableMethod · 0.80

Tested by

no test coverage detected