MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / reOrder

Method reOrder

Engine/source/console/simSet.cpp:280–326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

278//-----------------------------------------------------------------------------
279
280bool SimSet::reOrder( SimObject *obj, SimObject *target )
281{
282 MutexHandle handle;
283 handle.lock(mMutex);
284
285 iterator itrS, itrD;
286 if ( (itrS = find(begin(),end(),obj)) == end() )
287 {
288 // object must be in list
289 return false;
290 }
291
292 if ( obj == target )
293 {
294 // don't reorder same object but don't indicate error
295 return true;
296 }
297
298 if ( !target )
299 {
300 // if no target, then put to back of list
301
302 // don't move if already last object
303 if ( itrS != (end()-1) )
304 {
305 // remove object from its current location and push to back of list
306 objectList.erase(itrS);
307 objectList.push_back(obj);
308 }
309 }
310 else
311 {
312 // if target, insert object in front of target
313 if ( (itrD = find(begin(),end(),target)) == end() )
314 // target must be in list
315 return false;
316
317 objectList.erase(itrS);
318
319 // once itrS has been erased, itrD won't be pointing at the
320 // same place anymore - re-find...
321 itrD = find(begin(),end(),target);
322 objectList.insert(itrD, obj);
323 }
324
325 return true;
326}
327
328//-----------------------------------------------------------------------------
329

Callers 1

simSet.cppFile · 0.45

Calls 7

findFunction · 0.85
beginFunction · 0.85
endFunction · 0.85
lockMethod · 0.45
eraseMethod · 0.45
push_backMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected