MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / WriteQueryFunctionCall

Method WriteQueryFunctionCall

editor/DallasMainDlg.cpp:10631–10689  ·  view source on GitHub ↗

Writes out a query function call

Source from the content-addressed store, hash-verified

10629
10630// Writes out a query function call
10631void CDallasMainDlg::WriteQueryFunctionCall(HTREEITEM query_node) {
10632 tTreeNodeData *data;
10633
10634 if (CurrentOutputFile == NULL || query_node == NULL)
10635 return;
10636
10637 data = (tTreeNodeData *)m_ScriptTree.GetItemData(query_node);
10638 if (data == NULL || data->type != EXPRESSION_NODE)
10639 return;
10640
10641 // Check Query ID validity
10642 if (data->ID < 0 || data->ID >= m_NumQueries) {
10643 cfprintf(CurrentOutputFile, "/* ERROR: Invalid Query Function Encountered!!! */");
10644 return;
10645 }
10646
10647 // Handle the DALLAS custom queries first
10648 if (strcmp(m_QueryDatabase[data->ID].func, "qScriptExecuted_DALLAS") == 0) {
10649 HTREEITEM child_node;
10650 tTreeNodeData *child_data;
10651 child_node = m_ScriptTree.GetChildItem(query_node);
10652 if (child_node == NULL)
10653 return;
10654 child_data = (tTreeNodeData *)m_ScriptTree.GetItemData(child_node);
10655 if (child_data == NULL || child_data->type != PARAMETER_NODE || child_data->ID != SCRIPT_PARAMETER_TYPE)
10656 return;
10657 CString tmp_name = CreateScriptGlobalCtrName(child_data->int_val);
10658 cfprintf(CurrentOutputFile, "(%s > 0)", tmp_name.GetBuffer(0));
10659 return;
10660 }
10661 if (strcmp(m_QueryDatabase[data->ID].func, "qTimesScriptExecuted_DALLAS") == 0) {
10662 HTREEITEM child_node;
10663 tTreeNodeData *child_data;
10664 child_node = m_ScriptTree.GetChildItem(query_node);
10665 if (child_node == NULL)
10666 return;
10667 child_data = (tTreeNodeData *)m_ScriptTree.GetItemData(child_node);
10668 if (child_data == NULL || child_data->type != PARAMETER_NODE || child_data->ID != SCRIPT_PARAMETER_TYPE)
10669 return;
10670 CString tmp_name = CreateScriptGlobalCtrName(child_data->int_val);
10671 cfprintf(CurrentOutputFile, "%s", tmp_name.GetBuffer(0));
10672 return;
10673 }
10674
10675 // Write out the function name
10676 cfprintf(CurrentOutputFile, "%s(", m_QueryDatabase[data->ID].func);
10677
10678 // Write out the parameter arguments
10679 HTREEITEM param_node;
10680
10681 param_node = m_ScriptTree.GetChildItem(query_node);
10682 while (param_node != NULL) {
10683 WriteFunctionParameter(param_node);
10684 param_node = m_ScriptTree.GetNextSiblingItem(param_node);
10685 if (param_node != NULL)
10686 cfprintf(CurrentOutputFile, ", ");
10687 }
10688 cfprintf(CurrentOutputFile, ")");

Callers

nothing calls this directly

Calls 2

cfprintfFunction · 0.85
GetBufferMethod · 0.80

Tested by

no test coverage detected