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

Method fireBreakEvent

Engine/source/sim/actionMap.cpp:1755–1809  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1753}
1754
1755void ActionMap::fireBreakEvent( U32 i, F32 fValue )
1756{
1757 // Match. Issue the break event...
1758 //
1759 F32 value = fValue;
1760 if (smBreakTable[i].flags & Node::Ranged) {
1761 value = (value * 2.0f) - 1.0f;
1762 if (smBreakTable[i].flags & Node::Inverted)
1763 value *= -1.0f;
1764 } else {
1765 if (smBreakTable[i].flags & Node::Inverted)
1766 value = 1.0f - value;
1767 }
1768
1769 if (smBreakTable[i].flags & Node::HasScale)
1770 value *= smBreakTable[i].scaleFactor;
1771
1772 if (smBreakTable[i].flags & Node::HasDeadZone)
1773 {
1774 if (value >= smBreakTable[i].deadZoneBegin &&
1775 value <= smBreakTable[i].deadZoneEnd)
1776 value = 0.0f;
1777 else
1778 {
1779 if( value > 0 )
1780 value = ( value - smBreakTable[i].deadZoneBegin ) * ( 1.f / ( 1.f - smBreakTable[i].deadZoneBegin ) );
1781 else
1782 value = ( value + smBreakTable[i].deadZoneBegin ) * ( 1.f / ( 1.f - smBreakTable[i].deadZoneBegin ) );
1783 }
1784 }
1785
1786 if( smBreakTable[i].flags & Node::NonLinear )
1787 value = ( value < 0.f ? -1.f : 1.f ) * mPow( mFabs( value ), CONST_E );
1788
1789 // Ok, we're all set up, call the function.
1790 if(smBreakTable[i].consoleFunction)
1791 {
1792 if ( smBreakTable[i].consoleFunction[0] )
1793 {
1794 static const char *argv[2];
1795 argv[0] = smBreakTable[i].consoleFunction;
1796 argv[1] = Con::getFloatArg(value);
1797 if (smBreakTable[i].object)
1798 Con::executef(smBreakTable[i].object, argv[0], argv[1]);
1799 else
1800 Con::execute(2, argv);
1801 }
1802 }
1803 else if(smBreakTable[i].breakConsoleCommand)
1804 {
1805 Con::evaluate(smBreakTable[i].breakConsoleCommand);
1806 dFree(smBreakTable[i].breakConsoleCommand);
1807 }
1808 smBreakTable.erase(i);
1809}
1810
1811//------------------------------------------------------------------------------
1812

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