BVB Source Codes

CRYENGINE Show FlowCVarsNode.cpp Source code

Return Download CRYENGINE: download FlowCVarsNode.cpp Source code - Download CRYENGINE Source code - Type:.cpp
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #include "StdAfx.h"
  4.  
  5. #include <CryFlowGraph/IFlowBaseNode.h>
  6.  
  7. #define ALLOW_CVAR_FLOWNODE // uncomment this to recover the functionality
  8.  
  9. class CFlowNode_CVar : public CFlowBaseNode<eNCT_Singleton>
  10. {
  11. public:
  12.         CFlowNode_CVar(SActivationInfo* pActInfo) {}
  13.  
  14.         enum EInPorts
  15.         {
  16.                 SET = 0,
  17.                 GET,
  18.                 NAME,
  19.                 VALUE,
  20.         };
  21.         enum EOutPorts
  22.         {
  23.                 CURVALUE = 0,
  24.         };
  25.  
  26.         virtual void GetConfiguration(SFlowNodeConfig& config)
  27.         {
  28.                 static const SInputPortConfig in_config[] = {
  29.                         InputPortConfig<SFlowSystemVoid>("Set", _HELP("Trigger to Set CVar's value")),
  30.                         InputPortConfig<SFlowSystemVoid>("Get", _HELP("Trigger to Get CVar's value")),
  31.                         InputPortConfig<string>("CVar",         _HELP("Name of the CVar to set/get [case-INsensitive]")),
  32.                         InputPortConfig<string>("Value",        _HELP("Value of the CVar to set")),
  33.                         { 0 }
  34.                 };
  35.                 static const SOutputPortConfig out_config[] = {
  36.                         OutputPortConfig<string>("CurValue", _HELP("Current Value of the CVar [Triggered on Set/Get]")),
  37.                         { 0 }
  38.                 };
  39. #ifdef ALLOW_CVAR_FLOWNODE
  40.                 config.sDescription = _HELP("Sets/Gets the value of a console variable (CVar).");
  41. #else
  42.                 config.sDescription = _HELP("---- this node is currently disabled in code ------");
  43. #endif
  44.                 config.pInputPorts = in_config;
  45.                 config.pOutputPorts = out_config;
  46.                 config.SetCategory(EFLN_DEBUG);
  47.         }
  48.  
  49.         virtual void ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  50.         {
  51. #if defined(ALLOW_CVAR_FLOWNODE)
  52.                 if (event == eFE_Activate)
  53.                 {
  54.                         const bool isSet = (IsPortActive(pActInfo, SET));
  55.                         const bool isGet = (IsPortActive(pActInfo, GET));
  56.                         if (!isGet && !isSet)
  57.                                 return;
  58.  
  59.                         const string& cvar = GetPortString(pActInfo, NAME);
  60.                         ICVar* pICVar = gEnv->pConsole->GetCVar(cvar.c_str());
  61.                         if (pICVar != 0)
  62.                         {
  63.                                 if (isSet)
  64.                                 {
  65.                                         const string& val = GetPortString(pActInfo, VALUE);
  66.                                         pICVar->Set(val.c_str());
  67.                                 }
  68.                                 const string curVal = pICVar->GetString();
  69.                                 ActivateOutput(pActInfo, CURVALUE, curVal);
  70.                         }
  71.                         else
  72.                         {
  73.                                 CryLogAlways("[flow] Cannot find console variable '%s'", cvar.c_str());
  74.                         }
  75.                 }
  76. #endif
  77.         }
  78.  
  79.         virtual void GetMemoryUsage(ICrySizer* s) const
  80.         {
  81.                 s->Add(*this);
  82.         }
  83. };
  84.  
  85. REGISTER_FLOW_NODE("Debug:ConsoleVariable", CFlowNode_CVar);
  86.  
downloadFlowCVarsNode.cpp Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top