private void ConstructAndShowCalltip(int currentPos, int selectedParameter, ScriptStruct owningStruct, ScriptToken func)
        {
            int selectionStart = 0, selectionEnd = 0;
            string callTip;

            if (func is ScriptFunction)
            {
                callTip = ConstructFunctionCalltipText((ScriptFunction)func, owningStruct, selectedParameter, out selectionStart, out selectionEnd);
            }
            else
            {
                callTip = ConstructVariableCalltipText((ScriptVariable)func, owningStruct);
            }

            if (callTip != null)
            {
                if (!string.IsNullOrEmpty(func.Description))
                {
                    callTip += "\n" + func.Description;
                }

                this.scintillaControl1.CallTipShow(currentPos, callTip);
                this.scintillaControl1.CallTipSetHlt(selectionStart, selectionEnd);
            }
        }
 private bool ShouldShowThis(ScriptToken token)
 {
     Settings gameSettings = Factory.AGSEditor.CurrentGame.Settings;
     if ((token.IfNDefOnly == "STRICT") && (gameSettings.EnforceObjectBasedScript))
     {
         return false;
     }
     if ((token.IfDefOnly == "STRICT") && (!gameSettings.EnforceObjectBasedScript))
     {
         return false;
     }
     if ((token.IfNDefOnly == "STRICT_STRINGS") && (gameSettings.EnforceNewStrings))
     {
         return false;
     }
     if ((token.IfDefOnly == "STRICT_STRINGS") && (!gameSettings.EnforceNewStrings))
     {
         return false;
     }
     if ((token.IfNDefOnly == "STRICT_AUDIO") && (gameSettings.EnforceNewAudio))
     {
         return false;
     }
     if ((token.IfDefOnly == "STRICT_AUDIO") && (!gameSettings.EnforceNewAudio))
     {
         return false;
     }
     return true;
 }
Exemple #3
0
 private bool ShouldShowThis(ScriptToken token, List<ScriptDefine> defines)
 {
     Settings gameSettings = Factory.AGSEditor.CurrentGame.Settings;
     if ((token.IfNDefOnly == "STRICT") && (gameSettings.EnforceObjectBasedScript))
     {
         return false;
     }
     if ((token.IfDefOnly == "STRICT") && (!gameSettings.EnforceObjectBasedScript))
     {
         return false;
     }
     if ((token.IfNDefOnly == "STRICT_STRINGS") && (gameSettings.EnforceNewStrings))
     {
         return false;
     }
     if ((token.IfDefOnly == "STRICT_STRINGS") && (!gameSettings.EnforceNewStrings))
     {
         return false;
     }
     if ((token.IfNDefOnly == "STRICT_AUDIO") && (gameSettings.EnforceNewAudio))
     {
         return false;
     }
     if ((token.IfDefOnly == "STRICT_AUDIO") && (!gameSettings.EnforceNewAudio))
     {
         return false;
     }
     if ((token.IfNDefOnly == "NEW_DIALOGOPTS_API") && (!gameSettings.UseOldCustomDialogOptionsAPI))
     {
         return false;
     }
     if ((token.IfDefOnly == "NEW_DIALOGOPTS_API") && (gameSettings.UseOldCustomDialogOptionsAPI))
     {
         return false;
     }
     if (token.IfNDefOnly != null && token.IfNDefOnly.StartsWith("SCRIPT_API_"))
     {
         ScriptAPIVersion? v = GetAPIVersionFromString(token.IfNDefOnly.Substring("SCRIPT_API_".Length));
         if (v.HasValue && v <= gameSettings.ScriptAPIVersionReal)
             return false;
     }
     if (token.IfDefOnly != null && token.IfDefOnly.StartsWith("SCRIPT_API_"))
     {
         ScriptAPIVersion? v = GetAPIVersionFromString(token.IfDefOnly.Substring("SCRIPT_API_".Length));
         if (v.HasValue && v > gameSettings.ScriptAPIVersionReal)
             return false;
     }
     if (token.IfNDefOnly != null && token.IfNDefOnly.StartsWith("SCRIPT_COMPAT_"))
     {
         ScriptAPIVersion? v = GetAPIVersionFromString(token.IfNDefOnly.Substring("SCRIPT_COMPAT_".Length));
         if (v.HasValue && v >= gameSettings.ScriptCompatLevelReal)
             return false;
     }
     if (token.IfDefOnly != null && token.IfDefOnly.StartsWith("SCRIPT_COMPAT_"))
     {
         ScriptAPIVersion? v = GetAPIVersionFromString(token.IfDefOnly.Substring("SCRIPT_COMPAT_".Length));
         if (v.HasValue && v < gameSettings.ScriptCompatLevelReal)
             return false;
     }
     // TODO: AutoComplete feature in AGS is implemented in confusing and messy way. Thus, it does not
     // use same technique for knowing which parts of the script should be disabled (by ifdef/ifndef)
     // as precompiler. Instead it makes its own parsing, and somewhat limits perfomance and capabilities.
     // This is (one) reason why all those checks are made here explicitly, instead of relying on some
     // prefetched macro list.
     if (token.IfNDefOnly != null && token.IfNDefOnly.StartsWith("STRICT_IN_"))
     {
         ScriptAPIVersion? v = GetAPIVersionFromString(token.IfNDefOnly.Substring("STRICT_IN_".Length));
         if (v.HasValue && (gameSettings.EnforceObjectBasedScript && v <= gameSettings.ScriptCompatLevelReal))
             return false;
     }
     if (token.IfDefOnly != null && token.IfDefOnly.StartsWith("STRICT_IN_"))
     {
         ScriptAPIVersion? v = GetAPIVersionFromString(token.IfDefOnly.Substring("STRICT_IN_".Length));
         if (v.HasValue && !(gameSettings.EnforceObjectBasedScript && v <= gameSettings.ScriptCompatLevelReal))
             return false;
     }
     return true;
 }