BVB Source Codes

CRYENGINE Show FlashUIArrayNodes.cpp Source code

Return Download CRYENGINE: download FlashUIArrayNodes.cpp Source code - Download CRYENGINE Source code - Type:.cpp
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. // -------------------------------------------------------------------------
  4. //  File name:   FlashUIArrayNodes.cpp
  5. //  Version:     v1.00
  6. //  Created:     21/4/2011 by Paul Reindell.
  7. //  Description:
  8. // -------------------------------------------------------------------------
  9. //  History:
  10. //
  11. ////////////////////////////////////////////////////////////////////////////
  12. #include "StdAfx.h"
  13. #include "FlashUIArrayNodes.h"
  14.  
  15. #include <CrySystem/Scaleform/IFlashUI.h>
  16.  
  17. // --------------------------------------------------------------
  18. void CFlashUIToArrayNode::GetConfiguration(SFlowNodeConfig& config)
  19. {
  20.         static const SInputPortConfig in_config[] = {
  21.                 InputPortConfig_Void("Set",     "Set this array"),
  22.                 InputPortConfig<int>("Count",   4,                _HELP("Number of elements for this array"),0, _UICONFIG("enum_int:1,2,3,4")),
  23.                 InputPortConfig_AnyType("Val1", "First value"),
  24.                 InputPortConfig_AnyType("Val2", "Second value"),
  25.                 InputPortConfig_AnyType("Val3", "Third value"),
  26.                 InputPortConfig_AnyType("Val4", "Fourth value"),
  27.                 InputPortConfig_Void(0),
  28.                 { 0 }
  29.         };
  30.  
  31.         static const SOutputPortConfig out_config[] = {
  32.                 OutputPortConfig_Void("OnSet",    "On Set this array"),
  33.                 OutputPortConfig<string>("Array", UIARGS_DEFAULT_DELIMITER_NAME " separated list"),
  34.                 { 0 }
  35.         };
  36.  
  37.         config.pInputPorts = in_config;
  38.         config.pOutputPorts = out_config;
  39.         config.sDescription = "Create an UI Array";
  40.         config.SetCategory(EFLN_APPROVED);
  41.  
  42. }
  43.  
  44. void CFlashUIToArrayNode::ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  45. {
  46.         if (event == eFE_Activate && IsPortActive(pActInfo, eI_Set))
  47.         {
  48.                 int count = GetPortInt(pActInfo, eI_Count);
  49.                 int port = eI_Val1;
  50.  
  51.                 SUIArguments args;
  52.                 for (int i = 0; i < count; ++i)
  53.                 {
  54.                         TFlowInputData data = GetPortAny(pActInfo, port + i);
  55.                         string val;
  56.                         data.GetValueWithConversion(val);
  57.                         args.AddArgument(val);
  58.                 }
  59.  
  60.                 ActivateOutput(pActInfo, eO_OnSet, true);
  61.                 ActivateOutput(pActInfo, eO_ArgList, string(args.GetAsString()));
  62.         }
  63. }
  64.  
  65. // --------------------------------------------------------------
  66. void CFlashUIFromArrayNode::GetConfiguration(SFlowNodeConfig& config)
  67. {
  68.         static const SInputPortConfig in_config[] = {
  69.                 InputPortConfig<string>("Array", UIARGS_DEFAULT_DELIMITER_NAME " separated string"),
  70.                 InputPortConfig_Void(0),
  71.                 { 0 }
  72.         };
  73.  
  74.         static const SOutputPortConfig out_config[] = {
  75.                 OutputPortConfig<int>("Count",       "Number of elements"),
  76.                 OutputPortConfig_AnyType("Val1",     "First value"),
  77.                 OutputPortConfig_AnyType("Val2",     "Second value"),
  78.                 OutputPortConfig_AnyType("Val3",     "Third value"),
  79.                 OutputPortConfig_AnyType("Val4",     "Fourth value"),
  80.                 OutputPortConfig<string>("LeftOver", "If Array has more than four elements, this port returns the \"loeftover\" array"),
  81.                 { 0 }
  82.         };
  83.  
  84.         config.pInputPorts = in_config;
  85.         config.pOutputPorts = out_config;
  86.         config.sDescription = "Get Values from UI Array";
  87.         config.SetCategory(EFLN_APPROVED);
  88. }
  89.  
  90. void CFlashUIFromArrayNode::ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  91. {
  92.         if (event == eFE_Activate && IsPortActive(pActInfo, eI_Array))
  93.         {
  94.                 SUIArguments args(GetPortString(pActInfo, eI_Array).c_str());
  95.                 ActivateOutput(pActInfo, eO_Count, args.GetArgCount());
  96.  
  97.                 SUIArguments leftOver;
  98.                 int port = eO_Val1;
  99.  
  100.                 for (int i = 0; i < args.GetArgCount(); ++i)
  101.                 {
  102.                         string arg;
  103.                         args.GetArg(i, arg);
  104.                         if (port + i < eO_LeftOver)
  105.                         {
  106.                                 ActivateOutput(pActInfo, port + i, arg);
  107.                         }
  108.                         else
  109.                         {
  110.                                 leftOver.AddArgument(arg);
  111.                         }
  112.                 }
  113.                 if (leftOver.GetArgCount() > 0)
  114.                 {
  115.                         ActivateOutput(pActInfo, eO_LeftOver, string(leftOver.GetAsString()));
  116.                 }
  117.         }
  118. }
  119.  
  120. // --------------------------------------------------------------
  121. void CFlashUIFromArrayExNode::GetConfiguration(SFlowNodeConfig& config)
  122. {
  123.         static const SInputPortConfig in_config[] = {
  124.                 InputPortConfig_Void("Get",      "Get the value at \"Index\""),
  125.                 InputPortConfig<string>("Array", UIARGS_DEFAULT_DELIMITER_NAME " separated string"),
  126.                 InputPortConfig<int>("Index",    "Index"),
  127.                 InputPortConfig_Void(0),
  128.                 { 0 }
  129.         };
  130.  
  131.         static const SOutputPortConfig out_config[] = {
  132.                 OutputPortConfig_AnyType("Value", "Value of element at \"Index\""),
  133.                 { 0 }
  134.         };
  135.  
  136.         config.pInputPorts = in_config;
  137.         config.pOutputPorts = out_config;
  138.         config.sDescription = "Get specific Value from UI Array";
  139.         config.SetCategory(EFLN_APPROVED);
  140. }
  141.  
  142. void CFlashUIFromArrayExNode::ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  143. {
  144.         if (event == eFE_Activate && IsPortActive(pActInfo, eI_Get))
  145.         {
  146.                 SUIArguments args(GetPortString(pActInfo, eI_Array).c_str());
  147.                 int index = GetPortInt(pActInfo, eI_Index);
  148.                 string arg;
  149.                 if (args.GetArg(index, arg))
  150.                 {
  151.                         ActivateOutput(pActInfo, eO_Val, arg);
  152.                 }
  153.         }
  154. }
  155.  
  156. // --------------------------------------------------------------
  157. void CFlashUIArrayConcatNode::GetConfiguration(SFlowNodeConfig& config)
  158. {
  159.         static const SInputPortConfig in_config[] = {
  160.                 InputPortConfig_Void("Merge",     "Merge the arrays"),
  161.                 InputPortConfig<string>("Array1", UIARGS_DEFAULT_DELIMITER_NAME " separated string"),
  162.                 InputPortConfig<string>("Array2", UIARGS_DEFAULT_DELIMITER_NAME " separated string"),
  163.                 InputPortConfig_Void(0),
  164.                 { 0 }
  165.         };
  166.  
  167.         static const SOutputPortConfig out_config[] = {
  168.                 OutputPortConfig_Void("OnMerge",  "On merged the arrays"),
  169.                 OutputPortConfig<string>("Array", UIARGS_DEFAULT_DELIMITER_NAME " separated list"),
  170.                 { 0 }
  171.         };
  172.  
  173.         config.pInputPorts = in_config;
  174.         config.pOutputPorts = out_config;
  175.         config.sDescription = "Merge two Arrays";
  176.         config.SetCategory(EFLN_APPROVED);
  177. }
  178.  
  179. void CFlashUIArrayConcatNode::ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  180. {
  181.         if (event == eFE_Activate && IsPortActive(pActInfo, eI_Set))
  182.         {
  183.                 SUIArguments newArray(GetPortString(pActInfo, eI_Arr1).c_str());
  184.                 newArray.AddArguments(GetPortString(pActInfo, eI_Arr2).c_str());
  185.                 ActivateOutput(pActInfo, eO_OnSet, true);
  186.                 ActivateOutput(pActInfo, eO_ArgList, string(newArray.GetAsString()));
  187.         }
  188.  
  189. }
  190.  
  191. REGISTER_FLOW_NODE("UI:Util:ToArray", CFlashUIToArrayNode);
  192. REGISTER_FLOW_NODE("UI:Util:FromArray", CFlashUIFromArrayNode);
  193. REGISTER_FLOW_NODE("UI:Util:FromArrayByIndex", CFlashUIFromArrayExNode);
  194. REGISTER_FLOW_NODE("UI:Util:MergeArrays", CFlashUIArrayConcatNode);
  195.  
downloadFlashUIArrayNodes.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