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

Function AddObject

Source/objects.cpp:4100–4227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4098}
4099
4100Object *AddObject(_object_id objType, Point objPos)
4101{
4102 if (ActiveObjectCount >= MAXOBJECTS)
4103 return nullptr;
4104
4105 int oi = AvailableObjects[0];
4106 AvailableObjects[0] = AvailableObjects[MAXOBJECTS - 1 - ActiveObjectCount];
4107 ActiveObjects[ActiveObjectCount] = oi;
4108 dObject[objPos.x][objPos.y] = oi + 1;
4109 Object &object = Objects[oi];
4110 SetupObject(object, objPos, objType);
4111 switch (object._otype) {
4112 case OBJ_L1LDOOR:
4113 case OBJ_L1RDOOR:
4114 case OBJ_L2LDOOR:
4115 case OBJ_L2RDOOR:
4116 case OBJ_L3LDOOR:
4117 case OBJ_L3RDOOR:
4118 case OBJ_L5LDOOR:
4119 case OBJ_L5RDOOR:
4120 AddDoor(object);
4121 break;
4122 case OBJ_BOOK2R:
4123 object.InitializeBook({ SetPiece.position, WorldTileSize(SetPiece.size.width + 1, SetPiece.size.height + 1) });
4124 break;
4125 case OBJ_CHEST1:
4126 case OBJ_CHEST2:
4127 case OBJ_CHEST3:
4128 AddChest(object);
4129 break;
4130 case OBJ_TCHEST1:
4131 case OBJ_TCHEST2:
4132 case OBJ_TCHEST3:
4133 AddChest(object);
4134 object._oTrapFlag = true;
4135 if (leveltype == DTYPE_CATACOMBS) {
4136 object._oVar4 = GenerateRnd(2);
4137 } else {
4138 object._oVar4 = GenerateRnd(3);
4139 }
4140 break;
4141 case OBJ_SARC:
4142 case OBJ_L5SARC:
4143 AddSarcophagus(object);
4144 break;
4145 case OBJ_FLAMEHOLE:
4146 AddFlameTrap(object);
4147 break;
4148 case OBJ_FLAMELVR:
4149 AddFlameLever(object);
4150 break;
4151 case OBJ_WATER:
4152 object._oAnimFrame = 1;
4153 break;
4154 case OBJ_TRAPL:
4155 case OBJ_TRAPR:
4156 AddTrap(object);
4157 break;

Callers 15

InitRndLocObjFunction · 0.85
InitRndLocBigObjFunction · 0.85
InitRndLocObj5x5Function · 0.85
AddTorturesFunction · 0.85
AddCandlesFunction · 0.85
AddBookLeverFunction · 0.85
InitRndBarrelsFunction · 0.85
AddL2TorchesFunction · 0.85
AddObjTrapsFunction · 0.85
LoadMapObjectsFunction · 0.85
AddCryptStoryBookFunction · 0.85
AddNakrulLeverFunction · 0.85

Calls 15

SetupObjectFunction · 0.85
AddDoorFunction · 0.85
AddChestFunction · 0.85
GenerateRndFunction · 0.85
AddSarcophagusFunction · 0.85
AddFlameTrapFunction · 0.85
AddFlameLeverFunction · 0.85
AddTrapFunction · 0.85
AddBarrelFunction · 0.85
AddShrineFunction · 0.85
AddBookcaseFunction · 0.85
AdvanceRndSeedFunction · 0.85

Tested by

no test coverage detected