Writes out a query function call
| 10629 | |
| 10630 | // Writes out a query function call |
| 10631 | void 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, ")"); |