MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / Update

Method Update

TombEngine/Objects/Generic/Object/BridgeObject.cpp:57–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55 }
56
57 void BridgeObject::Update(const ItemInfo& item)
58 {
59 if (!_isEnabled)
60 return;
61
62 if (item.Flags & IFLAG_KILLED)
63 {
64 Disable(item);
65 return;
66 }
67
68 if (item.Pose == _prevTransform && item.RoomNumber == _prevRoomNumber)
69 return;
70
71 UpdateCollisionMesh(item);
72 UpdateAttractor(item);
73 UpdateSectorAssignments(item);
74
75 // Update room bridge trees.
76 if (item.Pose != _prevTransform && item.RoomNumber == _prevRoomNumber)
77 {
78 auto& room = g_Level.Rooms[item.RoomNumber];
79 room.Bridges.Move(item.Index, item.GetAabb());
80 }
81 else if (item.RoomNumber != _prevRoomNumber)
82 {
83 auto& room = g_Level.Rooms[item.RoomNumber];
84 auto& prevRoom = g_Level.Rooms[_prevRoomNumber];
85
86 room.Bridges.Insert(item.Index, item.GetAabb());
87 prevRoom.Bridges.Remove(item.Index);
88 }
89
90 // Store previous parameters.
91 _prevTransform = item.Pose;
92 _prevRoomNumber = item.RoomNumber;
93 _prevAabb = item.GetAabb();
94 _prevObb = item.GetObb();
95 }
96
97 void BridgeObject::Enable(const ItemInfo& item)
98 {

Callers 4

FallingBlockControlFunction · 0.45
ControlCrumblingPlatformFunction · 0.45
TrapDoorControlFunction · 0.45
ControlBridgeFunction · 0.45

Calls 5

MoveMethod · 0.45
GetAabbMethod · 0.45
InsertMethod · 0.45
RemoveMethod · 0.45
GetObbMethod · 0.45

Tested by

no test coverage detected