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

Method fireBreakEvent

Engine/source/sim/actionMap.cpp:1892–1946  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1890}
1891
1892void ActionMap::fireBreakEvent( U32 i, F32 fValue )
1893{
1894 // Match. Issue the break event...
1895 //
1896 F32 value = fValue;
1897 if (smBreakTable[i].flags & Node::Ranged) {
1898 value = (value * 2.0f) - 1.0f;
1899 if (smBreakTable[i].flags & Node::Inverted)
1900 value *= -1.0f;
1901 } else {
1902 if (smBreakTable[i].flags & Node::Inverted)
1903 value = 1.0f - value;
1904 }
1905
1906 if (smBreakTable[i].flags & Node::HasScale)
1907 value *= smBreakTable[i].scaleFactor;
1908
1909 if (smBreakTable[i].flags & Node::HasDeadZone)
1910 {
1911 if (value >= smBreakTable[i].deadZoneBegin &&
1912 value <= smBreakTable[i].deadZoneEnd)
1913 value = 0.0f;
1914 else
1915 {
1916 if( value > 0 )
1917 value = ( value - smBreakTable[i].deadZoneBegin ) * ( 1.f / ( 1.f - smBreakTable[i].deadZoneBegin ) );
1918 else
1919 value = ( value + smBreakTable[i].deadZoneBegin ) * ( 1.f / ( 1.f - smBreakTable[i].deadZoneBegin ) );
1920 }
1921 }
1922
1923 if( smBreakTable[i].flags & Node::NonLinear )
1924 value = ( value < 0.f ? -1.f : 1.f ) * mPow( mFabs( value ), CONST_E );
1925
1926 // Ok, we're all set up, call the function.
1927 if(smBreakTable[i].consoleFunction)
1928 {
1929 if ( smBreakTable[i].consoleFunction[0] )
1930 {
1931 static const char *argv[2];
1932 argv[0] = smBreakTable[i].consoleFunction;
1933 argv[1] = Con::getFloatArg(value);
1934 if (smBreakTable[i].object)
1935 Con::executef(smBreakTable[i].object, argv[0], argv[1]);
1936 else
1937 Con::execute(2, argv);
1938 }
1939 }
1940 else if(smBreakTable[i].breakConsoleCommand)
1941 {
1942 Con::evaluate(smBreakTable[i].breakConsoleCommand);
1943 dFree(smBreakTable[i].breakConsoleCommand);
1944 }
1945 smBreakTable.erase(i);
1946}
1947
1948//------------------------------------------------------------------------------
1949//Context actions

Callers

nothing calls this directly

Calls 8

mPowFunction · 0.85
mFabsFunction · 0.85
getFloatArgFunction · 0.85
executefFunction · 0.85
executeFunction · 0.85
evaluateFunction · 0.85
dFreeFunction · 0.50
eraseMethod · 0.45

Tested by

no test coverage detected