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

Function UpdateTrapState

Source/objects.cpp:4229–4265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4227}
4228
4229bool UpdateTrapState(Object &trap)
4230{
4231 if (trap._oVar4 != 0)
4232 return false;
4233
4234 Object &trigger = ObjectAtPosition({ trap._oVar1, trap._oVar2 });
4235 switch (trigger._otype) {
4236 case OBJ_L1LDOOR:
4237 case OBJ_L1RDOOR:
4238 case OBJ_L2LDOOR:
4239 case OBJ_L2RDOOR:
4240 case OBJ_L3LDOOR:
4241 case OBJ_L3RDOOR:
4242 case OBJ_L5LDOOR:
4243 case OBJ_L5RDOOR:
4244 if (trigger._oVar4 == DOOR_CLOSED && trigger._oTrapFlag)
4245 return false;
4246 break;
4247 case OBJ_LEVER:
4248 case OBJ_CHEST1:
4249 case OBJ_CHEST2:
4250 case OBJ_CHEST3:
4251 case OBJ_SWITCHSKL:
4252 case OBJ_SARC:
4253 case OBJ_L5LEVER:
4254 case OBJ_L5SARC:
4255 if (trigger._oSelFlag != 0 && trigger._oTrapFlag)
4256 return false;
4257 break;
4258 default:
4259 return false;
4260 }
4261
4262 trap._oVar4 = 1;
4263 trigger._oTrapFlag = false;
4264 return true;
4265}
4266
4267void OperateTrap(Object &trap)
4268{

Callers 2

OperateTrapFunction · 0.85
DeltaLoadLevelFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected