MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / _setModeField

Method _setModeField

Engine/source/T3D/camera.cpp:1370–1420  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1368//-----------------------------------------------------------------------------
1369
1370bool Camera::_setModeField( void *object, const char *index, const char *data )
1371{
1372 Camera *cam = static_cast<Camera*>( object );
1373
1374 if( dStricmp(data, "Fly") == 0 )
1375 {
1376 cam->setFlyMode();
1377 return false; // already changed mode
1378 }
1379
1380 else if( dStricmp(data, "EditOrbit" ) == 0 )
1381 {
1382 cam->setEditOrbitMode();
1383 return false; // already changed mode
1384 }
1385
1386 else if( (dStricmp(data, "OrbitObject") == 0 && cam->mMode != OrbitObjectMode) ||
1387 (dStricmp(data, "TrackObject") == 0 && cam->mMode != TrackObjectMode) ||
1388 (dStricmp(data, "OrbitPoint") == 0 && cam->mMode != OrbitPointMode) )
1389 {
1390 Con::warnf("Couldn't change Camera mode to %s: required information missing. Use camera.set%s().", data, data);
1391 return false; // don't change the mode - not valid
1392 }
1393
1394 else if( dStricmp(data, "OrbitObject") != 0 &&
1395 dStricmp(data, "TrackObject") != 0 &&
1396 bool(cam->mOrbitObject) )
1397 {
1398 cam->clearProcessAfter();
1399 cam->clearNotify(cam->mOrbitObject);
1400 cam->mOrbitObject = NULL;
1401 }
1402
1403 // make sure the requested mode is supported, and set it
1404 // NOTE: The _CameraMode namespace is generated by ImplementEnumType above
1405
1406 const EngineEnumTable& enums = *( TYPE< CameraMotionMode >()->getEnumTable() );
1407 const U32 numValues = enums.getNumValues();
1408
1409 for( S32 i = 0; i < numValues; ++i)
1410 {
1411 if( dStricmp(data, enums[i].mName) == 0 )
1412 {
1413 cam->mMode = (CameraMotionMode) enums[i].mInt;
1414 return false;
1415 }
1416 }
1417
1418 Con::warnf("Unsupported camera mode: %s", data);
1419 return false;
1420}
1421
1422//-----------------------------------------------------------------------------
1423

Callers

nothing calls this directly

Calls 8

dStricmpFunction · 0.85
setEditOrbitModeMethod · 0.80
clearNotifyMethod · 0.80
getNumValuesMethod · 0.80
warnfFunction · 0.50
setFlyModeMethod · 0.45
clearProcessAfterMethod · 0.45
getEnumTableMethod · 0.45

Tested by

no test coverage detected