Created
January 20, 2022 16:01
-
-
Save rumblefrog/e1b25177b8d4df230bf1fd61dc8e71bf to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"meta":{"name":"Core","description":"SourceMod Core","author":"AlliedModders LLC"},"source":{"type":"git","merge":null,"repository":"https://github.com/alliedmodders/sourcemod.git","endpoints":null,"patterns":["plugins/include/*.inc"]},"strands":{"regex":{"functions":{"CompileRegex":{"name":"CompileRegex","refLine":144,"docStart":5801,"docEnd":6380,"docs":{"brief":"Precompile a regular expression. Use this if you intend on using the\nsame expression multiple times. Pass the regex handle returned here to\nMatchRegex to check for matches.","tags":[{"tag":"","text":"Precompile a regular expression. Use this if you intend on using the\nsame expression multiple times. Pass the regex handle returned here to\nMatchRegex to check for matches."},{"tag":"param:pattern","text":"The regular expression pattern."},{"tag":"param:flags","text":"General flags for the regular expression."},{"tag":"param:error","text":"Error message encountered, if applicable."},{"tag":"param:maxLen","text":"Maximum string length of the error buffer."},{"tag":"param:errcode","text":"Regex type error code encountered, if applicable."},{"tag":"return","text":"Valid regex handle on success, INVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"bcfef75c5dd00c8b66440e524633c97bbaee4c23","count":5537,"time":1439405577}},"kind":"native","returnType":"Regex","arguments":[{"type":"const char[]","name":"pattern","decl":"const char[] pattern","default":null},{"type":"int","name":"flags","decl":"int flags","default":"0"},{"type":"char[]","name":"error","decl":"char[] error","default":"\"\""},{"type":"int","name":"maxLen","decl":"int maxLen","default":"0"},{"type":"RegexError&","name":"errcode","decl":"RegexError& errcode","default":"REGEX_ERROR_NONE"}]},"SimpleRegexMatch":{"name":"SimpleRegexMatch","refLine":104,"docStart":3722,"docEnd":4328,"docs":{"brief":"Matches a string against a regular expression pattern.","tags":[{"tag":"","text":"Matches a string against a regular expression pattern."},{"tag":"note","text":"If you intend on using the same regular expression pattern\nmultiple times, consider using CompileRegex and MatchRegex\ninstead of making this function reparse the expression each time."},{"tag":"param:str","text":"The string to check."},{"tag":"param:pattern","text":"The regular expression pattern."},{"tag":"param:flags","text":"General flags for the regular expression."},{"tag":"param:error","text":"Error message, if applicable."},{"tag":"param:maxLen","text":"Maximum length of the error buffer."},{"tag":"return","text":"Number of substrings found or -1 on failure."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"const char[]","name":"pattern","decl":"const char[] pattern","default":null},{"type":"int","name":"flags","decl":"int flags","default":"0"},{"type":"char[]","name":"error","decl":"char[] error","default":"\"\""},{"type":"int","name":"maxLen","decl":"int maxLen","default":"0"}]},"__ext_regex_SetNTVOptional":{"name":"__ext_regex_SetNTVOptional","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"7e3b1c395bad82ccfd01c296a417002e063a3537","count":6323,"time":1533582661},"last_updated":{"hash":"7e3b1c395bad82ccfd01c296a417002e063a3537","count":6323,"time":1533582661}},"kind":"public","returnType":"void","arguments":[]},"MatchRegex":{"name":"MatchRegex","refLine":208,"docStart":9218,"docEnd":9711,"docs":{"brief":"Matches a string against a pre-compiled regular expression pattern.","tags":[{"tag":"","text":"Matches a string against a pre-compiled regular expression pattern."},{"tag":"param:regex","text":"Regex Handle from CompileRegex()"},{"tag":"param:str","text":"The string to check."},{"tag":"param:ret","text":"Error code, if applicable."},{"tag":"param:offset","text":"Offset in the string to start searching from."},{"tag":"return","text":"Number of captures found or -1 on failure."},{"tag":"note","text":"Use the regex handle passed to this function to extract\nmatches with GetRegexSubString()."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"ded38676059e7fc4ff99816e75f4c227775932d7","count":6504,"time":1582761124}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"regex","decl":"Handle regex","default":null},{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"RegexError&","name":"ret","decl":"RegexError& ret","default":"REGEX_ERROR_NONE"},{"type":"int","name":"offset","decl":"int offset","default":"0"}]},"GetRegexSubString":{"name":"GetRegexSubString","refLine":88,"docStart":3116,"docEnd":3639,"docs":{"brief":"Returns a matched substring from a regex handle.\nSubstring ids start at 0 and end at substrings-1, where substrings is the number returned\nby MatchRegex","tags":[{"tag":"","text":"Returns a matched substring from a regex handle.\nSubstring ids start at 0 and end at substrings-1, where substrings is the number returned\nby MatchRegex"},{"tag":"param:regex","text":"The regex handle to extract data from."},{"tag":"param:str_id","text":"The index of the expression to get - starts at 0, and ends at substrings - 1."},{"tag":"param:buffer","text":"The buffer to set to the matching substring."},{"tag":"param:maxLen","text":"The maximum string length of the buffer."},{"tag":"return","text":"True if a substring was found, False on fail/error"}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"regex","decl":"Handle regex","default":null},{"type":"int","name":"str_id","decl":"int str_id","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlen","decl":"int maxlen","default":null}]}},"methodmaps":{"Regex":{"name":"Regex","refLine":97,"docStart":4098,"docEnd":4189,"docs":{"brief":"Regular expression objects are used to match or decompose strings based on\npatterns.","tags":[{"tag":"","text":"Regular expression objects are used to match or decompose strings based on\npatterns."}]},"metadata":{"created":{"hash":"bcfef75c5dd00c8b66440e524633c97bbaee4c23","count":5537,"time":1439405577},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"parent":"Handle","methods":{"GetSubString":{"name":"GetSubString","refLine":144,"docStart":5756,"docEnd":6549,"docs":{"brief":"Returns a matched substring from a regex handle.\n\nSubstring ids start at 0 and end at captures-1, where captures is the\nnumber returned by Regex.Match or Regex.CaptureCount.","tags":[{"tag":"","text":"Returns a matched substring from a regex handle.\n\nSubstring ids start at 0 and end at captures-1, where captures is the\nnumber returned by Regex.Match or Regex.CaptureCount."},{"tag":"param:regex","text":"The regex handle to extract data from."},{"tag":"param:str_id","text":"The index of the expression to get - starts at 0, and ends at captures - 1."},{"tag":"param:buffer","text":"The buffer to set to the matching substring."},{"tag":"param:maxlen","text":"The maximum string length of the buffer."},{"tag":"param:match","text":"Match to get the captures for - starts at 0, and ends at MatchCount() -1"},{"tag":"return","text":"True if a substring was found, False on fail/error"},{"tag":"note","text":"str_id = 0 is the full captured string, anything else is the capture group index.\nif Regex.Match is used match can only be 0"}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"str_id","decl":"int str_id","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlen","decl":"int maxlen","default":null},{"type":"int","name":"match","decl":"int match","default":"0"}]},"Match":{"name":"Match","refLine":118,"docStart":4708,"docEnd":5207,"docs":{"brief":"Matches a string against a pre-compiled regular expression pattern.","tags":[{"tag":"","text":"Matches a string against a pre-compiled regular expression pattern."},{"tag":"param:str","text":"The string to check."},{"tag":"param:regex","text":"Regex Handle from CompileRegex()"},{"tag":"param:ret","text":"Error code, if applicable."},{"tag":"param:offset","text":"Offset in the string to start searching from. MatchOffset returns the offset of the match."},{"tag":"return","text":"Number of captures found or -1 on failure."},{"tag":"note","text":"Use the regex handle passed to this function to extract\nmatches with GetSubString()."}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"RegexError&","name":"ret","decl":"RegexError& ret","default":"REGEX_ERROR_NONE"},{"type":"int","name":"offset","decl":"int offset","default":"0"}]},"Regex":{"name":"Regex","refLine":106,"docStart":4221,"docEnd":4570,"docs":{"brief":"Compile a regular expression.","tags":[{"tag":"","text":"Compile a regular expression."},{"tag":"param:pattern","text":"The regular expression pattern."},{"tag":"param:flags","text":"General flags for the regular expression."},{"tag":"param:error","text":"Error message encountered, if applicable."},{"tag":"param:maxLen","text":"Maximum string length of the error buffer."},{"tag":"param:errcode","text":"Regex type error code encountered, if applicable."}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"Regex","arguments":[{"type":"const char[]","name":"pattern","decl":"const char[] pattern","default":null},{"type":"int","name":"flags","decl":"int flags","default":"0"},{"type":"char[]","name":"error","decl":"char[] error","default":"\"\""},{"type":"int","name":"maxLen","decl":"int maxLen","default":"0"},{"type":"RegexError&","name":"errcode","decl":"RegexError& errcode","default":"REGEX_ERROR_NONE"}]},"MatchCount":{"name":"MatchCount","refLine":150,"docStart":6644,"docEnd":6794,"docs":{"brief":"Returns number of matches\n\nWhen using Match this is always 1 or 0 (unless an error occured)","tags":[{"tag":"","text":"Returns number of matches\n\nWhen using Match this is always 1 or 0 (unless an error occured)"},{"tag":"return","text":"Total number of matches found."}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"int","arguments":[]},"MatchAll":{"name":"MatchAll","refLine":128,"docStart":5310,"docEnd":5667,"docs":{"brief":"Gets all matches from a string against a pre-compiled regular expression pattern.","tags":[{"tag":"","text":"Gets all matches from a string against a pre-compiled regular expression pattern."},{"tag":"param:str","text":"The string to check."},{"tag":"param:regex","text":"Regex Handle from CompileRegex()"},{"tag":"param:ret","text":"Error code, if applicable."},{"tag":"return","text":"Number of matches found or -1 on failure."},{"tag":"note","text":"Use GetSubString() and loop from 1 -> totalmatches."}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"RegexError&","name":"ret","decl":"RegexError& ret","default":"REGEX_ERROR_NONE"}]},"CaptureCount":{"name":"CaptureCount","refLine":158,"docStart":6834,"docEnd":7137,"docs":{"brief":"Returns number of captures for a match","tags":[{"tag":"","text":"Returns number of captures for a match"},{"tag":"param:match","text":"Match to get the number of captures for. Match starts at 0, and ends at MatchCount() -1"},{"tag":"return","text":"Number of captures in the match."},{"tag":"note","text":"Use GetSubString() and loop from 1 -> captures -1 for str_id to get all captures"}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"match","decl":"int match","default":"0"}]},"MatchOffset":{"name":"MatchOffset","refLine":164,"docStart":7192,"docEnd":7383,"docs":{"brief":"Returns the string offset of a match.","tags":[{"tag":"","text":"Returns the string offset of a match."},{"tag":"param:match","text":"Match to get the offset of. Match starts at 0, and ends at MatchCount() -1"},{"tag":"return","text":"Offset of the match in the string."}]},"metadata":{"created":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684},"last_updated":{"hash":"5ac33906567c1abb7c9e9630d20eaeb9d0577869","count":6251,"time":1518726684}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"match","decl":"int match","default":"0"}]}},"properties":{}}},"enumstructs":{},"constants":{},"defines":{"PCRE_DOTALL":{"name":"PCRE_DOTALL","refLine":12,"docStart":513,"docEnd":602,"docs":{"brief":"Single line (affects . so that it matches any character, even new line characters).","tags":[{"tag":"","text":"Single line (affects . so that it matches any character, even new line characters)."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00000004"},"PCRE_EXTENDED":{"name":"PCRE_EXTENDED","refLine":13,"docStart":647,"docEnd":706,"docs":{"brief":"Pattern extension (ignore whitespace and # comments).","tags":[{"tag":"","text":"Pattern extension (ignore whitespace and # comments)."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00000008"},"PCRE_UTF8":{"name":"PCRE_UTF8","refLine":15,"docStart":834,"docEnd":855,"docs":{"brief":"Use UTF-8 Chars","tags":[{"tag":"","text":"Use UTF-8 Chars"}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00000800"},"PCRE_NOTEMPTY":{"name":"PCRE_NOTEMPTY","refLine":49,"docStart":2539,"docEnd":2582,"docs":{"brief":"An empty string is not a valid match.","tags":[{"tag":"","text":"An empty string is not a valid match."}]},"metadata":{"created":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744},"last_updated":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744}},"value":"0x00000400"},"PCRE_CASELESS":{"name":"PCRE_CASELESS","refLine":10,"docStart":279,"docEnd":296,"docs":{"brief":"Ignore Case","tags":[{"tag":"","text":"Ignore Case"}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00000001"},"PCRE_MULTILINE":{"name":"PCRE_MULTILINE","refLine":11,"docStart":341,"docEnd":468,"docs":{"brief":"Multilines (affects ^ and $ so that they match the start/end of a line rather than matching the start/end of the string).","tags":[{"tag":"","text":"Multilines (affects ^ and $ so that they match the start/end of a line rather than matching the start/end of the string)."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00000002"},"PCRE_UNGREEDY":{"name":"PCRE_UNGREEDY","refLine":14,"docStart":751,"docEnd":789,"docs":{"brief":"Invert greediness of quantifiers","tags":[{"tag":"","text":"Invert greediness of quantifiers"}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00000200"},"PCRE_DOLLAR_ENDONLY":{"name":"PCRE_DOLLAR_ENDONLY","refLine":47,"docStart":2383,"docEnd":2419,"docs":{"brief":"$ not to match newline at end.","tags":[{"tag":"","text":"$ not to match newline at end."}]},"metadata":{"created":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744},"last_updated":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744}},"value":"0x00000020"},"PCRE_UCP":{"name":"PCRE_UCP","refLine":52,"docStart":2811,"docEnd":2858,"docs":{"brief":"Use Unicode properties for \\ed, \\ew, etc.","tags":[{"tag":"","text":"Use Unicode properties for \\ed, \\ew, etc."}]},"metadata":{"created":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744},"last_updated":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744}},"value":"0x20000000"},"PCRE_ANCHORED":{"name":"PCRE_ANCHORED","refLine":46,"docStart":2311,"docEnd":2341,"docs":{"brief":"Force pattern anchoring.","tags":[{"tag":"","text":"Force pattern anchoring."}]},"metadata":{"created":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744},"last_updated":{"hash":"4e7a9cf30b8a004a1653267aaef690ef625f9fd7","count":3835,"time":1363534744}},"value":"0x00000010"},"PCRE_NO_UTF8_CHECK":{"name":"PCRE_NO_UTF8_CHECK","refLine":16,"docStart":900,"docEnd":985,"docs":{"brief":"Do not check the pattern for UTF-8 validity (only relevant if PCRE_UTF8 is set)","tags":[{"tag":"","text":"Do not check the pattern for UTF-8 validity (only relevant if PCRE_UTF8 is set)"}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":"0x00002000"},"_regex_included":{"name":"_regex_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496}},"value":""}},"enums":{"RegexError":{"name":"RegexError","refLine":58,"docStart":2880,"docEnd":2922,"docs":{"brief":"Regex expression error codes.","tags":[{"tag":"","text":"Regex expression error codes."}]},"metadata":{"created":{"hash":"2f41af814ef5d08b7afa3a0d98787c53ab23544b","count":1843,"time":1200002496},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"entries":{"REGEX_ERROR_BADPARTIAL":{"name":"REGEX_ERROR_BADPARTIAL","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-13"},"REGEX_ERROR_BADMODE":{"name":"REGEX_ERROR_BADMODE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-28"},"REGEX_ERROR_BADCOUNT":{"name":"REGEX_ERROR_BADCOUNT","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-15"},"REGEX_ERROR_EESCAPE":{"name":"REGEX_ERROR_EESCAPE","refLine":70,"docStart":3421,"docEnd":3446,"docs":{"brief":"bad escape sequence","tags":[{"tag":"","text":"bad escape sequence"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_BADNEWLINE":{"name":"REGEX_ERROR_BADNEWLINE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-23"},"REGEX_ERROR_ERANGE":{"name":"REGEX_ERROR_ERANGE","refLine":73,"docStart":3571,"docEnd":3596,"docs":{"brief":"bad range inside []","tags":[{"tag":"","text":"bad range inside []"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_NOSUBSTRING":{"name":"REGEX_ERROR_NOSUBSTRING","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-7"},"REGEX_ERROR_MATCHLIMIT":{"name":"REGEX_ERROR_MATCHLIMIT","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-8"},"REGEX_ERROR_NULLWSLIMIT":{"name":"REGEX_ERROR_NULLWSLIMIT","refLine":100,"docStart":4551,"docEnd":4580,"docs":{"brief":"No longer actually used","tags":[{"tag":"","text":"No longer actually used"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-22"},"REGEX_ERROR_UNKNOWN_OPCODE":{"name":"REGEX_ERROR_UNKNOWN_OPCODE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-5"},"REGEX_ERROR_DFA_UITEM":{"name":"REGEX_ERROR_DFA_UITEM","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-16"},"REGEX_ERROR_SHORTUTF8":{"name":"REGEX_ERROR_SHORTUTF8","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-25"},"REGEX_ERROR_DFA_UCOND":{"name":"REGEX_ERROR_DFA_UCOND","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-17"},"REGEX_ERROR_NOMEMORY":{"name":"REGEX_ERROR_NOMEMORY","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-6"},"REGEX_ERROR_BADENDIANNESS":{"name":"REGEX_ERROR_BADENDIANNESS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-29"},"REGEX_ERROR_INVARG":{"name":"REGEX_ERROR_INVARG","refLine":77,"docStart":3782,"docEnd":3800,"docs":{"brief":"bad argument","tags":[{"tag":"","text":"bad argument"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_ECTYPE":{"name":"REGEX_ERROR_ECTYPE","refLine":69,"docStart":3378,"docEnd":3393,"docs":{"brief":"bad class","tags":[{"tag":"","text":"bad class"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_BADUTF8_OFFSET":{"name":"REGEX_ERROR_BADUTF8_OFFSET","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-11"},"REGEX_ERROR_EBRACE":{"name":"REGEX_ERROR_EBRACE","refLine":66,"docStart":3220,"docEnd":3239,"docs":{"brief":"unbalanced {}","tags":[{"tag":"","text":"unbalanced {}"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_DFA_UMLIMIT":{"name":"REGEX_ERROR_DFA_UMLIMIT","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-18"},"REGEX_ERROR_BADBR":{"name":"REGEX_ERROR_BADBR","refLine":63,"docStart":3065,"docEnd":3098,"docs":{"brief":"invalid repeat counts in {}","tags":[{"tag":"","text":"invalid repeat counts in {}"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_ESPACE":{"name":"REGEX_ERROR_ESPACE","refLine":75,"docStart":3676,"docEnd":3702,"docs":{"brief":"failed to get memory","tags":[{"tag":"","text":"failed to get memory"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_NULL":{"name":"REGEX_ERROR_NULL","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-2"},"REGEX_ERROR_EMPTY":{"name":"REGEX_ERROR_EMPTY","refLine":71,"docStart":3474,"docEnd":3496,"docs":{"brief":"empty expression","tags":[{"tag":"","text":"empty expression"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_EBRACK":{"name":"REGEX_ERROR_EBRACK","refLine":67,"docStart":3267,"docEnd":3286,"docs":{"brief":"unbalanced []","tags":[{"tag":"","text":"unbalanced []"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_JIT_STACKLIMIT":{"name":"REGEX_ERROR_JIT_STACKLIMIT","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-27"},"REGEX_ERROR_ESIZE":{"name":"REGEX_ERROR_ESIZE","refLine":74,"docStart":3624,"docEnd":3648,"docs":{"brief":"expression too big","tags":[{"tag":"","text":"expression too big"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_CALLOUT":{"name":"REGEX_ERROR_CALLOUT","refLine":87,"docStart":4102,"docEnd":4133,"docs":{"brief":"Never used by PCRE itself","tags":[{"tag":"","text":"Never used by PCRE itself"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-9"},"REGEX_ERROR_BADOPTION":{"name":"REGEX_ERROR_BADOPTION","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-3"},"REGEX_ERROR_ESUBREG":{"name":"REGEX_ERROR_ESUBREG","refLine":76,"docStart":3730,"docEnd":3754,"docs":{"brief":"bad back reference","tags":[{"tag":"","text":"bad back reference"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_NONE":{"name":"REGEX_ERROR_NONE","refLine":60,"docStart":2970,"docEnd":2984,"docs":{"brief":"No error","tags":[{"tag":"","text":"No error"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"0"},"REGEX_ERROR_NOMATCH":{"name":"REGEX_ERROR_NOMATCH","refLine":79,"docStart":3834,"docEnd":3858,"docs":{"brief":"No match was found","tags":[{"tag":"","text":"No match was found"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-1"},"REGEX_ERROR_BADUTF8":{"name":"REGEX_ERROR_BADUTF8","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-10"},"REGEX_ERROR_DFA_RECURSE":{"name":"REGEX_ERROR_DFA_RECURSE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-20"},"REGEX_ERROR_BADRPT":{"name":"REGEX_ERROR_BADRPT","refLine":65,"docStart":3173,"docEnd":3192,"docs":{"brief":"? * + invalid","tags":[{"tag":"","text":"? * + invalid"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_BADMAGIC":{"name":"REGEX_ERROR_BADMAGIC","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-4"},"REGEX_ERROR_RECURSIONLIMIT":{"name":"REGEX_ERROR_RECURSIONLIMIT","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-21"},"REGEX_ERROR_RECURSELOOP":{"name":"REGEX_ERROR_RECURSELOOP","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-26"},"REGEX_ERROR_BADPAT":{"name":"REGEX_ERROR_BADPAT","refLine":64,"docStart":3126,"docEnd":3145,"docs":{"brief":"pattern error","tags":[{"tag":"","text":"pattern error"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_ECOLLATE":{"name":"REGEX_ERROR_ECOLLATE","refLine":68,"docStart":3314,"docEnd":3350,"docs":{"brief":"collation error - not relevant","tags":[{"tag":"","text":"collation error - not relevant"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_JIT_BADOPTION":{"name":"REGEX_ERROR_JIT_BADOPTION","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-31"},"REGEX_ERROR_BADOFFSET":{"name":"REGEX_ERROR_BADOFFSET","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-24"},"REGEX_ERROR_PARTIAL":{"name":"REGEX_ERROR_PARTIAL","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-12"},"REGEX_ERROR_DFA_BADRESTART":{"name":"REGEX_ERROR_DFA_BADRESTART","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-30"},"REGEX_ERROR_EPAREN":{"name":"REGEX_ERROR_EPAREN","refLine":72,"docStart":3524,"docEnd":3543,"docs":{"brief":"unbalanced ()","tags":[{"tag":"","text":"unbalanced ()"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":null},"REGEX_ERROR_BADLENGTH":{"name":"REGEX_ERROR_BADLENGTH","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-32"},"REGEX_ERROR_ASSERT":{"name":"REGEX_ERROR_ASSERT","refLine":62,"docStart":3015,"docEnd":3037,"docs":{"brief":"internal error ?","tags":[{"tag":"","text":"internal error ?"}]},"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"1"},"REGEX_ERROR_DFA_WSSIZE":{"name":"REGEX_ERROR_DFA_WSSIZE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-19"},"REGEX_ERROR_INTERNAL":{"name":"REGEX_ERROR_INTERNAL","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383},"last_updated":{"hash":"d430bd2f5cba9d54ac472876e7cd151a53fc031d","count":6280,"time":1527530383}},"value":"-14"}}}},"typesets":{},"typedefs":{}},"halflife":{"functions":{"GetServerSteamAccountId":{"name":"GetServerSteamAccountId","refLine":714,"docStart":25763,"docEnd":25873,"docs":{"brief":"Returns the server's Steam account ID.","tags":[{"tag":"","text":"Returns the server's Steam account ID."},{"tag":"return","text":"Steam account ID or 0 if not available."}]},"metadata":{"created":{"hash":"ed46ca3328bb878122f74a5af8590feb96e7c3c6","count":5888,"time":1461727028},"last_updated":{"hash":"ed46ca3328bb878122f74a5af8590feb96e7c3c6","count":5888,"time":1461727028}},"kind":"native","returnType":"int","arguments":[]},"CreateHudSynchronizer":{"name":"CreateHudSynchronizer","refLine":399,"docStart":11389,"docEnd":13064,"docs":{"brief":"Creates a HUD synchronization object. This object is used to automatically assign and\nre-use channels for a set of messages.\n\nThe HUD has a hardcoded number of channels (usually 6) for displaying\ntext. You can use any channel for any area of the screen. Text on\ndifferent channels can overlap, but text on the same channel will\nerase the old text first. This overlapping and overwriting gets problematic.\n\nA HUD synchronization object automatically selects channels for you based on\nthe following heuristics:\n- If channel X was last used by the object, and hasn't been modified again,\nchannel X gets re-used.\n- Otherwise, a new channel is chosen based on the least-recently-used channel.\n\nThis ensures that if you display text on a sync object, that the previous text\ndisplayed on it will always be cleared first. This is because your new text\nwill either overwrite the old text on the same channel, or because another\nchannel has already erased your text.\n\nNote that messages can still overlap if they are on different synchronization\nobjects, or they are displayed to manual channels.\n\nThese are particularly useful for displaying repeating or refreshing HUD text, in\naddition to displaying multiple message sets in one area of the screen (for example,\ncenter-say messages that may pop up randomly that you don't want to overlap each\nother).","tags":[{"tag":"","text":"Creates a HUD synchronization object. This object is used to automatically assign and\nre-use channels for a set of messages.\n\nThe HUD has a hardcoded number of channels (usually 6) for displaying\ntext. You can use any channel for any area of the screen. Text on\ndifferent channels can overlap, but text on the same channel will\nerase the old text first. This overlapping and overwriting gets problematic.\n\nA HUD synchronization object automatically selects channels for you based on\nthe following heuristics:\n- If channel X was last used by the object, and hasn't been modified again,\nchannel X gets re-used.\n- Otherwise, a new channel is chosen based on the least-recently-used channel.\n\nThis ensures that if you display text on a sync object, that the previous text\ndisplayed on it will always be cleared first. This is because your new text\nwill either overwrite the old text on the same channel, or because another\nchannel has already erased your text.\n\nNote that messages can still overlap if they are on different synchronization\nobjects, or they are displayed to manual channels.\n\nThese are particularly useful for displaying repeating or refreshing HUD text, in\naddition to displaying multiple message sets in one area of the screen (for example,\ncenter-say messages that may pop up randomly that you don't want to overlap each\nother)."},{"tag":"return","text":"New HUD synchronization object.\nThe Handle can be closed with CloseHandle().\nIf HUD text is not supported on this mod, then\nINVALID_HANDLE is returned."}]},"metadata":{"created":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078},"last_updated":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078}},"kind":"native","returnType":"Handle","arguments":[]},"PrecacheSentenceFile":{"name":"PrecacheSentenceFile","refLine":139,"docStart":3745,"docEnd":3984,"docs":{"brief":"Precaches a given sentence file.","tags":[{"tag":"","text":"Precaches a given sentence file."},{"tag":"param:file","text":"Name of the sentence file to precache."},{"tag":"param:preload","text":"If preload is true the file will be precached before level startup."},{"tag":"return","text":"Returns a sentence file index."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"file","decl":"const char[] file","default":null},{"type":"bool","name":"preload","decl":"bool preload","default":"false"}]},"IsDedicatedServer":{"name":"IsDedicatedServer","refLine":77,"docStart":2044,"docEnd":2152,"docs":{"brief":"Returns whether the server is dedicated.","tags":[{"tag":"","text":"Returns whether the server is dedicated."},{"tag":"return","text":"True if dedicated, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[]},"LogToGame":{"name":"LogToGame","refLine":121,"docStart":5656,"docEnd":5781,"docs":{"brief":"Logs a generic message to the HL2 logs.","tags":[{"tag":"","text":"Logs a generic message to the HL2 logs."},{"tag":"param:format","text":"String format."},{"tag":"param:...","text":"Format arguments."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"GetRandomInt":{"name":"GetRandomInt","refLine":62,"docStart":1582,"docEnd":1803,"docs":{"brief":"Returns a random number from the Half-Life 2 Random Stream","tags":[{"tag":"","text":"Returns a random number from the Half-Life 2 Random Stream"},{"tag":"param:nmin","text":"Minimum random bound."},{"tag":"param:nmax","text":"Maximum random bound."},{"tag":"return","text":"A random number between (inclusive) nmin and nmax."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"nmin","decl":"int nmin","default":null},{"type":"int","name":"nmax","decl":"int nmax","default":null}]},"PrecacheGeneric":{"name":"PrecacheGeneric","refLine":157,"docStart":4344,"docEnd":4582,"docs":{"brief":"Precaches a given generic file.","tags":[{"tag":"","text":"Precaches a given generic file."},{"tag":"param:generic","text":"Name of the generic file to precache."},{"tag":"param:preload","text":"If preload is true the file will be precached before level startup."},{"tag":"return","text":"Returns a generic file index."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"generic","decl":"const char[] generic","default":null},{"type":"bool","name":"preload","decl":"bool preload","default":"false"}]},"IsModelPrecached":{"name":"IsModelPrecached","refLine":165,"docStart":4655,"docEnd":4807,"docs":{"brief":"Returns if a given model is precached.","tags":[{"tag":"","text":"Returns if a given model is precached."},{"tag":"param:model","text":"Name of the model to check."},{"tag":"return","text":"True if precached, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"model","decl":"const char[] model","default":null}]},"GetEngineTime":{"name":"GetEngineTime","refLine":84,"docStart":2190,"docEnd":2312,"docs":{"brief":"Returns a high-precision time value for profiling the engine.","tags":[{"tag":"","text":"Returns a high-precision time value for profiling the engine."},{"tag":"return","text":"A floating point time value."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"float","arguments":[]},"IsSoundPrecached":{"name":"IsSoundPrecached","refLine":198,"docStart":5616,"docEnd":5768,"docs":{"brief":"Returns if a given sound is precached.","tags":[{"tag":"","text":"Returns if a given sound is precached."},{"tag":"param:sound","text":"Name of the sound to check."},{"tag":"return","text":"True if precached, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"sound","decl":"const char[] sound","default":null}]},"PrintCenterTextAll":{"name":"PrintCenterTextAll","refLine":263,"docStart":7388,"docEnd":7571,"docs":{"brief":"Prints a message to all clients in the center of the screen.","tags":[{"tag":"","text":"Prints a message to all clients in the center of the screen."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."}]},"metadata":{"created":{"hash":"bd15f93d7d4743b399a7f658378479142874385a","count":893,"time":1181163077},"last_updated":{"hash":"bd15f93d7d4743b399a7f658378479142874385a","count":893,"time":1181163077}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"EntRefToEntIndex":{"name":"EntRefToEntIndex","refLine":564,"docStart":19434,"docEnd":19559,"docs":{"brief":"Retrieves the entity index from a reference.","tags":[{"tag":"","text":"Retrieves the entity index from a reference."},{"tag":"param:ref","text":"Entity reference."},{"tag":"return","text":"Entity index."}]},"metadata":{"created":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671},"last_updated":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"ref","decl":"int ref","default":null}]},"IsGenericPrecached":{"name":"IsGenericPrecached","refLine":181,"docStart":5073,"docEnd":5239,"docs":{"brief":"Returns if a given generic file is precached.","tags":[{"tag":"","text":"Returns if a given generic file is precached."},{"tag":"param:decal","text":"Name of the generic file to check."},{"tag":"return","text":"True if precached, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"generic","decl":"const char[] generic","default":null}]},"MakeCompatEntRef":{"name":"MakeCompatEntRef","refLine":572,"docStart":19594,"docEnd":19737,"docs":{"brief":"Converts a reference into a backwards compatible version.","tags":[{"tag":"","text":"Converts a reference into a backwards compatible version."},{"tag":"param:ref","text":"Entity reference."},{"tag":"return","text":"Bcompat reference."}]},"metadata":{"created":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671},"last_updated":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"ref","decl":"int ref","default":null}]},"FindMap":{"name":"FindMap","refLine":168,"docStart":6776,"docEnd":7268,"docs":{"brief":"Returns whether a full or partial map name is found or can be resolved","tags":[{"tag":"","text":"Returns whether a full or partial map name is found or can be resolved"},{"tag":"param:map","text":"Map name (usually same as map path relative to maps/ dir,\nexcluding .bsp extension)."},{"tag":"param:foundmap","text":"Resolved map name. If the return is FindMap_FuzzyMatch\nor FindMap_NonCanonical the buffer will be the full path."},{"tag":"param:maxlen","text":"Maximum length to write to map var."},{"tag":"return","text":"Result of the find operation. Not all result types are supported on all games."}]},"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f59df243ead6f7f3ef600cbf7fea25a8f2f3b2cc","count":5615,"time":1441910866}},"kind":"native","returnType":"FindMapResult","arguments":[{"type":"const char[]","name":"map","decl":"const char[] map","default":null},{"type":"char[]","name":"foundmap","decl":"char[] foundmap","default":null},{"type":"int","name":"maxlen","decl":"int maxlen","default":null}]},"GetServerAuthId":{"name":"GetServerAuthId","refLine":707,"docStart":25209,"docEnd":25683,"docs":{"brief":"Retrieves the server's authentication string (SteamID).\n\nNote: If called before server is connected to Steam, auth id\nwill be invalid ([I:0:1], 1, etc.)","tags":[{"tag":"","text":"Retrieves the server's authentication string (SteamID).\n\nNote: If called before server is connected to Steam, auth id\nwill be invalid ([I:0:1], 1, etc.)"},{"tag":"param:authType","text":"Auth id type and format to use.\n(Only AuthId_Steam3 and AuthId_SteamID64 are supported)"},{"tag":"param:auth","text":"Buffer to store the server's auth id."},{"tag":"param:maxlen","text":"Maximum length of string buffer (includes NULL terminator)."},{"tag":"error","text":"Invalid AuthIdType given."}]},"metadata":{"created":{"hash":"ed46ca3328bb878122f74a5af8590feb96e7c3c6","count":5888,"time":1461727028},"last_updated":{"hash":"ed46ca3328bb878122f74a5af8590feb96e7c3c6","count":5888,"time":1461727028}},"kind":"native","returnType":"void","arguments":[{"type":"AuthIdType","name":"authType","decl":"AuthIdType authType","default":null},{"type":"char[]","name":"auth","decl":"char[] auth","default":null},{"type":"int","name":"maxlen","decl":"int maxlen","default":null}]},"SetHudTextParamsEx":{"name":"SetHudTextParamsEx","refLine":539,"docStart":19241,"docEnd":20196,"docs":{"brief":"Sets the HUD parameters for drawing text. These parameters are stored\nglobally, although nothing other than this function and SetHudTextParams\nmodify them.\n\nThis is the same as SetHudTextParams(), except it lets you set the alternate\ncolor for when effects require it.","tags":[{"tag":"","text":"Sets the HUD parameters for drawing text. These parameters are stored\nglobally, although nothing other than this function and SetHudTextParams\nmodify them.\n\nThis is the same as SetHudTextParams(), except it lets you set the alternate\ncolor for when effects require it."},{"tag":"param:x","text":"x coordinate, from 0 to 1. -1.0 is the center."},{"tag":"param:y","text":"y coordinate, from 0 to 1. -1.0 is the center."},{"tag":"param:holdTime","text":"Number of seconds to hold the text."},{"tag":"param:color1","text":"First color set, array values being [red, green, blue, alpha]"},{"tag":"param:color2","text":"Second color set, array values being [red, green, blue, alpha]"},{"tag":"param:effect","text":"0/1 causes the text to fade in and fade out.\n2 causes the text to flash[?]."},{"tag":"param:fxTime","text":"Duration of chosen effect (may not apply to all effects)."},{"tag":"param:fadeIn","text":"Number of seconds to spend fading in."},{"tag":"param:fadeOut","text":"Number of seconds to spend fading out."}]},"metadata":{"created":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"float","name":"x","decl":"float x","default":null},{"type":"float","name":"y","decl":"float y","default":null},{"type":"float","name":"holdTime","decl":"float holdTime","default":null},{"type":"int[4]","name":"color1","decl":"int color1[4]","default":null},{"type":"int[4]","name":"color2","decl":"int color2[4]","default":"{ 255, 255, 255, 0 }"},{"type":"int","name":"effect","decl":"int effect","default":"0"},{"type":"float","name":"fxTime","decl":"float fxTime","default":"6.000000"},{"type":"float","name":"fadeIn","decl":"float fadeIn","default":"0.100000"},{"type":"float","name":"fadeOut","decl":"float fadeOut","default":"0.200000"}]},"GetGameTickCount":{"name":"GetGameTickCount","refLine":136,"docStart":4928,"docEnd":5017,"docs":{"brief":"Returns the game's internal tick count.","tags":[{"tag":"","text":"Returns the game's internal tick count."},{"tag":"return","text":"Game tick count."}]},"metadata":{"created":{"hash":"f65de3bbbbd482b1035a6600f96cb23f12510b65","count":3541,"time":1338383623},"last_updated":{"hash":"f65de3bbbbd482b1035a6600f96cb23f12510b65","count":3541,"time":1338383623}},"kind":"native","returnType":"int","arguments":[]},"DisplayAskConnectBox":{"name":"DisplayAskConnectBox","refLine":590,"docStart":21115,"docEnd":21445,"docs":{"brief":"Displays a panel asking the client to connect to a specified IP.","tags":[{"tag":"","text":"Displays a panel asking the client to connect to a specified IP."},{"tag":"param:client","text":"Client index."},{"tag":"param:time","text":"Duration to hold the panel on the client's screen."},{"tag":"param:ip","text":"Destination IP."},{"tag":"param:password","text":"Password to connect to the destination IP. The client will be able to see this."}]},"metadata":{"created":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220},"last_updated":{"hash":"cf8d05ae98c2dc10112f9933cdc033952d79ba3b","count":4291,"time":1395418448}},"kind":"stock","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"float","name":"time","decl":"float time","default":null},{"type":"const char[]","name":"ip","decl":"const char[] ip","default":null},{"type":"const char[]","name":"password","decl":"const char[] password","default":"\"\""}]},"IsDecalPrecached":{"name":"IsDecalPrecached","refLine":173,"docStart":4864,"docEnd":5016,"docs":{"brief":"Returns if a given decal is precached.","tags":[{"tag":"","text":"Returns if a given decal is precached."},{"tag":"param:decal","text":"Name of the decal to check."},{"tag":"return","text":"True if precached, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"decal","decl":"const char[] decal","default":null}]},"PrecacheDecal":{"name":"PrecacheDecal","refLine":148,"docStart":4059,"docEnd":4275,"docs":{"brief":"Precaches a given decal.","tags":[{"tag":"","text":"Precaches a given decal."},{"tag":"param:decal","text":"Name of the decal to precache."},{"tag":"param:preload","text":"If preload is true the file will be precached before level startup."},{"tag":"return","text":"Returns a decal index."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"decal","decl":"const char[] decal","default":null},{"type":"bool","name":"preload","decl":"bool preload","default":"false"}]},"ShowSyncHudText":{"name":"ShowSyncHudText","refLine":465,"docStart":15542,"docEnd":16061,"docs":{"brief":"Shows a synchronized HUD message to a client.\n\nAs of this writing, only TF, HL2MP, and SourceForts support HUD Text.","tags":[{"tag":"","text":"Shows a synchronized HUD message to a client.\n\nAs of this writing, only TF, HL2MP, and SourceForts support HUD Text."},{"tag":"param:client","text":"Client index to send the message to."},{"tag":"param:sync","text":"Synchronization object."},{"tag":"param:message","text":"Message text or formatting rules."},{"tag":"param:...","text":"Message formatting parameters."},{"tag":"return","text":"-1 on failure, anything else on success.\nThis function fails if the mod does not support it."},{"tag":"error","text":"Client not in-game, or sync object not valid."}]},"metadata":{"created":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078},"last_updated":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"Handle","name":"sync","decl":"Handle sync","default":null},{"type":"const char[]","name":"message","decl":"const char[] message","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"GetGameTime":{"name":"GetGameTime","refLine":91,"docStart":2347,"docEnd":2441,"docs":{"brief":"Returns the game time based on the game tick.","tags":[{"tag":"","text":"Returns the game time based on the game tick."},{"tag":"return","text":"Game tick time."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"float","arguments":[]},"CreateDialog":{"name":"CreateDialog","refLine":329,"docStart":12152,"docEnd":12476,"docs":{"brief":"Creates different types of ingame messages.","tags":[{"tag":"","text":"Creates different types of ingame messages."},{"tag":"param:client","text":"Index of the client."},{"tag":"param:kv","text":"KeyValues handle to set the menu keys and options. (Check iserverplugin.h for more information)."},{"tag":"param:type","text":"Message type to display ingame."},{"tag":"error","text":"Invalid client index, or client not connected."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"Handle","name":"kv","decl":"Handle kv","default":null},{"type":"DialogType","name":"type","decl":"DialogType type","default":null}]},"GetGameFolderName":{"name":"GetGameFolderName","refLine":112,"docStart":2906,"docEnd":3139,"docs":{"brief":"Returns the name of the game's directory.","tags":[{"tag":"","text":"Returns the name of the game's directory."},{"tag":"param:buffer","text":"Buffer to store the directory name."},{"tag":"param:maxlength","text":"Maximum size of the buffer.\n\nreturn Number of bytes written to the buffer (UTF-8 safe)."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"PrintHintTextToAll":{"name":"PrintHintTextToAll","refLine":302,"docStart":8589,"docEnd":8760,"docs":{"brief":"Prints a message to all clients with a hint box.","tags":[{"tag":"","text":"Prints a message to all clients with a hint box."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"ShowMOTDPanel":{"name":"ShowMOTDPanel","refLine":341,"docStart":9669,"docEnd":10178,"docs":{"brief":"Shows a MOTD panel to a specific client.","tags":[{"tag":"","text":"Shows a MOTD panel to a specific client."},{"tag":"param:client","text":"Client index."},{"tag":"param:title","text":"Title of the panel (printed on the top border of the window)."},{"tag":"param:msg","text":"Contents of the panel, it can be treated as an url, filename or plain text\ndepending on the type parameter (WARNING: msg has to be 192 bytes maximum!)"},{"tag":"param:type","text":"Determines the way to treat the message body of the panel."},{"tag":"error","text":"If the client is not connected an error will be thrown."}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418}},"kind":"stock","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"title","decl":"const char[] title","default":null},{"type":"const char[]","name":"msg","decl":"const char[] msg","default":null},{"type":"int","name":"type","decl":"int type","default":"1"}]},"GetRandomFloat":{"name":"GetRandomFloat","refLine":53,"docStart":1280,"docEnd":1516,"docs":{"brief":"Returns a random floating point number from the Half-Life 2 Random Stream","tags":[{"tag":"","text":"Returns a random floating point number from the Half-Life 2 Random Stream"},{"tag":"param:fMin","text":"Minimum random bound."},{"tag":"param:fMax","text":"Maximum random bound."},{"tag":"return","text":"A random number between (inclusive) fMin and fMax."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"float","arguments":[{"type":"float","name":"fMin","decl":"float fMin","default":"0.000000"},{"type":"float","name":"fMax","decl":"float fMax","default":"1.000000"}]},"ShowVGUIPanel":{"name":"ShowVGUIPanel","refLine":457,"docStart":15646,"docEnd":16132,"docs":{"brief":"Shows a VGUI panel to a specific client.","tags":[{"tag":"","text":"Shows a VGUI panel to a specific client."},{"tag":"param:client","text":"Client index."},{"tag":"param:name","text":"Panel type name (Check viewport_panel_names.h to see a list of\nsome panel names)."},{"tag":"param:Kv","text":"KeyValues handle with all the data for the panel setup (Depends\non the panel type and may be unused)."},{"tag":"param:show","text":"True to show the panel, or false to remove it from the client screen."},{"tag":"error","text":"If the client is not connected an error will be thrown."}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":null},{"type":"Handle","name":"Kv","decl":"Handle Kv","default":"INVALID_HANDLE"},{"type":"bool","name":"show","decl":"bool show","default":"true"}]},"ShowHudText":{"name":"ShowHudText","refLine":503,"docStart":16826,"docEnd":17566,"docs":{"brief":"Shows a HUD message to a client on the given channel.\n\nAs of this writing, only TF, HL2MP, and SourceForts support HUD Text.","tags":[{"tag":"","text":"Shows a HUD message to a client on the given channel.\n\nAs of this writing, only TF, HL2MP, and SourceForts support HUD Text."},{"tag":"param:client","text":"Client index to send the message to."},{"tag":"param:channel","text":"A channel number.\nIf -1, then a channel will automatically be selected\nbased on the least-recently-used channel. If the\nchannel is any other number, it will be modulo'd with\nthe channel count to get a final channel number."},{"tag":"param:message","text":"Message text or formatting rules."},{"tag":"param:...","text":"Message formatting parameters."},{"tag":"return","text":"-1 on failure (lack of mod support).\nAny other return value is the channel number that was\nused to render the text."}]},"metadata":{"created":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078},"last_updated":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"int","name":"channel","decl":"int channel","default":null},{"type":"const char[]","name":"message","decl":"const char[] message","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"ClearSyncHud":{"name":"ClearSyncHud","refLine":574,"docStart":21012,"docEnd":21633,"docs":{"brief":"Clears the text on a synchronized HUD channel.\n\nThis is not the same as sending \"\" because it guarantees that it won't\noverwrite text on another channel. For example, consider the scenario:\n\n1. Your synchronized message goes to channel 3.\n2. Someone else's non-synchronized message goes to channel 3.\n\nIf you were to simply send \"\" on your synchronized message,\nthen someone else's text could be overwritten.","tags":[{"tag":"","text":"Clears the text on a synchronized HUD channel.\n\nThis is not the same as sending \"\" because it guarantees that it won't\noverwrite text on another channel. For example, consider the scenario:\n\n1. Your synchronized message goes to channel 3.\n2. Someone else's non-synchronized message goes to channel 3.\n\nIf you were to simply send \"\" on your synchronized message,\nthen someone else's text could be overwritten."},{"tag":"param:client","text":"Client index to send the message to."},{"tag":"param:sync","text":"Synchronization object."},{"tag":"error","text":"Client not in-game, or sync object not valid."}]},"metadata":{"created":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"Handle","name":"sync","decl":"Handle sync","default":null}]},"GetCurrentMap":{"name":"GetCurrentMap","refLine":121,"docStart":3198,"docEnd":3390,"docs":{"brief":"Returns the current map name.","tags":[{"tag":"","text":"Returns the current map name."},{"tag":"param:buffer","text":"Buffer to store map name."},{"tag":"param:maxlength","text":"Maximum length of buffer."},{"tag":"return","text":"Number of bytes written (UTF-8 safe)."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"GetEngineVersion":{"name":"GetEngineVersion","refLine":300,"docStart":10458,"docEnd":10726,"docs":{"brief":"Gets the engine version that the currently-loaded SM core was compiled against.\n\nThe engine version values are not guaranteed to be in any particular order,\nand should only be compared by (in)equality.","tags":[{"tag":"","text":"Gets the engine version that the currently-loaded SM core was compiled against.\n\nThe engine version values are not guaranteed to be in any particular order,\nand should only be compared by (in)equality."},{"tag":"return","text":"An EngineVersion value."}]},"metadata":{"created":{"hash":"a36c266e7d22e86719c5855739e2f25c15098529","count":3960,"time":1374422036},"last_updated":{"hash":"a36c266e7d22e86719c5855739e2f25c15098529","count":3960,"time":1374422036}},"kind":"native","returnType":"EngineVersion","arguments":[]},"SetHudTextParams":{"name":"SetHudTextParams","refLine":517,"docStart":17956,"docEnd":19060,"docs":{"brief":"Sets the HUD parameters for drawing text. These parameters are stored\nglobally, although nothing other than this function and SetHudTextParamsEx\nmodify them.\n\nYou must call this function before drawing text. If you are drawing\ntext to multiple clients, you can set the parameters once, since\nthey won't be modified. However, as soon as you pass control back\nto other plugins, you must reset the parameters next time you draw.","tags":[{"tag":"","text":"Sets the HUD parameters for drawing text. These parameters are stored\nglobally, although nothing other than this function and SetHudTextParamsEx\nmodify them.\n\nYou must call this function before drawing text. If you are drawing\ntext to multiple clients, you can set the parameters once, since\nthey won't be modified. However, as soon as you pass control back\nto other plugins, you must reset the parameters next time you draw."},{"tag":"param:x","text":"x coordinate, from 0 to 1. -1.0 is the center."},{"tag":"param:y","text":"y coordinate, from 0 to 1. -1.0 is the center."},{"tag":"param:holdTime","text":"Number of seconds to hold the text."},{"tag":"param:r","text":"Red color value."},{"tag":"param:g","text":"Green color value."},{"tag":"param:b","text":"Blue color value."},{"tag":"param:a","text":"Alpha transparency value."},{"tag":"param:effect","text":"0/1 causes the text to fade in and fade out.\n2 causes the text to flash[?]."},{"tag":"param:fxTime","text":"Duration of chosen effect (may not apply to all effects)."},{"tag":"param:fadeIn","text":"Number of seconds to spend fading in."},{"tag":"param:fadeOut","text":"Number of seconds to spend fading out."}]},"metadata":{"created":{"hash":"e7f8d1b2f53a70a4fc718244eb45e959c541f0bf","count":1916,"time":1204502078},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"float","name":"x","decl":"float x","default":null},{"type":"float","name":"y","decl":"float y","default":null},{"type":"float","name":"holdTime","decl":"float holdTime","default":null},{"type":"int","name":"r","decl":"int r","default":null},{"type":"int","name":"g","decl":"int g","default":null},{"type":"int","name":"b","decl":"int b","default":null},{"type":"int","name":"a","decl":"int a","default":null},{"type":"int","name":"effect","decl":"int effect","default":"0"},{"type":"float","name":"fxTime","decl":"float fxTime","default":"6.000000"},{"type":"float","name":"fadeIn","decl":"float fadeIn","default":"0.100000"},{"type":"float","name":"fadeOut","decl":"float fadeOut","default":"0.200000"}]},"GetMapDisplayName":{"name":"GetMapDisplayName","refLine":186,"docStart":7350,"docEnd":8142,"docs":{"brief":"Get the display name of a workshop map.\n\nNote: You do not need to call FindMap first. This native will call FindMap internally.","tags":[{"tag":"","text":"Get the display name of a workshop map.\n\nNote: You do not need to call FindMap first. This native will call FindMap internally."},{"tag":"param:map","text":"Map name (usually same as map path relative to maps/ dir,\nexcluding .bsp extension)."},{"tag":"param:displayName","text":"Map's display name, i.e. cp_mymapname or de_mymapname.\nIf FindMap returns FindMap_PossiblyAvailable or FindMap_NotFound,\nthe map cannot be resolved and this native will return false,\nbut displayName will be a copy of map."},{"tag":"param:maxlen","text":"Maximum length to write to displayName var."},{"tag":"return","text":"true if FindMap returns FindMap_Found, FindMap_FuzzyMatch, or\nFindMap_NonCanonical.\nfalse if FindMap returns FindMap_PossiblyAvailable or FindMap_NotFound."}]},"metadata":{"created":{"hash":"10a95cfdce5ea52f8ef991785053eb1c4da1d9c7","count":5647,"time":1442348218},"last_updated":{"hash":"10a95cfdce5ea52f8ef991785053eb1c4da1d9c7","count":5647,"time":1442348218}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"map","decl":"const char[] map","default":null},{"type":"char[]","name":"displayName","decl":"char[] displayName","default":null},{"type":"int","name":"maxlen","decl":"int maxlen","default":null}]},"PrecacheSound":{"name":"PrecacheSound","refLine":190,"docStart":5300,"docEnd":5542,"docs":{"brief":"Precaches a given sound.","tags":[{"tag":"","text":"Precaches a given sound."},{"tag":"param:sound","text":"Name of the sound to precache."},{"tag":"param:preload","text":"If preload is true the file will be precached before level startup."},{"tag":"return","text":"True if successfully precached, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"sound","decl":"const char[] sound","default":null},{"type":"bool","name":"preload","decl":"bool preload","default":"false"}]},"PrintToChat":{"name":"PrintToChat","refLine":361,"docStart":13261,"docEnd":13528,"docs":{"brief":"Prints a message to a specific client in the chat area.","tags":[{"tag":"","text":"Prints a message to a specific client in the chat area."},{"tag":"param:client","text":"Client index."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"error","text":"If the client is not connected an error will be thrown."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"GetGameDescription":{"name":"GetGameDescription","refLine":102,"docStart":2474,"docEnd":2825,"docs":{"brief":"Returns the game description from the mod.","tags":[{"tag":"","text":"Returns the game description from the mod."},{"tag":"param:buffer","text":"Buffer to store the description."},{"tag":"param:maxlength","text":"Maximum size of the buffer."},{"tag":"param:original","text":"If true, retrieves the original game description,\nignoring any potential hooks from plugins."},{"tag":"return","text":"Number of bytes written to the buffer (UTF-8 safe)."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"bool","name":"original","decl":"bool original","default":"false"}]},"PrintToChatAll":{"name":"PrintToChatAll","refLine":229,"docStart":6580,"docEnd":6752,"docs":{"brief":"Prints a message to all clients in the chat area.","tags":[{"tag":"","text":"Prints a message to all clients in the chat area."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."}]},"metadata":{"created":{"hash":"bd15f93d7d4743b399a7f658378479142874385a","count":893,"time":1181163077},"last_updated":{"hash":"bd15f93d7d4743b399a7f658378479142874385a","count":893,"time":1181163077}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"PrintHintText":{"name":"PrintHintText","refLine":423,"docStart":14858,"docEnd":15124,"docs":{"brief":"Prints a message to a specific client with a hint box.","tags":[{"tag":"","text":"Prints a message to a specific client with a hint box."},{"tag":"param:client","text":"Client index."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"error","text":"If the client is not connected an error will be thrown."}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"GuessSDKVersion":{"name":"GuessSDKVersion","refLine":248,"docStart":7870,"docEnd":8192,"docs":{"brief":"Guesses the SDK version a mod was compiled against. If nothing\nspecific is known about the game, the engine version is used instead.\n\nThe return values are guaranteed to increase chronologically (that is,\na later release will have a higher value).","tags":[{"tag":"","text":"Guesses the SDK version a mod was compiled against. If nothing\nspecific is known about the game, the engine version is used instead.\n\nThe return values are guaranteed to increase chronologically (that is,\na later release will have a higher value)."},{"tag":"return","text":"SOURCE_SDK version code."}]},"metadata":{"created":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184},"last_updated":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184}},"kind":"native","returnType":"int","arguments":[]},"EntIndexToEntRef":{"name":"EntIndexToEntRef","refLine":556,"docStart":19249,"docEnd":19396,"docs":{"brief":"Converts an entity index into a serial encoded entity reference.","tags":[{"tag":"","text":"Converts an entity index into a serial encoded entity reference."},{"tag":"param:entity","text":"Entity index."},{"tag":"return","text":"Entity reference."}]},"metadata":{"created":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671},"last_updated":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null}]},"PrecacheModel":{"name":"PrecacheModel","refLine":130,"docStart":3445,"docEnd":3676,"docs":{"brief":"Precaches a given model.","tags":[{"tag":"","text":"Precaches a given model."},{"tag":"param:model","text":"Name of the model to precache."},{"tag":"param:preload","text":"If preload is true the file will be precached before level startup."},{"tag":"return","text":"Returns the model index, 0 for error."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"model","decl":"const char[] model","default":null},{"type":"bool","name":"preload","decl":"bool preload","default":"false"}]},"SetRandomSeed":{"name":"SetRandomSeed","refLine":128,"docStart":5839,"docEnd":5947,"docs":{"brief":"Sets the seed value for the global Half-Life 2 Random Stream.","tags":[{"tag":"","text":"Sets the seed value for the global Half-Life 2 Random Stream."},{"tag":"param:seed","text":"Seed value."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"seed","decl":"int seed","default":null}]},"PrintCenterText":{"name":"PrintCenterText","refLine":392,"docStart":14043,"docEnd":14321,"docs":{"brief":"Prints a message to a specific client in the center of the screen.","tags":[{"tag":"","text":"Prints a message to a specific client in the center of the screen."},{"tag":"param:client","text":"Client index."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"error","text":"If the client is not connected an error will be thrown."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"f91d659c6fff94685bb5252790eef0f07ba40d64","count":5908,"time":1463835163}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"GetClientsInRange":{"name":"GetClientsInRange","refLine":685,"docStart":26675,"docEnd":27088,"docs":{"brief":"Find clients that are potentially in range of a position.","tags":[{"tag":"","text":"Find clients that are potentially in range of a position."},{"tag":"param:origin","text":"Coordinates from which to test range."},{"tag":"param:rangeType","text":"Range type to use for filtering clients."},{"tag":"param:clients","text":"Array to which found client indexes will be written."},{"tag":"param:size","text":"Maximum size of clients array."},{"tag":"return","text":"Number of client indexes written to clients array."}]},"metadata":{"created":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877},"last_updated":{"hash":"2a9deb6a64799740617751a71fb30a592594d296","count":6470,"time":1573633980}},"kind":"native","returnType":"int","arguments":[{"type":"const float[3]","name":"origin","decl":"const float origin[3]","default":null},{"type":"ClientRangeType","name":"rangeType","decl":"ClientRangeType rangeType","default":null},{"type":"int[]","name":"clients","decl":"int[] clients","default":null},{"type":"int","name":"size","decl":"int size","default":null}]},"GetGameFrameTime":{"name":"GetGameFrameTime","refLine":219,"docStart":8775,"docEnd":8882,"docs":{"brief":"Returns the time the Game took processing the last frame.","tags":[{"tag":"","text":"Returns the time the Game took processing the last frame."},{"tag":"return","text":"Game frame time."}]},"metadata":{"created":{"hash":"44c744b8fd4da788c02275599136ae3ffa0af58d","count":6118,"time":1498472292},"last_updated":{"hash":"44c744b8fd4da788c02275599136ae3ffa0af58d","count":6118,"time":1498472292}},"kind":"native","returnType":"float","arguments":[]},"IsMapValid":{"name":"IsMapValid","refLine":70,"docStart":1841,"docEnd":1995,"docs":{"brief":"Returns whether a map is valid or not.","tags":[{"tag":"","text":"Returns whether a map is valid or not."},{"tag":"param:Map","text":"name, excluding .bsp extension."},{"tag":"return","text":"True if valid, false otherwise."}]},"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"map","decl":"const char[] map","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"SOURCE_SDK_DARKMESSIAH":{"name":"SOURCE_SDK_DARKMESSIAH","refLine":40,"docStart":1851,"docEnd":1924,"docs":{"brief":"Modified version of original engine used by Dark Messiah (no SDK)","tags":[{"tag":"","text":"Modified version of original engine used by Dark Messiah (no SDK)"}]},"metadata":{"created":{"hash":"bd9fab6cf5b8736513f9722c507eee27cb94a2d4","count":2584,"time":1234945162},"last_updated":{"hash":"bd9fab6cf5b8736513f9722c507eee27cb94a2d4","count":2584,"time":1234945162}},"value":"15"},"MOTDPANEL_TYPE_URL":{"name":"MOTDPANEL_TYPE_URL","refLine":23,"docStart":886,"docEnd":918,"docs":{"brief":"Treat msg as an URL link","tags":[{"tag":"","text":"Treat msg as an URL link"}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418}},"value":"2"},"INVALID_ENT_REFERENCE":{"name":"INVALID_ENT_REFERENCE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671},"last_updated":{"hash":"3e36382b585a8da3e087fb0eb22c937217b83e6f","count":2747,"time":1248395671}},"value":"0xFFFFFFFF"},"SOURCE_SDK_LEFT4DEAD":{"name":"SOURCE_SDK_LEFT4DEAD","refLine":42,"docStart":2018,"docEnd":2072,"docs":{"brief":"Engine released after Left 4 Dead (no SDK yet)","tags":[{"tag":"","text":"Engine released after Left 4 Dead (no SDK yet)"}]},"metadata":{"created":{"hash":"ff7a2c6b73ad3500d9b9a3b830c8521ee0bf6279","count":2405,"time":1226675910},"last_updated":{"hash":"ff7a2c6b73ad3500d9b9a3b830c8521ee0bf6279","count":2405,"time":1226675910}},"value":"40"},"SOURCE_SDK_EPISODE2VALVE":{"name":"SOURCE_SDK_EPISODE2VALVE","refLine":43,"docStart":2132,"docEnd":2186,"docs":{"brief":"SDK+Engine released after Episode 2/Orange Box","tags":[{"tag":"","text":"SDK+Engine released after Episode 2/Orange Box"}]},"metadata":{"created":{"hash":"c468c26ad65e2975953f9f7bea3251c8e2eccebc","count":2894,"time":1263173372},"last_updated":{"hash":"c468c26ad65e2975953f9f7bea3251c8e2eccebc","count":2894,"time":1263173372}},"value":"35"},"_halflife_included":{"name":"_halflife_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634}},"value":""},"MOTDPANEL_TYPE_INDEX":{"name":"MOTDPANEL_TYPE_INDEX","refLine":22,"docStart":810,"docEnd":854,"docs":{"brief":"Msg is auto determined by the engine","tags":[{"tag":"","text":"Msg is auto determined by the engine"}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418}},"value":"1"},"MOTDPANEL_TYPE_FILE":{"name":"MOTDPANEL_TYPE_FILE","refLine":24,"docStart":951,"docEnd":996,"docs":{"brief":"Treat msg as a filename to be openned","tags":[{"tag":"","text":"Treat msg as a filename to be openned"}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418}},"value":"3"},"SOURCE_SDK_ALIENSWARM":{"name":"SOURCE_SDK_ALIENSWARM","refLine":46,"docStart":2405,"docEnd":2450,"docs":{"brief":"SDK+Engine released after Alien Swarm","tags":[{"tag":"","text":"SDK+Engine released after Alien Swarm"}]},"metadata":{"created":{"hash":"dd44a0aaea79eda341842ba4b97b6fb4149b6b31","count":3100,"time":1280269952},"last_updated":{"hash":"dd44a0aaea79eda341842ba4b97b6fb4149b6b31","count":3100,"time":1280269952}},"value":"60"},"SOURCE_SDK_DOTA":{"name":"SOURCE_SDK_DOTA","refLine":51,"docStart":2939,"docEnd":2984,"docs":{"brief":"Engine released after Dota 2 (no SDK)","tags":[{"tag":"","text":"Engine released after Dota 2 (no SDK)"}]},"metadata":{"created":{"hash":"519e8c5fcd45ff6aaba020c52d2b8eff4fb0b10d","count":3854,"time":1363706324},"last_updated":{"hash":"519e8c5fcd45ff6aaba020c52d2b8eff4fb0b10d","count":3854,"time":1363706324}},"value":"90"},"SOURCE_SDK_BLOODYGOODTIME":{"name":"SOURCE_SDK_BLOODYGOODTIME","refLine":43,"docStart":2133,"docEnd":2205,"docs":{"brief":"Modified version of ep2 engine used by Bloody Good Time (no SDK)","tags":[{"tag":"","text":"Modified version of ep2 engine used by Bloody Good Time (no SDK)"}]},"metadata":{"created":{"hash":"a7218d2e59855a349a93882fda075271e6862998","count":3185,"time":1294810247},"last_updated":{"hash":"a7218d2e59855a349a93882fda075271e6862998","count":3185,"time":1294810247}},"value":"32"},"SOURCE_SDK_EPISODE2":{"name":"SOURCE_SDK_EPISODE2","refLine":41,"docStart":1928,"docEnd":1980,"docs":{"brief":"Engine released after Episode 2 (no SDK yet)","tags":[{"tag":"","text":"Engine released after Episode 2 (no SDK yet)"}]},"metadata":{"created":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184},"last_updated":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184}},"value":"30"},"SOURCE_SDK_LEFT4DEAD2":{"name":"SOURCE_SDK_LEFT4DEAD2","refLine":45,"docStart":2313,"docEnd":2369,"docs":{"brief":"Engine released after Left 4 Dead 2 (no SDK yet)","tags":[{"tag":"","text":"Engine released after Left 4 Dead 2 (no SDK yet)"}]},"metadata":{"created":{"hash":"6d5e7cbe084043d9e2a8a70b4c0170902bb81dcc","count":2895,"time":1263173883},"last_updated":{"hash":"6d5e7cbe084043d9e2a8a70b4c0170902bb81dcc","count":2895,"time":1263173883}},"value":"50"},"SOURCE_SDK_ORIGINAL":{"name":"SOURCE_SDK_ORIGINAL","refLine":39,"docStart":1756,"docEnd":1813,"docs":{"brief":"Original Source engine (still used by \"The Ship\")","tags":[{"tag":"","text":"Original Source engine (still used by \"The Ship\")"}]},"metadata":{"created":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184},"last_updated":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184}},"value":"10"},"MOTDPANEL_TYPE_TEXT":{"name":"MOTDPANEL_TYPE_TEXT","refLine":21,"docStart":745,"docEnd":776,"docs":{"brief":"Treat msg as plain text","tags":[{"tag":"","text":"Treat msg as plain text"}]},"metadata":{"created":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418},"last_updated":{"hash":"4a6a016790f6bc0496ff4a8a040db25274df7107","count":1219,"time":1185837418}},"value":"0"},"SOURCE_SDK_CSS":{"name":"SOURCE_SDK_CSS","refLine":45,"docStart":2348,"docEnd":2437,"docs":{"brief":"Sometime-older version of Source 2009 SDK+Engine, used for Counter-Strike: Source","tags":[{"tag":"","text":"Sometime-older version of Source 2009 SDK+Engine, used for Counter-Strike: Source"}]},"metadata":{"created":{"hash":"8362b8d22628fa16b04849e08fd8d2a6c551d3de","count":3615,"time":1345514039},"last_updated":{"hash":"8362b8d22628fa16b04849e08fd8d2a6c551d3de","count":3615,"time":1345514039}},"value":"34"},"SOURCE_SDK_EYE":{"name":"SOURCE_SDK_EYE","refLine":44,"docStart":2237,"docEnd":2316,"docs":{"brief":"Modified version of ep2 engine used by E.Y.E Divine Cybermancy (no SDK)","tags":[{"tag":"","text":"Modified version of ep2 engine used by E.Y.E Divine Cybermancy (no SDK)"}]},"metadata":{"created":{"hash":"b2311e2ea5f20d46a8e8b12b51d5593b29d63d97","count":3428,"time":1319843380},"last_updated":{"hash":"b2311e2ea5f20d46a8e8b12b51d5593b29d63d97","count":3428,"time":1319843380}},"value":"33"},"SOURCE_SDK_EPISODE1":{"name":"SOURCE_SDK_EPISODE1","refLine":40,"docStart":1849,"docEnd":1892,"docs":{"brief":"SDK+Engine released after Episode 1","tags":[{"tag":"","text":"SDK+Engine released after Episode 1"}]},"metadata":{"created":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184},"last_updated":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184}},"value":"20"},"SOURCE_SDK_UNKNOWN":{"name":"SOURCE_SDK_UNKNOWN","refLine":38,"docStart":1674,"docEnd":1720,"docs":{"brief":"Could not determine the engine version","tags":[{"tag":"","text":"Could not determine the engine version"}]},"metadata":{"created":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184},"last_updated":{"hash":"c033f5415a2271df243508e636e0ebc85d5b92e8","count":1838,"time":1199689184}},"value":"0"},"SOURCE_SDK_CSGO":{"name":"SOURCE_SDK_CSGO","refLine":49,"docStart":2707,"docEnd":2755,"docs":{"brief":"Engine released after CS:GO (no SDK yet)","tags":[{"tag":"","text":"Engine released after CS:GO (no SDK yet)"}]},"metadata":{"created":{"hash":"917b6d4521b539ffef7f4efafa4318819f0b4159","count":3517,"time":1338149283},"last_updated":{"hash":"917b6d4521b539ffef7f4efafa4318819f0b4159","count":3517,"time":1338149283}},"value":"80"}},"enums":{"EngineVersion":{"name":"EngineVersion","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"a36c266e7d22e86719c5855739e2f25c15098529","count":3960,"time":1374422036},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"entries":{"Engine_DOTA":{"name":"Engine_DOTA","refLine":82,"docStart":4384,"docEnd":4398,"docs":{"brief":"Dota 2","tags":[{"tag":"","text":"Dota 2"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_BloodyGoodTime":{"name":"Engine_BloodyGoodTime","refLine":77,"docStart":4145,"docEnd":4169,"docs":{"brief":"Bloody Good Time","tags":[{"tag":"","text":"Bloody Good Time"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_NuclearDawn":{"name":"Engine_NuclearDawn","refLine":86,"docStart":4563,"docEnd":4583,"docs":{"brief":"Nuclear Dawn","tags":[{"tag":"","text":"Nuclear Dawn"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_SourceSDK2007":{"name":"Engine_SourceSDK2007","refLine":72,"docStart":3829,"docEnd":3879,"docs":{"brief":"Orange Box Source Engine (third major SDK)","tags":[{"tag":"","text":"Orange Box Source Engine (third major SDK)"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_EYE":{"name":"Engine_EYE","refLine":78,"docStart":4188,"docEnd":4219,"docs":{"brief":"E.Y.E Divine Cybermancy","tags":[{"tag":"","text":"E.Y.E Divine Cybermancy"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_DODS":{"name":"Engine_DODS","refLine":84,"docStart":4467,"docEnd":4496,"docs":{"brief":"Day of Defeat: Source","tags":[{"tag":"","text":"Day of Defeat: Source"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_SDK2013":{"name":"Engine_SDK2013","refLine":87,"docStart":4605,"docEnd":4628,"docs":{"brief":"Source SDK 2013","tags":[{"tag":"","text":"Source SDK 2013"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Insurgency":{"name":"Engine_Insurgency","refLine":89,"docStart":4694,"docEnd":4733,"docs":{"brief":"Insurgency (2013 Retail version","tags":[{"tag":"","text":"Insurgency (2013 Retail version"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_DarkMessiah":{"name":"Engine_DarkMessiah","refLine":74,"docStart":3946,"docEnd":4005,"docs":{"brief":"Dark Messiah Multiplayer (based on original engine)","tags":[{"tag":"","text":"Dark Messiah Multiplayer (based on original engine)"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_AlienSwarm":{"name":"Engine_AlienSwarm","refLine":76,"docStart":4077,"docEnd":4118,"docs":{"brief":"Alien Swarm (and Alien Swarm SDK)","tags":[{"tag":"","text":"Alien Swarm (and Alien Swarm SDK)"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_BlackMesa":{"name":"Engine_BlackMesa","refLine":91,"docStart":4796,"docEnd":4826,"docs":{"brief":"Black Mesa Multiplayer","tags":[{"tag":"","text":"Black Mesa Multiplayer"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_SourceSDK2006":{"name":"Engine_SourceSDK2006","refLine":71,"docStart":3753,"docEnd":3803,"docs":{"brief":"Episode 1 Source Engine (second major SDK)","tags":[{"tag":"","text":"Episode 1 Source Engine (second major SDK)"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_HL2DM":{"name":"Engine_HL2DM","refLine":83,"docStart":4418,"docEnd":4448,"docs":{"brief":"Half-Life 2 Deathmatch","tags":[{"tag":"","text":"Half-Life 2 Deathmatch"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Blade":{"name":"Engine_Blade","refLine":88,"docStart":4648,"docEnd":4670,"docs":{"brief":"Blade Symphony","tags":[{"tag":"","text":"Blade Symphony"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_CSGO":{"name":"Engine_CSGO","refLine":80,"docStart":4276,"docEnd":4316,"docs":{"brief":"Counter-Strike: Global Offensive","tags":[{"tag":"","text":"Counter-Strike: Global Offensive"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Unknown":{"name":"Engine_Unknown","refLine":69,"docStart":3609,"docEnd":3655,"docs":{"brief":"Could not determine the engine version","tags":[{"tag":"","text":"Could not determine the engine version"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Original":{"name":"Engine_Original","refLine":70,"docStart":3678,"docEnd":3727,"docs":{"brief":"Original Source Engine (used by The Ship)","tags":[{"tag":"","text":"Original Source Engine (used by The Ship)"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_CSS":{"name":"Engine_CSS","refLine":81,"docStart":4335,"docEnd":4365,"docs":{"brief":"Counter-Strike: Source","tags":[{"tag":"","text":"Counter-Strike: Source"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Left4Dead":{"name":"Engine_Left4Dead","refLine":73,"docStart":3902,"docEnd":3921,"docs":{"brief":"Left 4 Dead","tags":[{"tag":"","text":"Left 4 Dead"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_TF2":{"name":"Engine_TF2","refLine":85,"docStart":4515,"docEnd":4538,"docs":{"brief":"Team Fortress 2","tags":[{"tag":"","text":"Team Fortress 2"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_DOI":{"name":"Engine_DOI","refLine":92,"docStart":4845,"docEnd":4866,"docs":{"brief":"Day of Infamy","tags":[{"tag":"","text":"Day of Infamy"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Contagion":{"name":"Engine_Contagion","refLine":90,"docStart":4756,"docEnd":4773,"docs":{"brief":"Contagion","tags":[{"tag":"","text":"Contagion"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null},"Engine_Left4Dead2":{"name":"Engine_Left4Dead2","refLine":75,"docStart":4032,"docEnd":4053,"docs":{"brief":"Left 4 Dead 2","tags":[{"tag":"","text":"Left 4 Dead 2"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":"7"},"Engine_Portal2":{"name":"Engine_Portal2","refLine":79,"docStart":4241,"docEnd":4257,"docs":{"brief":"Portal 2","tags":[{"tag":"","text":"Portal 2"}]},"metadata":{"created":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316},"last_updated":{"hash":"95afe72307ca429db1c899f773b370c727a9356f","count":6205,"time":1509738316}},"value":null}}},"DialogType":{"name":"DialogType","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"6c17b9f37bab4f1b9fbfc6363b11a3df48eda56c","count":874,"time":1180679634},"last_updated":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220}},"entries":{"DialogType_AskConnect":{"name":"DialogType_AskConnect","refLine":49,"docStart":2164,"docEnd":2215,"docs":{"brief":"ask the client to connect to a specified IP","tags":[{"tag":"","text":"ask the client to connect to a specified IP"}]},"metadata":{"created":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220},"last_updated":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220}},"value":null},"DialogType_Menu":{"name":"DialogType_Menu","refLine":46,"docStart":2025,"docEnd":2048,"docs":{"brief":"an options menu","tags":[{"tag":"","text":"an options menu"}]},"metadata":{"created":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220},"last_updated":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220}},"value":null},"DialogType_Text":{"name":"DialogType_Text","refLine":47,"docStart":2070,"docEnd":2095,"docs":{"brief":"a richtext dialog","tags":[{"tag":"","text":"a richtext dialog"}]},"metadata":{"created":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220},"last_updated":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220}},"value":null},"DialogType_Msg":{"name":"DialogType_Msg","refLine":45,"docStart":1970,"docEnd":2003,"docs":{"brief":"just an on screen message","tags":[{"tag":"","text":"just an on screen message"}]},"metadata":{"created":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220},"last_updated":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220}},"value":"0"},"DialogType_Entry":{"name":"DialogType_Entry","refLine":48,"docStart":2118,"docEnd":2138,"docs":{"brief":"an entry box","tags":[{"tag":"","text":"an entry box"}]},"metadata":{"created":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220},"last_updated":{"hash":"aec2160e84fe30a18007667950a423726ff124f7","count":1414,"time":1189640220}},"value":null}}},"ClientRangeType":{"name":"ClientRangeType","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877},"last_updated":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877}},"entries":{"RangeType_Audibility":{"name":"RangeType_Audibility","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877},"last_updated":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877}},"value":null},"RangeType_Visibility":{"name":"RangeType_Visibility","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877},"last_updated":{"hash":"6d1a2b0d8627cdfcc0e8c6b158e2726174d33be5","count":5145,"time":1419971877}},"value":"0"}}},"FindMapResult":{"name":"FindMapResult","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047}},"entries":{"FindMap_Found":{"name":"FindMap_Found","refLine":97,"docStart":4859,"docEnd":4900,"docs":{"brief":"A direct match for this name was found","tags":[{"tag":"","text":"A direct match for this name was found"}]},"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047}},"value":null},"FindMap_NotFound":{"name":"FindMap_NotFound","refLine":99,"docStart":4920,"docEnd":4965,"docs":{"brief":"No match for this map name could be found.","tags":[{"tag":"","text":"No match for this map name could be found."}]},"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047}},"value":null},"FindMap_FuzzyMatch":{"name":"FindMap_FuzzyMatch","refLine":103,"docStart":4988,"docEnd":5142,"docs":{"brief":"A fuzzy match for this mapname was found and pMapName was updated to the full name.\nEx: cp_dust -> cp_dustbowl\nSupported on many newer games.","tags":[{"tag":"","text":"A fuzzy match for this mapname was found and pMapName was updated to the full name.\nEx: cp_dust -> cp_dustbowl\nSupported on many newer games."}]},"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047}},"value":null},"FindMap_NonCanonical":{"name":"FindMap_NonCanonical","refLine":108,"docStart":5167,"docEnd":5403,"docs":{"brief":"A match for this map name was found, and the map name was updated to the canonical version of the\nname.\nEx: workshop/1234 -> workshop/cp_qualified_name.ugc1234\nOnly supported on \"Orangebox\" games with workshop support.","tags":[{"tag":"","text":"A match for this map name was found, and the map name was updated to the canonical version of the\nname.\nEx: workshop/1234 -> workshop/cp_qualified_name.ugc1234\nOnly supported on \"Orangebox\" games with workshop support."}]},"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047}},"value":null},"FindMap_PossiblyAvailable":{"name":"FindMap_PossiblyAvailable","refLine":111,"docStart":5430,"docEnd":5590,"docs":{"brief":"No currently available match for this map name could be found, but it may be possible to load\nOnly supported on \"Orangebox\" games with workshop support.","tags":[{"tag":"","text":"No currently available match for this map name could be found, but it may be possible to load\nOnly supported on \"Orangebox\" games with workshop support."}]},"metadata":{"created":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047},"last_updated":{"hash":"f107ff9cd2fefeae1fa51aad3db1f4b4fa8e9968","count":5491,"time":1435425047}},"value":null}}}},"typesets":{},"typedefs":{}},"string":{"functions":{"StripQuotes":{"name":"StripQuotes","refLine":390,"docStart":13352,"docEnd":13845,"docs":{"brief":"Strips a quote pair off a string if it exists. That is, the following\nreplace rule is applied once: $\"(.*)\"^ -> $\\1^\n\nNote that the leading and trailing quotes will only be removed if both\nexist. Otherwise, the string is left unmodified. This function should\nbe considered O(k) (all characters get shifted down).","tags":[{"tag":"","text":"Strips a quote pair off a string if it exists. That is, the following\nreplace rule is applied once: $\"(.*)\"^ -> $\\1^\n\nNote that the leading and trailing quotes will only be removed if both\nexist. Otherwise, the string is left unmodified. This function should\nbe considered O(k) (all characters get shifted down)."},{"tag":"param:text","text":"String to modify (in place)."},{"tag":"return","text":"True if string was modified, false if there was no\nset of quotes."}]},"metadata":{"created":{"hash":"d014010a9959e297aee1d7a1b5d584f82ae327c0","count":2005,"time":1208323629},"last_updated":{"hash":"d014010a9959e297aee1d7a1b5d584f82ae327c0","count":2005,"time":1208323629}},"kind":"native","returnType":"bool","arguments":[{"type":"char[]","name":"text","decl":"char[] text","default":null}]},"FindCharInString":{"name":"FindCharInString","refLine":436,"docStart":14667,"docEnd":15024,"docs":{"brief":"Finds the first occurrence of a character in a string.","tags":[{"tag":"","text":"Finds the first occurrence of a character in a string."},{"tag":"param:str","text":"String."},{"tag":"param:c","text":"Character to search for."},{"tag":"param:reverse","text":"False (default) to search forward, true to search\nbackward."},{"tag":"return","text":"The index of the first occurrence of the character\nin the string, or -1 if the character was not found."}]},"metadata":{"created":{"hash":"2a11739e865882c4f1513891e556e169dc6d2e9b","count":2071,"time":1211605355},"last_updated":{"hash":"c37174cb97395852aae729e3924fa8136981b282","count":4996,"time":1415527389}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"char","name":"c","decl":"char c","default":null},{"type":"bool","name":"reverse","decl":"bool reverse","default":"false"}]},"IsCharNumeric":{"name":"IsCharNumeric","refLine":239,"docStart":7984,"docEnd":8201,"docs":{"brief":"Returns whether a character is numeric.","tags":[{"tag":"","text":"Returns whether a character is numeric."},{"tag":"note","text":"Multi-byte characters will always return false."},{"tag":"param:char","text":"Character to test."},{"tag":"return","text":"True if character is numeric, otherwise false."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"StrContains":{"name":"StrContains","refLine":35,"docStart":558,"docEnd":979,"docs":{"brief":"Tests whether a string is found inside another string.","tags":[{"tag":"","text":"Tests whether a string is found inside another string."},{"tag":"param:str","text":"String to search in."},{"tag":"param:substr","text":"Substring to find inside the original string."},{"tag":"param:caseSensitive","text":"If true (default), search is case sensitive.\nIf false, search is case insensitive."},{"tag":"return","text":"-1 on failure (no match found). Any other value\nindicates a position in the string where the match starts."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"const char[]","name":"substr","decl":"const char[] substr","default":null},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"ExplodeString":{"name":"ExplodeString","refLine":497,"docStart":15829,"docEnd":16382,"docs":{"brief":"Breaks a string into pieces and stores each piece into an array of buffers.","tags":[{"tag":"","text":"Breaks a string into pieces and stores each piece into an array of buffers."},{"tag":"param:text","text":"The string to split."},{"tag":"param:split","text":"The string to use as a split delimiter."},{"tag":"param:buffers","text":"An array of string buffers (2D array)."},{"tag":"param:maxStrings","text":"Number of string buffers (first dimension size)."},{"tag":"param:maxStringLength","text":"Maximum length of each string buffer."},{"tag":"param:copyRemainder","text":"False (default) discard excess pieces, true to ignore\ndelimiters after last piece."},{"tag":"return","text":"Number of strings retrieved."}]},"metadata":{"created":{"hash":"5a50d8ca0af99f2aea5af7fc416179c8fe10a4a3","count":835,"time":1179874731},"last_updated":{"hash":"c01101dbd0bb2126e6fb3a9bb163d615fb2c42e2","count":3366,"time":1311561855}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[]","name":"text","decl":"const char[] text","default":null},{"type":"const char[]","name":"split","decl":"const char[] split","default":null},{"type":"char[][]","name":"buffers","decl":"char[][] buffers","default":null},{"type":"int","name":"maxStrings","decl":"int maxStrings","default":null},{"type":"int","name":"maxStringLength","decl":"int maxStringLength","default":null},{"type":"bool","name":"copyRemainder","decl":"bool copyRemainder","default":"false"}]},"VFormat":{"name":"VFormat","refLine":124,"docStart":4059,"docEnd":4655,"docs":{"brief":"Formats a string according to the SourceMod format rules (see documentation).","tags":[{"tag":"","text":"Formats a string according to the SourceMod format rules (see documentation)."},{"tag":"note","text":"This is the same as Format(), except it grabs parameters from a parent parameter\nstack, rather than a local. This is useful for implementing your own variable\nargument functions."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:varpos","text":"Argument number which contains the '...' symbol.\nNote: Arguments start at 1."},{"tag":"return","text":"Number of bytes written."}]},"metadata":{"created":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572},"last_updated":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"int","name":"varpos","decl":"int varpos","default":null}]},"StrBreak":{"name":"StrBreak","refLine":214,"docStart":7389,"docEnd":7491,"docs":{"brief":"Backwards compatibility stock - use BreakString","tags":[{"tag":"","text":"Backwards compatibility stock - use BreakString"},{"tag":"deprecated","text":"Renamed to BreakString."}]},"metadata":{"created":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572},"last_updated":{"hash":"307181de8d893b6b25c8eee006e910a680a21706","count":831,"time":1179805324}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[]","name":"source","decl":"const char[] source","default":null},{"type":"char[]","name":"arg","decl":"char[] arg","default":null},{"type":"int","name":"argLen","decl":"int argLen","default":null}]},"ReplaceStringEx":{"name":"ReplaceStringEx","refLine":309,"docStart":10692,"docEnd":11506,"docs":{"brief":"Given a string, replaces the first occurrence of a search string with a\nreplacement string.","tags":[{"tag":"","text":"Given a string, replaces the first occurrence of a search string with a\nreplacement string."},{"tag":"param:text","text":"String to perform search and replacements on."},{"tag":"param:maxlength","text":"Maximum length of the string buffer."},{"tag":"param:search","text":"String to search for."},{"tag":"param:replace","text":"String to replace the search string with."},{"tag":"param:searchLen","text":"If higher than -1, its value will be used instead of\na strlen() call on the search parameter."},{"tag":"param:replaceLen","text":"If higher than -1, its value will be used instead of\na strlen() call on the replace parameter."},{"tag":"param:caseSensitive","text":"If true (default), search is case sensitive."},{"tag":"return","text":"Index into the buffer (relative to the start) from where\nthe last replacement ended, or -1 if no replacements were\nmade."}]},"metadata":{"created":{"hash":"0ef893583919ce87146881ca32cca3aa8a594abc","count":834,"time":1179867048},"last_updated":{"hash":"e04d2a4a101f2c0f1bca63144a804be38c41f252","count":2638,"time":1235943704}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"text","decl":"char[] text","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"search","decl":"const char[] search","default":null},{"type":"const char[]","name":"replace","decl":"const char[] replace","default":null},{"type":"int","name":"searchLen","decl":"int searchLen","default":"-1"},{"type":"int","name":"replaceLen","decl":"int replaceLen","default":"-1"},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"strlen":{"name":"strlen","refLine":23,"docStart":376,"docEnd":518,"docs":{"brief":"Calculates the length of a string.","tags":[{"tag":"","text":"Calculates the length of a string."},{"tag":"param:str","text":"String to check."},{"tag":"return","text":"Length of string, in cells (NOT characters)."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null}]},"strcmp":{"name":"strcmp","refLine":58,"docStart":1667,"docEnd":2012,"docs":{"brief":"Compares two strings lexographically.","tags":[{"tag":"","text":"Compares two strings lexographically."},{"tag":"param:str1","text":"First string (left)."},{"tag":"param:str2","text":"Second string (right)."},{"tag":"param:caseSensitive","text":"If true (default), comparison is case sensitive.\nIf false, comparison is case insensitive."},{"tag":"return","text":"-1 if str1 < str2\n0 if str1 == str2\n1 if str1 > str2"}]},"metadata":{"created":{"hash":"e42773b07dbae2b27356b3324e3b21bbfda4bd78","count":681,"time":1176308690},"last_updated":{"hash":"e42773b07dbae2b27356b3324e3b21bbfda4bd78","count":681,"time":1176308690}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str1","decl":"const char[] str1","default":null},{"type":"const char[]","name":"str2","decl":"const char[] str2","default":null},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"FormatEx":{"name":"FormatEx","refLine":109,"docStart":3449,"docEnd":3977,"docs":{"brief":"Formats a string according to the SourceMod format rules (see documentation).","tags":[{"tag":"","text":"Formats a string according to the SourceMod format rules (see documentation)."},{"tag":"note","text":"This is the same as Format(), except none of the input buffers can overlap the same\nmemory as the output buffer. Since this security check is removed, it is slightly faster."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"return","text":"Number of cells written."}]},"metadata":{"created":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572},"last_updated":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"ReplaceString":{"name":"ReplaceString","refLine":290,"docStart":10104,"docEnd":10567,"docs":{"brief":"Given a string, replaces all occurrences of a search string with a\nreplacement string.","tags":[{"tag":"","text":"Given a string, replaces all occurrences of a search string with a\nreplacement string."},{"tag":"param:text","text":"String to perform search and replacements on."},{"tag":"param:maxlength","text":"Maximum length of the string buffer."},{"tag":"param:search","text":"String to search for."},{"tag":"param:replace","text":"String to replace the search string with."},{"tag":"param:caseSensitive","text":"If true (default), search is case sensitive."},{"tag":"return","text":"Number of replacements that were performed."}]},"metadata":{"created":{"hash":"0ef893583919ce87146881ca32cca3aa8a594abc","count":834,"time":1179867048},"last_updated":{"hash":"e04d2a4a101f2c0f1bca63144a804be38c41f252","count":2638,"time":1235943704}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"text","decl":"char[] text","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"search","decl":"const char[] search","default":null},{"type":"const char[]","name":"replace","decl":"const char[] replace","default":null},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"StrEqual":{"name":"StrEqual","refLine":60,"docStart":1506,"docEnd":1816,"docs":{"brief":"Returns whether two strings are equal.\n","tags":[{"tag":"","text":"Returns whether two strings are equal.\n"},{"tag":"param:str1","text":"First string (left)."},{"tag":"param:str2","text":"Second string (right)."},{"tag":"param:caseSensitive","text":"If true (default), comparison is case sensitive.\nIf false, comparison is case insensitive."},{"tag":"return","text":"True if equal, false otherwise."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"2e835df3809bfd35b99282759fd64786f594bf40","count":235,"time":1167505283}},"kind":"stock","returnType":"bool","arguments":[{"type":"const char[]","name":"str1","decl":"const char[] str1","default":null},{"type":"const char[]","name":"str2","decl":"const char[] str2","default":null},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"StringToInt":{"name":"StringToInt","refLine":84,"docStart":2418,"docEnd":2621,"docs":{"brief":"Converts a string to an integer.","tags":[{"tag":"","text":"Converts a string to an integer."},{"tag":"param:str","text":"String to convert."},{"tag":"param:nBase","text":"Numerical base to use. 10 is default."},{"tag":"return","text":"Integer conversion of string, or 0 on failure."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"int","name":"nBase","decl":"int nBase","default":"10"}]},"CharToUpper":{"name":"CharToUpper","refLine":287,"docStart":9270,"docEnd":9460,"docs":{"brief":"Returns an uppercase character to a lowercase character.","tags":[{"tag":"","text":"Returns an uppercase character to a lowercase character."},{"tag":"param:chr","text":"Characer to convert."},{"tag":"return","text":"Lowercase character on success,\nno change on failure."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"stock","returnType":"int","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"GetCharBytes":{"name":"GetCharBytes","refLine":219,"docStart":7390,"docEnd":7658,"docs":{"brief":"Returns the number of bytes a character is using. This is\nfor multi-byte characters (UTF-8). For normal ASCII characters,\nthis will return 1.","tags":[{"tag":"","text":"Returns the number of bytes a character is using. This is\nfor multi-byte characters (UTF-8). For normal ASCII characters,\nthis will return 1."},{"tag":"param:source","text":"Source input string."},{"tag":"return","text":"Number of bytes the current character uses."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"source","decl":"const char[] source","default":null}]},"IsCharMB":{"name":"IsCharMB","refLine":258,"docStart":8496,"docEnd":8707,"docs":{"brief":"Returns if a character is multi-byte or not.","tags":[{"tag":"","text":"Returns if a character is multi-byte or not."},{"tag":"param:char","text":"Character to test."},{"tag":"return","text":"0 for a normal 7-bit ASCII character,\notherwise number of bytes in multi-byte character."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"ExplodeStringLumiStance":{"name":"ExplodeStringLumiStance","refLine":497,"docStart":15829,"docEnd":16382,"docs":{"brief":"Breaks a string into pieces and stores each piece into an array of buffers.","tags":[{"tag":"","text":"Breaks a string into pieces and stores each piece into an array of buffers."},{"tag":"param:text","text":"The string to split."},{"tag":"param:split","text":"The string to use as a split delimiter."},{"tag":"param:buffers","text":"An array of string buffers (2D array)."},{"tag":"param:maxStrings","text":"Number of string buffers (first dimension size)."},{"tag":"param:maxStringLength","text":"Maximum length of each string buffer."},{"tag":"param:copyRemainder","text":"False (default) discard excess pieces, true to ignore\ndelimiters after last piece."},{"tag":"return","text":"Number of strings retrieved."}]},"metadata":{"created":{"hash":"f7364111f2cffcdebb643c3f310cd423ff5164a5","count":3365,"time":1311561015},"last_updated":{"hash":"f7364111f2cffcdebb643c3f310cd423ff5164a5","count":3365,"time":1311561015}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[]","name":"text","decl":"const char[] text","default":null},{"type":"const char[]","name":"split","decl":"const char[] split","default":null},{"type":"char[][]","name":"buffers","decl":"char[][] buffers","default":null},{"type":"int","name":"maxStrings","decl":"int maxStrings","default":null},{"type":"int","name":"maxStringLength","decl":"int maxStringLength","default":null},{"type":"bool","name":"copyRemainder","decl":"bool copyRemainder","default":"false"}]},"StringToInt64":{"name":"StringToInt64","refLine":207,"docStart":7849,"docEnd":8184,"docs":{"brief":"Converts a string to a 64-bit integer.","tags":[{"tag":"","text":"Converts a string to a 64-bit integer."},{"tag":"param:str","text":"String to convert."},{"tag":"param:result","text":"Array to store the upper and lower\n32-bits of the 64-bit integer."},{"tag":"param:nBase","text":"Numerical base to use. 10 is default."},{"tag":"return","text":"Number of characters consumed."}]},"metadata":{"created":{"hash":"f603b7aec3219e0db56882447b35a57afe4c6d8a","count":6701,"time":1624913509},"last_updated":{"hash":"f603b7aec3219e0db56882447b35a57afe4c6d8a","count":6701,"time":1624913509}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"int[2]","name":"result","decl":"int result[2]","default":null},{"type":"int","name":"nBase","decl":"int nBase","default":"10"}]},"StrCopy":{"name":"StrCopy","refLine":114,"docStart":3765,"docEnd":3858,"docs":{"brief":"Backwards compatibility stock - use strcopy","tags":[{"tag":"","text":"Backwards compatibility stock - use strcopy"},{"tag":"deprecated","text":"Renamed to strcopy"}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"4ecb7a985fc36649aa74646b7d4b59fd391bbabb","count":682,"time":1176322040}},"kind":"stock","returnType":"int","arguments":[{"type":"char[]","name":"dest","decl":"char[] dest","default":null},{"type":"int","name":"destLen","decl":"int destLen","default":null},{"type":"const char[]","name":"source","decl":"const char[] source","default":null}]},"IsCharAlpha":{"name":"IsCharAlpha","refLine":229,"docStart":7707,"docEnd":7949,"docs":{"brief":"Returns whether a character is an ASCII alphabet character.","tags":[{"tag":"","text":"Returns whether a character is an ASCII alphabet character."},{"tag":"note","text":"Multi-byte characters will always return false."},{"tag":"param:char","text":"Character to test."},{"tag":"return","text":"True if character is alphabetical, otherwise false."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"IntToString":{"name":"IntToString","refLine":143,"docStart":4995,"docEnd":5230,"docs":{"brief":"Converts an integer to a string.","tags":[{"tag":"","text":"Converts an integer to a string."},{"tag":"param:num","text":"Integer to convert."},{"tag":"param:str","text":"Buffer to store string in."},{"tag":"param:maxlength","text":"Maximum length of string buffer."},{"tag":"return","text":"Number of cells written to buffer."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"num","decl":"int num","default":null},{"type":"char[]","name":"str","decl":"char[] str","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"StrCompare":{"name":"StrCompare","refLine":77,"docStart":2593,"docEnd":2659,"docs":{"brief":"Backwards compatible stock - StrCompare is now strcmp","tags":[{"tag":"","text":"Backwards compatible stock - StrCompare is now strcmp"}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"e42773b07dbae2b27356b3324e3b21bbfda4bd78","count":681,"time":1176308690}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[]","name":"str1","decl":"const char[] str1","default":null},{"type":"const char[]","name":"str2","decl":"const char[] str2","default":null},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"StringToFloatEx":{"name":"StringToFloatEx","refLine":203,"docStart":6782,"docEnd":7008,"docs":{"brief":"Converts a string to a floating point number with some more options.","tags":[{"tag":"","text":"Converts a string to a floating point number with some more options."},{"tag":"param:str","text":"String to convert to a foat."},{"tag":"param:result","text":"Variable to store result in."},{"tag":"return","text":"Number of characters consumed."}]},"metadata":{"created":{"hash":"9a2fbe5f9fc17d4365edad44edf1cd7c7d5b167c","count":1073,"time":1183917635},"last_updated":{"hash":"9a2fbe5f9fc17d4365edad44edf1cd7c7d5b167c","count":1073,"time":1183917635}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"float&","name":"result","decl":"float& result","default":null}]},"BreakString":{"name":"BreakString","refLine":208,"docStart":6777,"docEnd":7319,"docs":{"brief":"Finds the first \"argument\" in a string; either a set of space\nterminated characters, or a fully quoted string. After the\nargument is found, whitespace is read until the next portion\nof the string is reached. If nothing remains, -1 is returned.\nOtherwise, the index to the first character is returned.","tags":[{"tag":"","text":"Finds the first \"argument\" in a string; either a set of space\nterminated characters, or a fully quoted string. After the\nargument is found, whitespace is read until the next portion\nof the string is reached. If nothing remains, -1 is returned.\nOtherwise, the index to the first character is returned."},{"tag":"param:source","text":"Source input string."},{"tag":"param:arg","text":"Stores argument read from string."},{"tag":"param:argLen","text":"Maximum length of argument buffer."},{"tag":"return","text":"Index to next piece of string, or -1 if none."}]},"metadata":{"created":{"hash":"307181de8d893b6b25c8eee006e910a680a21706","count":831,"time":1179805324},"last_updated":{"hash":"307181de8d893b6b25c8eee006e910a680a21706","count":831,"time":1179805324}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"source","decl":"const char[] source","default":null},{"type":"char[]","name":"arg","decl":"char[] arg","default":null},{"type":"int","name":"argLen","decl":"int argLen","default":null}]},"StringToFloat":{"name":"StringToFloat","refLine":102,"docStart":2965,"docEnd":3128,"docs":{"brief":"Converts a string to a floating point number.","tags":[{"tag":"","text":"Converts a string to a floating point number."},{"tag":"param:str","text":"String to convert to a foat."},{"tag":"return","text":"Floating point result, or 0.0 on error."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397}},"kind":"native","returnType":"float","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null}]},"IsCharLower":{"name":"IsCharLower","refLine":278,"docStart":9002,"docEnd":9235,"docs":{"brief":"Returns whether an alphabetic character is lowercase.","tags":[{"tag":"","text":"Returns whether an alphabetic character is lowercase."},{"tag":"note","text":"Multi-byte characters will always return false."},{"tag":"param:char","text":"Character to test."},{"tag":"return","text":"True if character is lowercase, otherwise false."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"FloatToString":{"name":"FloatToString","refLine":161,"docStart":5502,"docEnd":5764,"docs":{"brief":"Converts a floating point number to a string.","tags":[{"tag":"","text":"Converts a floating point number to a string."},{"tag":"param:num","text":"Floating point number to convert."},{"tag":"param:str","text":"Buffer to store string in."},{"tag":"param:maxlength","text":"Maximum length of string buffer."},{"tag":"return","text":"Number of cells written to buffer."}]},"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572}},"kind":"native","returnType":"int","arguments":[{"type":"float","name":"num","decl":"float num","default":null},{"type":"char[]","name":"str","decl":"char[] str","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"StrCat":{"name":"StrCat","refLine":334,"docStart":10472,"docEnd":10710,"docs":{"brief":"Concatenates one string onto another.","tags":[{"tag":"","text":"Concatenates one string onto another."},{"tag":"param:buffer","text":"String to append to."},{"tag":"param:maxlength","text":"Maximum length of entire buffer."},{"tag":"param:source","text":"Source string to concatenate."},{"tag":"return","text":"Number of bytes written."}]},"metadata":{"created":{"hash":"67a0cdf1c306952a28a25216cd0afde8d658bb13","count":750,"time":1178494545},"last_updated":{"hash":"67a0cdf1c306952a28a25216cd0afde8d658bb13","count":750,"time":1178494545}},"kind":"stock","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"source","decl":"const char[] source","default":null}]},"IsCharSpace":{"name":"IsCharSpace","refLine":249,"docStart":8238,"docEnd":8461,"docs":{"brief":"Returns whether a character is whitespace.","tags":[{"tag":"","text":"Returns whether a character is whitespace."},{"tag":"note","text":"Multi-byte characters will always return false."},{"tag":"param:char","text":"Character to test."},{"tag":"return","text":"True if character is whitespace, otherwise false."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"SplitString":{"name":"SplitString","refLine":230,"docStart":7605,"docEnd":8121,"docs":{"brief":"Returns text in a string up until a certain character sequence is reached.","tags":[{"tag":"","text":"Returns text in a string up until a certain character sequence is reached."},{"tag":"param:source","text":"Source input string."},{"tag":"param:part","text":"Buffer to store string part."},{"tag":"param:partLen","text":"Maximum length of the string part buffer."},{"tag":"param:split","text":"A string which specifies a search point to break at."},{"tag":"return","text":"-1 if no match was found; otherwise, an index into source\nmarking the first index after the searched text. The\nindex is always relative to the start of the input string."}]},"metadata":{"created":{"hash":"5a50d8ca0af99f2aea5af7fc416179c8fe10a4a3","count":835,"time":1179874731},"last_updated":{"hash":"5a50d8ca0af99f2aea5af7fc416179c8fe10a4a3","count":835,"time":1179874731}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"source","decl":"const char[] source","default":null},{"type":"const char[]","name":"split","decl":"const char[] split","default":null},{"type":"char[]","name":"part","decl":"char[] part","default":null},{"type":"int","name":"partLen","decl":"int partLen","default":null}]},"ImplodeStrings":{"name":"ImplodeStrings","refLine":441,"docStart":13758,"docEnd":14267,"docs":{"brief":"Joins an array of strings into one string, with a \"join\" string inserted in\nbetween each given string. This function complements ExplodeString.","tags":[{"tag":"","text":"Joins an array of strings into one string, with a \"join\" string inserted in\nbetween each given string. This function complements ExplodeString."},{"tag":"param:strings","text":"An array of strings."},{"tag":"param:numStrings","text":"Number of strings in the array."},{"tag":"param:join","text":"The join string to insert between each string."},{"tag":"param:buffer","text":"Output buffer to write the joined string to."},{"tag":"param:maxLength","text":"Maximum length of the output buffer."},{"tag":"return","text":"Number of bytes written to the output buffer."}]},"metadata":{"created":{"hash":"5a50d8ca0af99f2aea5af7fc416179c8fe10a4a3","count":835,"time":1179874731},"last_updated":{"hash":"5a50d8ca0af99f2aea5af7fc416179c8fe10a4a3","count":835,"time":1179874731}},"kind":"stock","returnType":"int","arguments":[{"type":"const char[][]","name":"strings","decl":"const char[][] strings","default":null},{"type":"int","name":"numStrings","decl":"int numStrings","default":null},{"type":"const char[]","name":"join","decl":"const char[] join","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxLength","decl":"int maxLength","default":null}]},"StringToIntEx":{"name":"StringToIntEx","refLine":176,"docStart":5945,"docEnd":6209,"docs":{"brief":"Converts a string to an integer with some more options.","tags":[{"tag":"","text":"Converts a string to an integer with some more options."},{"tag":"param:str","text":"String to convert."},{"tag":"param:result","text":"Variable to store the result in."},{"tag":"param:nBase","text":"Numerical base to use. 10 is default."},{"tag":"return","text":"Number of characters consumed."}]},"metadata":{"created":{"hash":"9a2fbe5f9fc17d4365edad44edf1cd7c7d5b167c","count":1073,"time":1183917635},"last_updated":{"hash":"9a2fbe5f9fc17d4365edad44edf1cd7c7d5b167c","count":1073,"time":1183917635}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"int&","name":"result","decl":"int& result","default":null},{"type":"int","name":"nBase","decl":"int nBase","default":"10"}]},"strncmp":{"name":"strncmp","refLine":72,"docStart":2099,"docEnd":2500,"docs":{"brief":"Compares two strings parts lexographically.","tags":[{"tag":"","text":"Compares two strings parts lexographically."},{"tag":"param:str1","text":"First string (left)."},{"tag":"param:str2","text":"Second string (right)."},{"tag":"param:num","text":"Number of characters to compare."},{"tag":"param:caseSensitive","text":"If true (default), comparison is case sensitive.\nIf false, comparison is case insensitive."},{"tag":"return","text":"-1 if str1 < str2\n0 if str1 == str2\n1 if str1 > str2"}]},"metadata":{"created":{"hash":"e42773b07dbae2b27356b3324e3b21bbfda4bd78","count":681,"time":1176308690},"last_updated":{"hash":"e42773b07dbae2b27356b3324e3b21bbfda4bd78","count":681,"time":1176308690}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"str1","decl":"const char[] str1","default":null},{"type":"const char[]","name":"str2","decl":"const char[] str2","default":null},{"type":"int","name":"num","decl":"int num","default":null},{"type":"bool","name":"caseSensitive","decl":"bool caseSensitive","default":"true"}]},"CharToLower":{"name":"CharToLower","refLine":303,"docStart":9567,"docEnd":9757,"docs":{"brief":"Returns a lowercase character to an uppercase character.","tags":[{"tag":"","text":"Returns a lowercase character to an uppercase character."},{"tag":"param:chr","text":"Characer to convert."},{"tag":"return","text":"Uppercase character on success,\nno change on failure."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"stock","returnType":"int","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"strcopy":{"name":"strcopy","refLine":108,"docStart":3298,"docEnd":3697,"docs":{"brief":"Copies one string to another string.","tags":[{"tag":"","text":"Copies one string to another string."},{"tag":"note","text":"If the destination buffer is too small to hold the source string, the\ndestination will be truncated."},{"tag":"param:dest","text":"Destination string buffer to copy to."},{"tag":"param:destlen","text":"Destination buffer length (includes null terminator)."},{"tag":"param:source","text":"Source string buffer to copy from."},{"tag":"return","text":"Number of cells written."}]},"metadata":{"created":{"hash":"4ecb7a985fc36649aa74646b7d4b59fd391bbabb","count":682,"time":1176322040},"last_updated":{"hash":"4ecb7a985fc36649aa74646b7d4b59fd391bbabb","count":682,"time":1176322040}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"dest","decl":"char[] dest","default":null},{"type":"int","name":"destLen","decl":"int destLen","default":null},{"type":"const char[]","name":"source","decl":"const char[] source","default":null}]},"Format":{"name":"Format","refLine":96,"docStart":3035,"docEnd":3369,"docs":{"brief":"Formats a string according to the SourceMod format rules (see documentation).","tags":[{"tag":"","text":"Formats a string according to the SourceMod format rules (see documentation)."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"return","text":"Number of cells written."}]},"metadata":{"created":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572},"last_updated":{"hash":"5187ea19036cead2218b933798c28a06fc44145f","count":635,"time":1174077572}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"IsCharUpper":{"name":"IsCharUpper","refLine":268,"docStart":8734,"docEnd":8967,"docs":{"brief":"Returns whether an alphabetic character is uppercase.","tags":[{"tag":"","text":"Returns whether an alphabetic character is uppercase."},{"tag":"note","text":"Multi-byte characters will always return false."},{"tag":"param:char","text":"Character to test."},{"tag":"return","text":"True if character is uppercase, otherwise false."}]},"metadata":{"created":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174},"last_updated":{"hash":"eb5b94ec4449fd7428d97b083b629c7c35cc4c30","count":749,"time":1178493174}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"Int64ToString":{"name":"Int64ToString","refLine":229,"docStart":8591,"docEnd":9001,"docs":{"brief":"Converts a 64-bit integer to a string.","tags":[{"tag":"","text":"Converts a 64-bit integer to a string."},{"tag":"param:num","text":"Array containing the upper and lower\n32-bits of a 64-bit integer."},{"tag":"param:str","text":"Buffer to store string in."},{"tag":"param:maxlength","text":"Maximum length of string buffer."},{"tag":"return","text":"Number of characters written to the buffer,\nnot including the null terminator."}]},"metadata":{"created":{"hash":"f603b7aec3219e0db56882447b35a57afe4c6d8a","count":6701,"time":1624913509},"last_updated":{"hash":"f603b7aec3219e0db56882447b35a57afe4c6d8a","count":6701,"time":1624913509}},"kind":"native","returnType":"int","arguments":[{"type":"const int[2]","name":"num","decl":"const int num[2]","default":null},{"type":"char[]","name":"str","decl":"char[] str","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"TrimString":{"name":"TrimString","refLine":345,"docStart":10526,"docEnd":10702,"docs":{"brief":"Removes whitespace characters from the beginning and end of a string.","tags":[{"tag":"","text":"Removes whitespace characters from the beginning and end of a string."},{"tag":"param:str","text":"The string to trim."},{"tag":"return","text":"Number of bytes written (UTF-8 safe)."}]},"metadata":{"created":{"hash":"307181de8d893b6b25c8eee006e910a680a21706","count":831,"time":1179805324},"last_updated":{"hash":"307181de8d893b6b25c8eee006e910a680a21706","count":831,"time":1179805324}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"str","decl":"char[] str","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_string_included":{"name":"_string_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397},"last_updated":{"hash":"388c062c96c59c40b0a3eef45e32754b6d46acb1","count":234,"time":1167463397}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"adminmenu":{"functions":{"OnAdminMenuReady":{"name":"OnAdminMenuReady","refLine":74,"docStart":2532,"docEnd":2662,"docs":{"brief":"Called when the admin menu is ready to have items added.","tags":[{"tag":"","text":"Called when the admin menu is ready to have items added."},{"tag":"param:topmenu","text":"Handle to the admin menu's TopMenu."}]},"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"adbdcd6b1d7592adec435122aa4c4b329a75ede7","count":5345,"time":1425665889}},"kind":"forward","returnType":"void","arguments":[{"type":"Handle","name":"topmenu","decl":"Handle topmenu","default":null}]},"AddTargetsToMenu":{"name":"AddTargetsToMenu","refLine":98,"docStart":2928,"docEnd":3341,"docs":{"brief":"Adds targets to an admin menu.\n\nEach client is displayed as: name (userid)\nEach item contains the userid as a string for its info.","tags":[{"tag":"","text":"Adds targets to an admin menu.\n\nEach client is displayed as: name (userid)\nEach item contains the userid as a string for its info."},{"tag":"param:menu","text":"Menu Handle."},{"tag":"param:source_client","text":"Source client, or 0 to ignore immunity."},{"tag":"param:in_game_only","text":"True to only select in-game players."},{"tag":"param:alive_only","text":"True to only select alive players."},{"tag":"return","text":"Number of clients added."}]},"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"menu","decl":"Handle menu","default":null},{"type":"int","name":"source_client","decl":"int source_client","default":null},{"type":"bool","name":"in_game_only","decl":"bool in_game_only","default":"true"},{"type":"bool","name":"alive_only","decl":"bool alive_only","default":"false"}]},"GetAdminTopMenu":{"name":"GetAdminTopMenu","refLine":84,"docStart":2734,"docEnd":2892,"docs":{"brief":"Retrieves the Handle to the admin top menu.","tags":[{"tag":"","text":"Retrieves the Handle to the admin top menu."},{"tag":"return","text":"Handle to the admin menu's TopMenu,\nor INVALID_HANDLE if not created yet."}]},"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"b97335ccb0024ce44e5bb12032b1b40dc417fa46","count":4941,"time":1414722033}},"kind":"native","returnType":"TopMenu","arguments":[]},"OnAdminMenuCreated":{"name":"OnAdminMenuCreated","refLine":67,"docStart":2301,"docEnd":2478,"docs":{"brief":"Called when the admin menu is created and 3rd party plugins can grab\nthe Handle or add categories.","tags":[{"tag":"","text":"Called when the admin menu is created and 3rd party plugins can grab\nthe Handle or add categories."},{"tag":"param:topmenu","text":"Handle to the admin menu's TopMenu."}]},"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"adbdcd6b1d7592adec435122aa4c4b329a75ede7","count":5345,"time":1425665889}},"kind":"forward","returnType":"void","arguments":[{"type":"Handle","name":"topmenu","decl":"Handle topmenu","default":null}]},"AddTargetsToMenu2":{"name":"AddTargetsToMenu2","refLine":114,"docStart":3470,"docEnd":3829,"docs":{"brief":"Adds targets to an admin menu.\n\nEach client is displayed as: name (userid)\nEach item contains the userid as a string for its info.","tags":[{"tag":"","text":"Adds targets to an admin menu.\n\nEach client is displayed as: name (userid)\nEach item contains the userid as a string for its info."},{"tag":"param:menu","text":"Menu Handle."},{"tag":"param:source_client","text":"Source client, or 0 to ignore immunity."},{"tag":"param:flags","text":"COMMAND_FILTER flags from commandfilters.inc."},{"tag":"return","text":"Number of clients added."}]},"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"menu","decl":"Handle menu","default":null},{"type":"int","name":"source_client","decl":"int source_client","default":null},{"type":"int","name":"flags","decl":"int flags","default":null}]},"__pl_adminmenu_SetNTVOptional":{"name":"__pl_adminmenu_SetNTVOptional","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"kind":"public","returnType":"void","arguments":[]},"RedisplayAdminMenu":{"name":"RedisplayAdminMenu","refLine":124,"docStart":3895,"docEnd":4136,"docs":{"brief":"Re-displays the admin menu to a client after selecting an item.\nAuto-aborts if the Handle is invalid.","tags":[{"tag":"","text":"Re-displays the admin menu to a client after selecting an item.\nAuto-aborts if the Handle is invalid."},{"tag":"param:topmenu","text":"TopMenu Handle."},{"tag":"param:client","text":"Client index."},{"tag":"return","text":"True on success, false on failure."}]},"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"kind":"stock","returnType":"bool","arguments":[{"type":"Handle","name":"topmenu","decl":"Handle topmenu","default":null},{"type":"int","name":"client","decl":"int client","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_adminmenu_included":{"name":"_adminmenu_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"value":""},"ADMINMENU_SERVERCOMMANDS":{"name":"ADMINMENU_SERVERCOMMANDS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"value":"\"ServerCommands\""},"ADMINMENU_PLAYERCOMMANDS":{"name":"ADMINMENU_PLAYERCOMMANDS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"value":"\"PlayerCommands\""},"ADMINMENU_VOTINGCOMMANDS":{"name":"ADMINMENU_VOTINGCOMMANDS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365},"last_updated":{"hash":"3b0785cae06ad488c410c90304edd55020456ea6","count":2905,"time":1263457365}},"value":"\"VotingCommands\""}},"enums":{},"typesets":{},"typedefs":{}},"sdktools_trace":{"functions":{"TR_GetSurfaceProps":{"name":"TR_GetSurfaceProps","refLine":581,"docStart":23619,"docEnd":23843,"docs":{"brief":"Returns the surface properties index of the surface that was hit.","tags":[{"tag":"","text":"Returns the surface properties index of the surface that was hit."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Surface props."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_GetStartPosition":{"name":"TR_GetStartPosition","refLine":534,"docStart":22050,"docEnd":22269,"docs":{"brief":"Returns the starting position of a trace.","tags":[{"tag":"","text":"Returns the starting position of a trace."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"param:pos","text":"Vector buffer to store data in."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null},{"type":"float[3]","name":"pos","decl":"float pos[3]","default":null}]},"TR_GetFraction":{"name":"TR_GetFraction","refLine":319,"docStart":13245,"docEnd":13494,"docs":{"brief":"Returns the time fraction from a trace result (1.0 means no collision).","tags":[{"tag":"","text":"Returns the time fraction from a trace result (1.0 means no collision)."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Time fraction value of the trace."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_TraceHull":{"name":"TR_TraceHull","refLine":176,"docStart":8361,"docEnd":8631,"docs":{"brief":"Starts up a new trace hull using a global trace result.","tags":[{"tag":"","text":"Starts up a new trace hull using a global trace result."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Ending position of the ray."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:flags","text":"Trace flags."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null}]},"TR_GetPointContents":{"name":"TR_GetPointContents","refLine":142,"docStart":7357,"docEnd":7588,"docs":{"brief":"Get the contents mask and the entity index at the given position.","tags":[{"tag":"","text":"Get the contents mask and the entity index at the given position."},{"tag":"param:pos","text":"World position to test."},{"tag":"param:entindex","text":"Entity index found at the given position (by reference)."},{"tag":"return","text":"Contents mask."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"int","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"int&","name":"entindex","decl":"int& entindex","default":"-1"}]},"TR_GetPointContentsEnt":{"name":"TR_GetPointContentsEnt","refLine":151,"docStart":7655,"docEnd":7837,"docs":{"brief":"Get the point contents testing only the given entity index.","tags":[{"tag":"","text":"Get the point contents testing only the given entity index."},{"tag":"param:entindex","text":"Entity index to test."},{"tag":"param:pos","text":"World position."},{"tag":"return","text":"Contents mask."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"entindex","decl":"int entindex","default":null},{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null}]},"TR_ClipRayToEntityEx":{"name":"TR_ClipRayToEntityEx","refLine":423,"docStart":16774,"docEnd":17176,"docs":{"brief":"Clips a ray to a particular entity.","tags":[{"tag":"","text":"Clips a ray to a particular entity."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."},{"tag":"param:entity","text":"Entity to clip to."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"kind":"native","returnType":"Handle","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"TR_TraceHullEx":{"name":"TR_TraceHullEx","refLine":259,"docStart":10976,"docEnd":11316,"docs":{"brief":"Starts up a new trace hull using a new trace result.","tags":[{"tag":"","text":"Starts up a new trace hull using a new trace result."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Ending position of the ray."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:flags","text":"Trace flags."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"Handle","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null}]},"TR_GetFractionLeftSolid":{"name":"TR_GetFractionLeftSolid","refLine":525,"docStart":21682,"docEnd":21979,"docs":{"brief":"Returns the time fraction from a trace result when it left a solid.\nOnly valid if trace started in solid","tags":[{"tag":"","text":"Returns the time fraction from a trace result when it left a solid.\nOnly valid if trace started in solid"},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Time fraction left solid value of the trace."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_GetSurfaceFlags":{"name":"TR_GetSurfaceFlags","refLine":590,"docStart":23907,"docEnd":24104,"docs":{"brief":"Returns the surface flags. See SURF_*.","tags":[{"tag":"","text":"Returns the surface flags. See SURF_*."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Surface flags."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_TraceRayFilterEx":{"name":"TR_TraceRayFilterEx","refLine":281,"docStart":11476,"docEnd":12158,"docs":{"brief":"Starts up a new trace ray using a new trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_TraceRay*Ex from inside a filter\nfunction is currently not allowed and may not work.","tags":[{"tag":"","text":"Starts up a new trace ray using a new trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_TraceRay*Ex from inside a filter\nfunction is currently not allowed and may not work."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."},{"tag":"param:filter","text":"Function to use as a filter."},{"tag":"param:data","text":"Arbitrary data value to pass through to the filter function."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"Handle","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null},{"type":"TraceEntityFilter","name":"filter","decl":"TraceEntityFilter filter","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_GetHitGroup":{"name":"TR_GetHitGroup","refLine":356,"docStart":14473,"docEnd":14691,"docs":{"brief":"Returns in which body hit group the trace collided if any.","tags":[{"tag":"","text":"Returns in which body hit group the trace collided if any."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Body hit group."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_TraceHullFilterEx":{"name":"TR_TraceHullFilterEx","refLine":304,"docStart":12366,"docEnd":13003,"docs":{"brief":"Starts up a new trace hull using a new trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter\nfunction is currently not allowed and may not work.","tags":[{"tag":"","text":"Starts up a new trace hull using a new trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter\nfunction is currently not allowed and may not work."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Ending position of the ray."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:filter","text":"Function to use as a filter."},{"tag":"param:data","text":"Arbitrary data value to pass through to the filter function."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"Handle","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"TraceEntityFilter","name":"filter","decl":"TraceEntityFilter filter","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_TraceHullFilter":{"name":"TR_TraceHullFilter","refLine":222,"docStart":9609,"docEnd":10251,"docs":{"brief":"Starts up a new trace hull using a global trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter\nfunction is currently not allowed and may not work.","tags":[{"tag":"","text":"Starts up a new trace hull using a global trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter\nfunction is currently not allowed and may not work."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:filter","text":"Function to use as a filter."},{"tag":"param:data","text":"Arbitrary data value to pass through to the filter\nfunction."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"TraceEntityFilter","name":"filter","decl":"TraceEntityFilter filter","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_ClipRayToEntity":{"name":"TR_ClipRayToEntity","refLine":303,"docStart":12814,"docEnd":13144,"docs":{"brief":"Clips a ray to a particular entity.","tags":[{"tag":"","text":"Clips a ray to a particular entity."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."},{"tag":"param:entity","text":"Entity to clip to."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"TR_TraceRayEx":{"name":"TR_TraceRayEx","refLine":244,"docStart":10461,"docEnd":10849,"docs":{"brief":"Starts up a new trace ray using a new trace result.","tags":[{"tag":"","text":"Starts up a new trace ray using a new trace result."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"Handle","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null}]},"TR_GetSurfaceName":{"name":"TR_GetSurfaceName","refLine":572,"docStart":23251,"docEnd":23543,"docs":{"brief":"Returns the name of the surface that was hit.","tags":[{"tag":"","text":"Returns the name of the surface that was hit."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"param:buffer","text":"Buffer to store surface name in"},{"tag":"param:maxlen","text":"Maximum length of output buffer"},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlen","decl":"int maxlen","default":null}]},"TR_GetEntityIndex":{"name":"TR_GetEntityIndex","refLine":338,"docStart":13870,"docEnd":14105,"docs":{"brief":"Returns the entity index that collided with the trace.","tags":[{"tag":"","text":"Returns the entity index that collided with the trace."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Entity index or -1 for no collision."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_GetDisplacementFlags":{"name":"TR_GetDisplacementFlags","refLine":561,"docStart":22937,"docEnd":23182,"docs":{"brief":"Returns the displacement flags for the surface that was hit. See DISPSURF_FLAG_*.","tags":[{"tag":"","text":"Returns the displacement flags for the surface that was hit. See DISPSURF_FLAG_*."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Displacement flags."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_TraceRayFilter":{"name":"TR_TraceRayFilter","refLine":198,"docStart":8787,"docEnd":9412,"docs":{"brief":"Starts up a new trace ray using a global trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter\nfunction is currently not allowed and may not work.","tags":[{"tag":"","text":"Starts up a new trace ray using a global trace result and a customized\ntrace ray filter.\n\nCalling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter\nfunction is currently not allowed and may not work."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."},{"tag":"param:filter","text":"Function to use as a filter."},{"tag":"param:data","text":"Arbitrary data value to pass through to the filter\nfunction."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null},{"type":"TraceEntityFilter","name":"filter","decl":"TraceEntityFilter filter","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_EnumerateEntitiesHull":{"name":"TR_EnumerateEntitiesHull","refLine":290,"docStart":13441,"docEnd":14114,"docs":{"brief":"Enumerates over entities along a ray hull. This may find entities that are\nclose to the ray but do not actually intersect it. Use TR_Clip*RayToEntity\nwith TR_DidHit to check if the ray actually intersects the entity.","tags":[{"tag":"","text":"Enumerates over entities along a ray hull. This may find entities that are\nclose to the ray but do not actually intersect it. Use TR_Clip*RayToEntity\nwith TR_DidHit to check if the ray actually intersects the entity."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Ending position of the ray."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:mask","text":"Mask to use for the trace. See PARTITION_* flags."},{"tag":"param:enumerator","text":"Function to use as enumerator. For each entity found\nalong the ray, this function is called."},{"tag":"param:data","text":"Arbitrary data value to pass through to the enumerator."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"mask","decl":"int mask","default":null},{"type":"TraceEntityEnumerator","name":"enumerator","decl":"TraceEntityEnumerator enumerator","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_ClipRayHullToEntity":{"name":"TR_ClipRayHullToEntity","refLine":319,"docStart":13295,"docEnd":13582,"docs":{"brief":"Clips a ray hull to a particular entity.","tags":[{"tag":"","text":"Clips a ray hull to a particular entity."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Ending position of the ray."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:entity","text":"Entity to clip to."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"TR_ClipCurrentRayToEntityEx":{"name":"TR_ClipCurrentRayToEntityEx","refLine":454,"docStart":17909,"docEnd":18128,"docs":{"brief":"Clips the current global ray (or hull) to a particular entity.","tags":[{"tag":"","text":"Clips the current global ray (or hull) to a particular entity."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:entity","text":"Entity to clip to."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"kind":"native","returnType":"Handle","arguments":[{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"TR_ClipCurrentRayToEntity":{"name":"TR_ClipCurrentRayToEntity","refLine":332,"docStart":13788,"docEnd":13935,"docs":{"brief":"Clips the current global ray (or hull) to a particular entity.","tags":[{"tag":"","text":"Clips the current global ray (or hull) to a particular entity."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:entity","text":"Entity to clip to."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"TR_EnumerateEntities":{"name":"TR_EnumerateEntities","refLine":269,"docStart":12530,"docEnd":13246,"docs":{"brief":"Enumerates over entities along a ray. This may find entities that are\nclose to the ray but do not actually intersect it. Use TR_Clip*RayToEntity\nwith TR_DidHit to check if the ray actually intersects the entity.","tags":[{"tag":"","text":"Enumerates over entities along a ray. This may find entities that are\nclose to the ray but do not actually intersect it. Use TR_Clip*RayToEntity\nwith TR_DidHit to check if the ray actually intersects the entity."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the ending\npoint, or the direction angle."},{"tag":"param:mask","text":"Mask to use for the trace. See PARTITION_* flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."},{"tag":"param:enumerator","text":"Function to use as enumerator. For each entity found\nalong the ray, this function is called."},{"tag":"param:data","text":"Arbitrary data value to pass through to the enumerator."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"mask","decl":"int mask","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null},{"type":"TraceEntityEnumerator","name":"enumerator","decl":"TraceEntityEnumerator enumerator","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_EnumerateEntitiesBox":{"name":"TR_EnumerateEntitiesBox","refLine":324,"docStart":15869,"docEnd":16305,"docs":{"brief":"Enumerates over entities in a box.","tags":[{"tag":"","text":"Enumerates over entities in a box."},{"tag":"param:mins","text":"Box minimum size."},{"tag":"param:maxs","text":"Box maximum size."},{"tag":"param:mask","text":"Mask to use for the trace. See PARTITION_* flags."},{"tag":"param:enumerator","text":"Function to use as enumerator. For each entity found\nalong the box, this function is called."},{"tag":"param:data","text":"Arbitrary data value to pass through to the enumerator."}]},"metadata":{"created":{"hash":"bcd5e408425b7a18fe1891531118c3288e170611","count":6508,"time":1582762795},"last_updated":{"hash":"bcd5e408425b7a18fe1891531118c3288e170611","count":6508,"time":1582762795}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"mask","decl":"int mask","default":null},{"type":"TraceEntityEnumerator","name":"enumerator","decl":"TraceEntityEnumerator enumerator","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_GetPhysicsBone":{"name":"TR_GetPhysicsBone","refLine":599,"docStart":24168,"docEnd":24383,"docs":{"brief":"Returns the index of the physics bone that was hit.","tags":[{"tag":"","text":"Returns the index of the physics bone that was hit."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Physics bone index."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_AllSolid":{"name":"TR_AllSolid","refLine":608,"docStart":24446,"docEnd":24702,"docs":{"brief":"Returns whether the entire trace was in a solid area.","tags":[{"tag":"","text":"Returns whether the entire trace was in a solid area."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"True if entire trace was in a solid area, otherwise false."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_DidHit":{"name":"TR_DidHit","refLine":347,"docStart":14164,"docEnd":14417,"docs":{"brief":"Returns if there was any kind of collision along the trace ray.","tags":[{"tag":"","text":"Returns if there was any kind of collision along the trace ray."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"True if any collision found, otherwise false."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_GetHitBoxIndex":{"name":"TR_GetHitBoxIndex","refLine":646,"docStart":28496,"docEnd":28914,"docs":{"brief":"Returns in which hitbox the trace collided if any.\n\nNote: if the entity that collided with the trace is the world entity,\nthen this function doesn't return an hitbox index but a static prop index.","tags":[{"tag":"","text":"Returns in which hitbox the trace collided if any.\n\nNote: if the entity that collided with the trace is the world entity,\nthen this function doesn't return an hitbox index but a static prop index."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"Hitbox index (Or static prop index)."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"e02e6bcb4fa1f157b7bc32514ce203e5f5076720","count":6444,"time":1568751876},"last_updated":{"hash":"e02e6bcb4fa1f157b7bc32514ce203e5f5076720","count":6444,"time":1568751876}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_GetEndPosition":{"name":"TR_GetEndPosition","refLine":324,"docStart":13596,"docEnd":13823,"docs":{"brief":"Returns the collision position of a trace result.","tags":[{"tag":"","text":"Returns the collision position of a trace result."},{"tag":"param:pos","text":"Vector buffer to store data in."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"pos","decl":"float pos[3]","default":null},{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_EnumerateEntitiesPoint":{"name":"TR_EnumerateEntitiesPoint","refLine":339,"docStart":16601,"docEnd":17001,"docs":{"brief":"Enumerates over entities at point.","tags":[{"tag":"","text":"Enumerates over entities at point."},{"tag":"param:pos","text":"Position of the point."},{"tag":"param:mask","text":"Mask to use for the trace. See PARTITION_* flags."},{"tag":"param:enumerator","text":"Function to use as enumerator. For each entity found\nalong the point, this function is called."},{"tag":"param:data","text":"Arbitrary data value to pass through to the enumerator."}]},"metadata":{"created":{"hash":"bcd5e408425b7a18fe1891531118c3288e170611","count":6508,"time":1582762795},"last_updated":{"hash":"bcd5e408425b7a18fe1891531118c3288e170611","count":6508,"time":1582762795}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"int","name":"mask","decl":"int mask","default":null},{"type":"TraceEntityEnumerator","name":"enumerator","decl":"TraceEntityEnumerator enumerator","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_EnumerateEntitiesSphere":{"name":"TR_EnumerateEntitiesSphere","refLine":308,"docStart":15098,"docEnd":15550,"docs":{"brief":"Enumerates over entities in a sphere.","tags":[{"tag":"","text":"Enumerates over entities in a sphere."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:radius","text":"Radius of the ray."},{"tag":"param:mask","text":"Mask to use for the trace. See PARTITION_* flags."},{"tag":"param:enumerator","text":"Function to use as enumerator. For each entity found\nalong the ray, this function is called."},{"tag":"param:data","text":"Arbitrary data value to pass through to the enumerator."}]},"metadata":{"created":{"hash":"bcd5e408425b7a18fe1891531118c3288e170611","count":6508,"time":1582762795},"last_updated":{"hash":"bcd5e408425b7a18fe1891531118c3288e170611","count":6508,"time":1582762795}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"float","name":"radius","decl":"float radius","default":null},{"type":"int","name":"mask","decl":"int mask","default":null},{"type":"TraceEntityEnumerator","name":"enumerator","decl":"TraceEntityEnumerator enumerator","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"TR_StartSolid":{"name":"TR_StartSolid","refLine":617,"docStart":24760,"docEnd":25018,"docs":{"brief":"Returns whether the initial point was in a solid area.","tags":[{"tag":"","text":"Returns whether the initial point was in a solid area."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"return","text":"True if initial point was in a solid area, otherwise false."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"TR_GetPlaneNormal":{"name":"TR_GetPlaneNormal","refLine":360,"docStart":14786,"docEnd":15051,"docs":{"brief":"Find the normal vector to the collision plane of a trace.","tags":[{"tag":"","text":"Find the normal vector to the collision plane of a trace."},{"tag":"param:hndl","text":"A trace Handle, or INVALID_HANDLE to use a global trace result."},{"tag":"param:normal","text":"Vector buffer to store the vector normal to the collision plane"},{"tag":"error","text":"Invalid Handle"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null},{"type":"float[3]","name":"normal","decl":"float normal[3]","default":null}]},"TR_TraceRay":{"name":"TR_TraceRay","refLine":162,"docStart":7920,"docEnd":8237,"docs":{"brief":"Starts up a new trace ray using a global trace result.","tags":[{"tag":"","text":"Starts up a new trace ray using a global trace result."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Depending on RayType, it will be used as the\nending point, or the direction angle."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:rtype","text":"Method to calculate the ray direction."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"RayType","name":"rtype","decl":"RayType rtype","default":null}]},"TR_ClipRayHullToEntityEx":{"name":"TR_ClipRayHullToEntityEx","refLine":440,"docStart":17335,"docEnd":17694,"docs":{"brief":"Clips a ray hull to a particular entity.","tags":[{"tag":"","text":"Clips a ray hull to a particular entity."},{"tag":"param:pos","text":"Starting position of the ray."},{"tag":"param:vec","text":"Ending position of the ray."},{"tag":"param:mins","text":"Hull minimum size."},{"tag":"param:maxs","text":"Hull maximum size."},{"tag":"param:flags","text":"Trace flags."},{"tag":"param:entity","text":"Entity to clip to."},{"tag":"return","text":"Ray trace handle, which must be closed via CloseHandle()."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"kind":"native","returnType":"Handle","arguments":[{"type":"const float[3]","name":"pos","decl":"const float pos[3]","default":null},{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"const float[3]","name":"mins","decl":"const float mins[3]","default":null},{"type":"const float[3]","name":"maxs","decl":"const float maxs[3]","default":null},{"type":"int","name":"flags","decl":"int flags","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"TR_PointOutsideWorld":{"name":"TR_PointOutsideWorld","refLine":368,"docStart":15117,"docEnd":15289,"docs":{"brief":"Tests a point to see if it's outside any playable area","tags":[{"tag":"","text":"Tests a point to see if it's outside any playable area"},{"tag":"param:pos","text":"Vector buffer to store data in."},{"tag":"return","text":"True if outside world, otherwise false."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"bool","arguments":[{"type":"float[3]","name":"pos","decl":"float pos[3]","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"CONTENTS_TRANSLUCENT":{"name":"CONTENTS_TRANSLUCENT","refLine":78,"docStart":3671,"docEnd":3713,"docs":{"brief":"auto set if any surface has trans.","tags":[{"tag":"","text":"auto set if any surface has trans."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x10000000"},"MASK_PLAYERSOLID_BRUSHONLY":{"name":"MASK_PLAYERSOLID_BRUSHONLY","refLine":98,"docStart":5926,"docEnd":6015,"docs":{"brief":"everything normally solid for player movement, except monsters (world+brush only)","tags":[{"tag":"","text":"everything normally solid for player movement, except monsters (world+brush only)"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_PLAYERCLIP|CONTENTS_GRATE)"},"LAST_VISIBLE_CONTENTS":{"name":"LAST_VISIBLE_CONTENTS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x80"},"CONTENTS_SLIME":{"name":"CONTENTS_SLIME","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x10"},"CONTENTS_CURRENT_UP":{"name":"CONTENTS_CURRENT_UP","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x400000"},"SURF_WARP":{"name":"SURF_WARP","refLine":114,"docStart":7958,"docEnd":7986,"docs":{"brief":"turbulent water warp","tags":[{"tag":"","text":"turbulent water warp"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0008"},"MASK_PLAYERSOLID":{"name":"MASK_PLAYERSOLID","refLine":87,"docStart":4184,"docEnd":4230,"docs":{"brief":"everything that blocks player movement","tags":[{"tag":"","text":"everything that blocks player movement"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE)"},"MASK_SHOT":{"name":"MASK_SHOT","refLine":94,"docStart":5250,"docEnd":5284,"docs":{"brief":"bullets see these as solid","tags":[{"tag":"","text":"bullets see these as solid"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_HITBOX)"},"MASK_SOLID_BRUSHONLY":{"name":"MASK_SOLID_BRUSHONLY","refLine":97,"docStart":5731,"docEnd":5800,"docs":{"brief":"everything normally solid, except monsters (world+brush only)","tags":[{"tag":"","text":"everything normally solid, except monsters (world+brush only)"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_GRATE)"},"CONTENTS_WATER":{"name":"CONTENTS_WATER","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x20"},"CONTENTS_TEAM2":{"name":"CONTENTS_TEAM2","refLine":53,"docStart":2545,"docEnd":2600,"docs":{"brief":"between players and objects on different teams.","tags":[{"tag":"","text":"between players and objects on different teams."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x1000"},"SURF_SKIP":{"name":"SURF_SKIP","refLine":122,"docStart":8450,"docEnd":8504,"docs":{"brief":"completely ignore, allowing non-closed brushes","tags":[{"tag":"","text":"completely ignore, allowing non-closed brushes"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0200"},"CONTENTS_CURRENT_DOWN":{"name":"CONTENTS_CURRENT_DOWN","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x800000"},"SURF_NOCHOP":{"name":"SURF_NOCHOP","refLine":127,"docStart":8850,"docEnd":8897,"docs":{"brief":"Don't subdivide patches on this surface","tags":[{"tag":"","text":"Don't subdivide patches on this surface"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x4000"},"SURF_NOLIGHT":{"name":"SURF_NOLIGHT","refLine":123,"docStart":8543,"docEnd":8572,"docs":{"brief":"Don't calculate light","tags":[{"tag":"","text":"Don't calculate light"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0400"},"MASK_OPAQUE_AND_NPCS":{"name":"MASK_OPAQUE_AND_NPCS","refLine":91,"docStart":4727,"docEnd":4819,"docs":{"brief":"everything that blocks line of sight for AI, lighting, etc, but with monsters added.","tags":[{"tag":"","text":"everything that blocks line of sight for AI, lighting, etc, but with monsters added."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(MASK_OPAQUE|CONTENTS_MONSTER)"},"SURF_HINT":{"name":"SURF_HINT","refLine":120,"docStart":8374,"docEnd":8409,"docs":{"brief":"make a primary bsp splitter","tags":[{"tag":"","text":"make a primary bsp splitter"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0100"},"CONTENTS_SOLID":{"name":"CONTENTS_SOLID","refLine":39,"docStart":1734,"docEnd":1776,"docs":{"brief":"an eye is never valid in a solid .","tags":[{"tag":"","text":"an eye is never valid in a solid ."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x1"},"DISPSURF_FLAG_WALKABLE":{"name":"DISPSURF_FLAG_WALKABLE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1<<1)"},"CONTENTS_ORIGIN":{"name":"CONTENTS_ORIGIN","refLine":74,"docStart":3383,"docEnd":3423,"docs":{"brief":"removed before bsping an entity.","tags":[{"tag":"","text":"removed before bsping an entity."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x1000000"},"MASK_SHOT_HULL":{"name":"MASK_SHOT_HULL","refLine":95,"docStart":5411,"docEnd":5476,"docs":{"brief":"non-raycasted weapons see this as solid (includes grates)","tags":[{"tag":"","text":"non-raycasted weapons see this as solid (includes grates)"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_GRATE)"},"MASK_SHOT_PORTAL":{"name":"MASK_SHOT_PORTAL","refLine":96,"docStart":5562,"docEnd":5629,"docs":{"brief":"hits solids (not grates) and passes through everything else","tags":[{"tag":"","text":"hits solids (not grates) and passes through everything else"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW)"},"DISPSURF_FLAG_BUILDABLE":{"name":"DISPSURF_FLAG_BUILDABLE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1<<2)"},"SURF_NODECALS":{"name":"SURF_NODECALS","refLine":126,"docStart":8783,"docEnd":8811,"docs":{"brief":"Don't receive decals","tags":[{"tag":"","text":"Don't receive decals"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x2000"},"CONTENTS_LADDER":{"name":"CONTENTS_LADDER","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x20000000"},"DISPSURF_FLAG_SURFACE":{"name":"DISPSURF_FLAG_SURFACE","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1<<0)"},"PARTITION_STATIC_PROPS":{"name":"PARTITION_STATIC_PROPS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1 << 7)"},"DISPSURF_FLAG_SURFPROP1":{"name":"DISPSURF_FLAG_SURFPROP1","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1<<3)"},"CONTENTS_TEAM1":{"name":"CONTENTS_TEAM1","refLine":52,"docStart":2451,"docEnd":2510,"docs":{"brief":"per team contents used to differentiate collisions.","tags":[{"tag":"","text":"per team contents used to differentiate collisions."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x800"},"CONTENTS_UNUSED5":{"name":"CONTENTS_UNUSED5","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x200"},"SURF_HITBOX":{"name":"SURF_HITBOX","refLine":128,"docStart":8936,"docEnd":8971,"docs":{"brief":"surface is part of a hitbox","tags":[{"tag":"","text":"surface is part of a hitbox"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x8000"},"SURF_LIGHT":{"name":"SURF_LIGHT","refLine":111,"docStart":7673,"docEnd":7715,"docs":{"brief":"value will hold the light strength","tags":[{"tag":"","text":"value will hold the light strength"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0001"},"SURF_TRANS":{"name":"SURF_TRANS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0010"},"SURF_TRIGGER":{"name":"SURF_TRIGGER","refLine":117,"docStart":8151,"docEnd":8250,"docs":{"brief":"This is an xbox hack to work around elimination of trigger surfaces, which breaks occluders","tags":[{"tag":"","text":"This is an xbox hack to work around elimination of trigger surfaces, which breaks occluders"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0040"},"SURF_NODRAW":{"name":"SURF_NODRAW","refLine":118,"docStart":8289,"docEnd":8333,"docs":{"brief":"don't bother referencing the texture","tags":[{"tag":"","text":"don't bother referencing the texture"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0080"},"CONTENTS_OPAQUE":{"name":"CONTENTS_OPAQUE","refLine":46,"docStart":2124,"docEnd":2193,"docs":{"brief":"things that cannot be seen through (may be non-solid though).","tags":[{"tag":"","text":"things that cannot be seen through (may be non-solid though)."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x80"},"MASK_SOLID":{"name":"MASK_SOLID","refLine":86,"docStart":4011,"docEnd":4052,"docs":{"brief":"everything that is normally solid","tags":[{"tag":"","text":"everything that is normally solid"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE)"},"MASK_OPAQUE":{"name":"MASK_OPAQUE","refLine":90,"docStart":4590,"docEnd":4656,"docs":{"brief":"everything that blocks line of sight for AI, lighting, etc","tags":[{"tag":"","text":"everything that blocks line of sight for AI, lighting, etc"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_OPAQUE)"},"CONTENTS_WINDOW":{"name":"CONTENTS_WINDOW","refLine":40,"docStart":1809,"docEnd":1853,"docs":{"brief":"translucent, but not watery (glass).","tags":[{"tag":"","text":"translucent, but not watery (glass)."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x2"},"SURF_NOSHADOWS":{"name":"SURF_NOSHADOWS","refLine":125,"docStart":8715,"docEnd":8744,"docs":{"brief":"Don't receive shadows","tags":[{"tag":"","text":"Don't receive shadows"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x1000"},"CONTENTS_MOVEABLE":{"name":"CONTENTS_MOVEABLE","refLine":55,"docStart":2750,"docEnd":2815,"docs":{"brief":"hits entities which are MOVETYPE_PUSH (doors, plats, etc)","tags":[{"tag":"","text":"hits entities which are MOVETYPE_PUSH (doors, plats, etc)"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x4000"},"CONTENTS_MIST":{"name":"CONTENTS_MIST","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x40"},"CONTENTS_HITBOX":{"name":"CONTENTS_HITBOX","refLine":80,"docStart":3790,"docEnd":3829,"docs":{"brief":"use accurate hitboxes on trace.","tags":[{"tag":"","text":"use accurate hitboxes on trace."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x40000000"},"MASK_ALL":{"name":"MASK_ALL","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(0xFFFFFFFF)"},"CONTENTS_MONSTER":{"name":"CONTENTS_MONSTER","refLine":75,"docStart":3461,"docEnd":3510,"docs":{"brief":"should never be on a brush, only in game.","tags":[{"tag":"","text":"should never be on a brush, only in game."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x2000000"},"PARTITION_NON_STATIC_EDICTS":{"name":"PARTITION_NON_STATIC_EDICTS","refLine":140,"docStart":9313,"docEnd":9395,"docs":{"brief":"everything in solid & trigger except the static props, includes SOLID_NOTs","tags":[{"tag":"","text":"everything in solid & trigger except the static props, includes SOLID_NOTs"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1 << 5)"},"CONTENTS_CURRENT_270":{"name":"CONTENTS_CURRENT_270","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x200000"},"MASK_WATER":{"name":"MASK_WATER","refLine":89,"docStart":4468,"docEnd":4507,"docs":{"brief":"water physics in these contents","tags":[{"tag":"","text":"water physics in these contents"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_WATER|CONTENTS_MOVEABLE|CONTENTS_SLIME)"},"SURF_SKY":{"name":"SURF_SKY","refLine":113,"docStart":7882,"docEnd":7919,"docs":{"brief":"don't draw, but add to skybox","tags":[{"tag":"","text":"don't draw, but add to skybox"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0004"},"SURF_BUMPLIGHT":{"name":"SURF_BUMPLIGHT","refLine":124,"docStart":8611,"docEnd":8676,"docs":{"brief":"calculate three lightmaps for the surface for bumpmapping","tags":[{"tag":"","text":"calculate three lightmaps for the surface for bumpmapping"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0800"},"CONTENTS_UNUSED6":{"name":"CONTENTS_UNUSED6","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x4000"},"PARTITION_TRIGGER_EDICTS":{"name":"PARTITION_TRIGGER_EDICTS","refLine":139,"docStart":9221,"docEnd":9264,"docs":{"brief":"every edict_t that IS SOLID_TRIGGER","tags":[{"tag":"","text":"every edict_t that IS SOLID_TRIGGER"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1 << 2)"},"MASK_VISIBLE":{"name":"MASK_VISIBLE","refLine":92,"docStart":4896,"docEnd":4952,"docs":{"brief":"everything that blocks line of sight for players","tags":[{"tag":"","text":"everything that blocks line of sight for players"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(MASK_OPAQUE|CONTENTS_IGNORE_NODRAW_OPAQUE)"},"CONTENTS_AREAPORTAL":{"name":"CONTENTS_AREAPORTAL","refLine":56,"docStart":2854,"docEnd":2920,"docs":{"brief":"remaining contents are non-visible, and don't eat brushes.","tags":[{"tag":"","text":"remaining contents are non-visible, and don't eat brushes."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x8000"},"MASK_NPCSOLID_BRUSHONLY":{"name":"MASK_NPCSOLID_BRUSHONLY","refLine":99,"docStart":6139,"docEnd":6225,"docs":{"brief":"everything normally solid for npc movement, except monsters (world+brush only)","tags":[{"tag":"","text":"everything normally solid for npc movement, except monsters (world+brush only)"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE)"},"PARTITION_SOLID_EDICTS":{"name":"PARTITION_SOLID_EDICTS","refLine":138,"docStart":9094,"docEnd":9172,"docs":{"brief":"every edict_t that isn't SOLID_TRIGGER or SOLID_NOT (and static props)","tags":[{"tag":"","text":"every edict_t that isn't SOLID_TRIGGER or SOLID_NOT (and static props)"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1 << 1)"},"MASK_SPLITAREAPORTAL":{"name":"MASK_SPLITAREAPORTAL","refLine":101,"docStart":6451,"docEnd":6502,"docs":{"brief":"These are things that can split areaportals","tags":[{"tag":"","text":"These are things that can split areaportals"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_WATER|CONTENTS_SLIME)"},"_sdktools_trace_included":{"name":"_sdktools_trace_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":""},"CONTENTS_EMPTY":{"name":"CONTENTS_EMPTY","refLine":38,"docStart":1682,"docEnd":1702,"docs":{"brief":"No contents.","tags":[{"tag":"","text":"No contents."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0"},"CONTENTS_DETAIL":{"name":"CONTENTS_DETAIL","refLine":77,"docStart":3585,"docEnd":3629,"docs":{"brief":"brushes to be added after vis leafs.","tags":[{"tag":"","text":"brushes to be added after vis leafs."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x8000000"},"SURF_NOPORTAL":{"name":"SURF_NOPORTAL","refLine":116,"docStart":8058,"docEnd":8112,"docs":{"brief":"the surface can not have a portal placed on it","tags":[{"tag":"","text":"the surface can not have a portal placed on it"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0020"},"CONTENTS_CURRENT_90":{"name":"CONTENTS_CURRENT_90","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x80000"},"ALL_VISIBLE_CONTENTS":{"name":"ALL_VISIBLE_CONTENTS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(LAST_VISIBLE_CONTENTS | (LAST_VISIBLE_CONTENTS-1))"},"CONTENTS_DEBRIS":{"name":"CONTENTS_DEBRIS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x4000000"},"DISPSURF_FLAG_SURFPROP2":{"name":"DISPSURF_FLAG_SURFPROP2","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"(1<<4)"},"CONTENTS_GRATE":{"name":"CONTENTS_GRATE","refLine":42,"docStart":1913,"docEnd":1998,"docs":{"brief":"alpha-tested \"grate\" textures. Bullets/sight pass through, but solids don't.","tags":[{"tag":"","text":"alpha-tested \"grate\" textures. Bullets/sight pass through, but solids don't."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x8"},"CONTENTS_IGNORE_NODRAW_OPAQUE":{"name":"CONTENTS_IGNORE_NODRAW_OPAQUE","refLine":54,"docStart":2648,"docEnd":2713,"docs":{"brief":"ignore CONTENTS_OPAQUE on surfaces that have SURF_NODRAW.","tags":[{"tag":"","text":"ignore CONTENTS_OPAQUE on surfaces that have SURF_NODRAW."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x2000"},"CONTENTS_CURRENT_180":{"name":"CONTENTS_CURRENT_180","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x100000"},"SURF_SKY2D":{"name":"SURF_SKY2D","refLine":112,"docStart":7754,"docEnd":7843,"docs":{"brief":"don't draw, indicates we should skylight + draw 2d sky but not draw the 3D skybox","tags":[{"tag":"","text":"don't draw, indicates we should skylight + draw 2d sky but not draw the 3D skybox"}]},"metadata":{"created":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954},"last_updated":{"hash":"3add38f66581982a74c72702fd44b9b0480ff5df","count":6343,"time":1538946954}},"value":"0x0002"},"MASK_NPCWORLDSTATIC":{"name":"MASK_NPCWORLDSTATIC","refLine":100,"docStart":6330,"docEnd":6379,"docs":{"brief":"just the world, used for route rebuilding","tags":[{"tag":"","text":"just the world, used for route rebuilding"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE)"},"CONTENTS_MONSTERCLIP":{"name":"CONTENTS_MONSTERCLIP","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x20000"},"CONTENTS_PLAYERCLIP":{"name":"CONTENTS_PLAYERCLIP","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x10000"},"CONTENTS_CURRENT_0":{"name":"CONTENTS_CURRENT_0","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x40000"},"CONTENTS_TESTFOGVOLUME":{"name":"CONTENTS_TESTFOGVOLUME","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x100"},"MASK_VISIBLE_AND_NPCS":{"name":"MASK_VISIBLE_AND_NPCS","refLine":93,"docStart":5044,"docEnd":5126,"docs":{"brief":"everything that blocks line of sight for players, but with monsters added.","tags":[{"tag":"","text":"everything that blocks line of sight for players, but with monsters added."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(MASK_OPAQUE_AND_NPCS|CONTENTS_IGNORE_NODRAW_OPAQUE)"},"MASK_NPCSOLID":{"name":"MASK_NPCSOLID","refLine":88,"docStart":4360,"docEnd":4387,"docs":{"brief":"blocks npc movement","tags":[{"tag":"","text":"blocks npc movement"}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"(CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE)"},"CONTENTS_AUX":{"name":"CONTENTS_AUX","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":"0x4"}},"enums":{"RayType":{"name":"RayType","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"entries":{"RayType_EndPoint":{"name":"RayType_EndPoint","refLine":109,"docStart":6570,"docEnd":6644,"docs":{"brief":"The trace ray will go from the start position to the end position.","tags":[{"tag":"","text":"The trace ray will go from the start position to the end position."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":null},"RayType_Infinite":{"name":"RayType_Infinite","refLine":110,"docStart":6664,"docEnd":6755,"docs":{"brief":"The trace ray will go from the start position to infinity using a direction vector.","tags":[{"tag":"","text":"The trace ray will go from the start position to infinity using a direction vector."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"value":null}}}},"typesets":{"TraceEntityFilter":{"name":"TraceEntityFilter","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"types":{"function bool(int entity, int contentsMask)":{"refLine":122,"docStart":6794,"docEnd":6995,"docs":{"brief":"Called on entity filtering.","tags":[{"tag":"","text":"Called on entity filtering."},{"tag":"param:entity","text":"Entity index."},{"tag":"param:contentsMask","text":"Contents Mask."},{"tag":"return","text":"True to allow the current entity to be hit, otherwise false."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"type":"function bool(int entity, int contentsMask)","parsedSignature":{"returnType":"bool","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null},{"type":"int","name":"contentsMask","decl":"int contentsMask","default":null}]}},"function bool(int entity, int contentsMask, any data)":{"refLine":132,"docStart":7049,"docEnd":7291,"docs":{"brief":"Called on entity filtering.","tags":[{"tag":"","text":"Called on entity filtering."},{"tag":"param:entity","text":"Entity index."},{"tag":"param:contentsMask","text":"Contents Mask."},{"tag":"param:data","text":"Data value, if used."},{"tag":"return","text":"True to allow the current entity to be hit, otherwise false."}]},"metadata":{"created":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402},"last_updated":{"hash":"9c98edd1048b608e47f7b3991ef1d5d9bb5dcbc8","count":5070,"time":1418193402}},"type":"function bool(int entity, int contentsMask, any data)","parsedSignature":{"returnType":"bool","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null},{"type":"int","name":"contentsMask","decl":"int contentsMask","default":null},{"type":"any","name":"data","decl":"any data","default":null}]}}}},"TraceEntityEnumerator":{"name":"TraceEntityEnumerator","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"types":{"function bool(int entity)":{"refLine":143,"docStart":7384,"docEnd":7559,"docs":{"brief":"Called for each entity enumerated with EnumerateEntities*.","tags":[{"tag":"","text":"Called for each entity enumerated with EnumerateEntities*."},{"tag":"param:entity","text":"Entity index."},{"tag":"return","text":"True to continue enumerating, otherwise false."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"type":"function bool(int entity)","parsedSignature":{"returnType":"bool","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null}]}},"function bool(int entity, any data)":{"refLine":151,"docStart":7594,"docEnd":7807,"docs":{"brief":"Called for each entity enumerated with EnumerateEntities*.","tags":[{"tag":"","text":"Called for each entity enumerated with EnumerateEntities*."},{"tag":"param:entity","text":"Entity index."},{"tag":"param:data","text":"Data value, if used."},{"tag":"return","text":"True to continue enumerating, otherwise false."}]},"metadata":{"created":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732},"last_updated":{"hash":"144fb907f1f636ef80019d2fa3c132f09d6d7719","count":6326,"time":1534197732}},"type":"function bool(int entity, any data)","parsedSignature":{"returnType":"bool","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null},{"type":"any","name":"data","decl":"any data","default":null}]}}}}},"typedefs":{}},"sdktools_engine":{"functions":{"SetClientViewEntity":{"name":"SetClientViewEntity","refLine":48,"docStart":1689,"docEnd":1899,"docs":{"brief":"Sets a client's \"viewing entity.\"","tags":[{"tag":"","text":"Sets a client's \"viewing entity.\""},{"tag":"param:client","text":"Client index."},{"tag":"param:entity","text":"Entity index."},{"tag":"error","text":"Invalid client or entity, lack of mod support, or client not in\ngame."}]},"metadata":{"created":{"hash":"ee05ac6cfbf41bbd7b31a8505938641ee6bcebc0","count":1107,"time":1184376601},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"int","name":"entity","decl":"int entity","default":null}]},"SetLightStyle":{"name":"SetLightStyle","refLine":57,"docStart":1961,"docEnd":2179,"docs":{"brief":"Sets a light style.","tags":[{"tag":"","text":"Sets a light style."},{"tag":"param:style","text":"Light style (from 0 to MAX_LIGHTSTYLES-1)"},{"tag":"param:value","text":"Light value string (see world.cpp/light.cpp in dlls)"},{"tag":"error","text":"Light style index is out of range."}]},"metadata":{"created":{"hash":"4527682421e3c9cfeb36961099abca58187a5682","count":1153,"time":1185227482},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"style","decl":"int style","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null}]},"GetClientEyePosition":{"name":"GetClientEyePosition","refLine":66,"docStart":2242,"docEnd":2475,"docs":{"brief":"Returns the client's eye position.","tags":[{"tag":"","text":"Returns the client's eye position."},{"tag":"param:client","text":"Player's index."},{"tag":"param:pos","text":"Destination vector to store the client's eye position."},{"tag":"error","text":"Invalid client index, client not in game, or no mod support."}]},"metadata":{"created":{"hash":"d05a57fcba7ed445570d42e1a090f37fde82aba5","count":1220,"time":1185847705},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"float[3]","name":"pos","decl":"float pos[3]","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_engine_included":{"name":"_sdktools_engine_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"ee05ac6cfbf41bbd7b31a8505938641ee6bcebc0","count":1107,"time":1184376601},"last_updated":{"hash":"ee05ac6cfbf41bbd7b31a8505938641ee6bcebc0","count":1107,"time":1184376601}},"value":""},"MAX_LIGHTSTYLES":{"name":"MAX_LIGHTSTYLES","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"4527682421e3c9cfeb36961099abca58187a5682","count":1153,"time":1185227482},"last_updated":{"hash":"4527682421e3c9cfeb36961099abca58187a5682","count":1153,"time":1185227482}},"value":"64"}},"enums":{},"typesets":{},"typedefs":{}},"sdktools_entoutput":{"functions":{"HookSingleEntityOutput":{"name":"HookSingleEntityOutput","refLine":84,"docStart":3074,"docEnd":3428,"docs":{"brief":"Add an entity output hook on a single entity instance","tags":[{"tag":"","text":"Add an entity output hook on a single entity instance"},{"tag":"param:entity","text":"The entity on which to add a hook."},{"tag":"param:output","text":"The output name to hook."},{"tag":"param:callback","text":"An EntityOutput function pointer."},{"tag":"param:once","text":"Only fire this hook once and then remove itself."},{"tag":"error","text":"Entity Outputs disabled or Invalid Entity index."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null},{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"EntityOutput","name":"callback","decl":"EntityOutput callback","default":null},{"type":"bool","name":"once","decl":"bool once","default":"false"}]},"UnhookEntityOutput":{"name":"UnhookEntityOutput","refLine":68,"docStart":2416,"docEnd":2707,"docs":{"brief":"Remove an entity output hook.","tags":[{"tag":"","text":"Remove an entity output hook."},{"tag":"param:classname","text":"The classname to hook."},{"tag":"param:output","text":"The output name to hook."},{"tag":"param:callback","text":"An EntityOutput function pointer."},{"tag":"return","text":"True on success, false if no valid hook was found."},{"tag":"error","text":"Entity Outputs disabled."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"classname","decl":"const char[] classname","default":null},{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"EntityOutput","name":"callback","decl":"EntityOutput callback","default":null}]},"FireEntityOutput":{"name":"FireEntityOutput","refLine":108,"docStart":3982,"docEnd":4420,"docs":{"brief":"Fire a named output on an entity.\n\nAfter completion (successful or not), the current global variant is re-initialized.","tags":[{"tag":"","text":"Fire a named output on an entity.\n\nAfter completion (successful or not), the current global variant is re-initialized."},{"tag":"param:caller","text":"Entity index from where the output is fired."},{"tag":"param:output","text":"Output name."},{"tag":"param:activator","text":"Entity index which initiated the sequence of actions (-1 for a NULL entity)."},{"tag":"param:delay","text":"Delay before firing the output."},{"tag":"error","text":"Invalid entity index or no mod support."}]},"metadata":{"created":{"hash":"08238a803642352ab5e9490e5c78d252cc7e0eff","count":6056,"time":1487204983},"last_updated":{"hash":"08238a803642352ab5e9490e5c78d252cc7e0eff","count":6056,"time":1487204983}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"caller","decl":"int caller","default":null},{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"int","name":"activator","decl":"int activator","default":"-1"},{"type":"float","name":"delay","decl":"float delay","default":"0.000000"}]},"HookEntityOutput":{"name":"HookEntityOutput","refLine":63,"docStart":2328,"docEnd":2575,"docs":{"brief":"Add an entity output hook on a entity classname","tags":[{"tag":"","text":"Add an entity output hook on a entity classname"},{"tag":"param:classname","text":"The classname to hook."},{"tag":"param:output","text":"The output name to hook."},{"tag":"param:callback","text":"An EntityOutput function pointer."},{"tag":"error","text":"Entity Outputs disabled."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"classname","decl":"const char[] classname","default":null},{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"EntityOutput","name":"callback","decl":"EntityOutput callback","default":null}]},"UnhookSingleEntityOutput":{"name":"UnhookSingleEntityOutput","refLine":91,"docStart":3295,"docEnd":3636,"docs":{"brief":"Remove a single entity output hook.","tags":[{"tag":"","text":"Remove a single entity output hook."},{"tag":"param:entity","text":"The entity on which to remove the hook."},{"tag":"param:output","text":"The output name to hook."},{"tag":"param:callback","text":"An EntityOutput function pointer."},{"tag":"return","text":"True on success, false if no valid hook was found."},{"tag":"error","text":"Entity Outputs disabled or Invalid Entity index."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null},{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"EntityOutput","name":"callback","decl":"EntityOutput callback","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_entoutput_included":{"name":"_sdktools_entoutput_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":""}},"enums":{},"typesets":{"EntityOutput":{"name":"EntityOutput","refLine":49,"docStart":1663,"docEnd":2135,"docs":{"brief":"Called when an entity output is fired.","tags":[{"tag":"","text":"Called when an entity output is fired."},{"tag":"param:output","text":"Name of the output that fired."},{"tag":"param:caller","text":"Entity index of the caller."},{"tag":"param:activator","text":"Entity index of the activator."},{"tag":"param:delay","text":"Delay in seconds? before the event gets fired."},{"tag":"return","text":"Anything other than Plugin_Continue will supress this event,\nreturning Plugin_Continue will allow it to propagate the results\nof this output to any entity inputs."}]},"metadata":{"created":{"hash":"4cba1925fda346a167f1e20742613cd8a1dad7a1","count":5823,"time":1451494317},"last_updated":{"hash":"4cba1925fda346a167f1e20742613cd8a1dad7a1","count":5823,"time":1451494317}},"types":{"function void(const char[] output, int caller, int activator, float delay)":{"refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"4cba1925fda346a167f1e20742613cd8a1dad7a1","count":5823,"time":1451494317},"last_updated":{"hash":"4cba1925fda346a167f1e20742613cd8a1dad7a1","count":5823,"time":1451494317}},"type":"function void(const char[] output, int caller, int activator, float delay)","parsedSignature":{"returnType":"void","arguments":[{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"int","name":"caller","decl":"int caller","default":null},{"type":"int","name":"activator","decl":"int activator","default":null},{"type":"float","name":"delay","decl":"float delay","default":null}]}},"function Action(const char[] output, int caller, int activator, float delay)":{"refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"4cba1925fda346a167f1e20742613cd8a1dad7a1","count":5823,"time":1451494317},"last_updated":{"hash":"4cba1925fda346a167f1e20742613cd8a1dad7a1","count":5823,"time":1451494317}},"type":"function Action(const char[] output, int caller, int activator, float delay)","parsedSignature":{"returnType":"Action","arguments":[{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"int","name":"caller","decl":"int caller","default":null},{"type":"int","name":"activator","decl":"int activator","default":null},{"type":"float","name":"delay","decl":"float delay","default":null}]}}}}},"typedefs":{"EntityOutput":{"name":"EntityOutput","refLine":47,"docStart":1663,"docEnd":1948,"docs":{"brief":"Called when an entity output is fired.","tags":[{"tag":"","text":"Called when an entity output is fired."},{"tag":"param:output","text":"Name of the output that fired."},{"tag":"param:caller","text":"Entity index of the caller."},{"tag":"param:activator","text":"Entity index of the activator."},{"tag":"param:delay","text":"Delay in seconds? before the event gets fired."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"type":"function void(const char[] output, int caller, int activator, float delay)","parsedSignature":{"returnType":"void","arguments":[{"type":"const char[]","name":"output","decl":"const char[] output","default":null},{"type":"int","name":"caller","decl":"int caller","default":null},{"type":"int","name":"activator","decl":"int activator","default":null},{"type":"float","name":"delay","decl":"float delay","default":null}]}}}},"vector":{"functions":{"GetAngleVectors":{"name":"GetAngleVectors","refLine":93,"docStart":3048,"docEnd":3291,"docs":{"brief":"Returns vectors in the direction of an angle.","tags":[{"tag":"","text":"Returns vectors in the direction of an angle."},{"tag":"param:angle","text":"Angle."},{"tag":"param:fwd","text":"Forward vector buffer or NULL_VECTOR."},{"tag":"param:right","text":"Right vector buffer or NULL_VECTOR."},{"tag":"param:up","text":"Up vector buffer or NULL_VECTOR."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"angle","decl":"const float angle[3]","default":null},{"type":"float[3]","name":"fwd","decl":"float fwd[3]","default":null},{"type":"float[3]","name":"right","decl":"float right[3]","default":null},{"type":"float[3]","name":"up","decl":"float up[3]","default":null}]},"SubtractVectors":{"name":"SubtractVectors","refLine":124,"docStart":3333,"docEnd":3588,"docs":{"brief":"Subtracts a vector from another vector. It is safe to use either input\nbuffer as an output buffer.","tags":[{"tag":"","text":"Subtracts a vector from another vector. It is safe to use either input\nbuffer as an output buffer."},{"tag":"param:vec1","text":"First vector."},{"tag":"param:vec2","text":"Second vector to subtract from first."},{"tag":"param:result","text":"Result buffer."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"stock","returnType":"void","arguments":[{"type":"const float[3]","name":"vec1","decl":"const float vec1[3]","default":null},{"type":"const float[3]","name":"vec2","decl":"const float vec2[3]","default":null},{"type":"float[3]","name":"result","decl":"float result[3]","default":null}]},"MakeVectorFromPoints":{"name":"MakeVectorFromPoints","refLine":166,"docStart":4172,"docEnd":4395,"docs":{"brief":"Builds a vector from two points by subtracting the points.","tags":[{"tag":"","text":"Builds a vector from two points by subtracting the points."},{"tag":"param:pt1","text":"First point (to be subtracted from the second)."},{"tag":"param:pt2","text":"Second point."},{"tag":"param:output","text":"Output vector buffer."}]},"metadata":{"created":{"hash":"78d6d2b6e235ece95b2c4e90937df24534bbdb6f","count":1156,"time":1185229532},"last_updated":{"hash":"78d6d2b6e235ece95b2c4e90937df24534bbdb6f","count":1156,"time":1185229532}},"kind":"stock","returnType":"void","arguments":[{"type":"const float[3]","name":"pt1","decl":"const float pt1[3]","default":null},{"type":"const float[3]","name":"pt2","decl":"const float pt2[3]","default":null},{"type":"float[3]","name":"output","decl":"float output[3]","default":null}]},"GetVectorLength":{"name":"GetVectorLength","refLine":28,"docStart":710,"docEnd":899,"docs":{"brief":"Calculates a vector's length.","tags":[{"tag":"","text":"Calculates a vector's length."},{"tag":"param:vec","text":"Vector."},{"tag":"param:squared","text":"If true, the result will be squared (for optimization)."},{"tag":"return","text":"Vector length (magnitude)."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"native","returnType":"float","arguments":[{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"bool","name":"squared","decl":"bool squared","default":"false"}]},"GetVectorCrossProduct":{"name":"GetVectorCrossProduct","refLine":74,"docStart":2480,"docEnd":2697,"docs":{"brief":"Computes the cross product of two vectors. Any input array can be the same\nas the output array.","tags":[{"tag":"","text":"Computes the cross product of two vectors. Any input array can be the same\nas the output array."},{"tag":"param:vec1","text":"First vector."},{"tag":"param:vec2","text":"Second vector."},{"tag":"param:result","text":"Resultant vector."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"vec1","decl":"const float vec1[3]","default":null},{"type":"const float[3]","name":"vec2","decl":"const float vec2[3]","default":null},{"type":"float[3]","name":"result","decl":"float result[3]","default":null}]},"NormalizeVector":{"name":"NormalizeVector","refLine":67,"docStart":1877,"docEnd":2057,"docs":{"brief":"Normalizes a vector. The input array can be the same as the output array.","tags":[{"tag":"","text":"Normalizes a vector. The input array can be the same as the output array."},{"tag":"param:vec","text":"Vector."},{"tag":"param:result","text":"Resultant vector."},{"tag":"return","text":"Vector length."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"native","returnType":"float","arguments":[{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"float[3]","name":"result","decl":"float result[3]","default":null}]},"GetVectorDistance":{"name":"GetVectorDistance","refLine":38,"docStart":974,"docEnd":1204,"docs":{"brief":"Calculates the distance between two vectors.","tags":[{"tag":"","text":"Calculates the distance between two vectors."},{"tag":"param:vec1","text":"First vector."},{"tag":"param:vec2","text":"Second vector."},{"tag":"param:squared","text":"If true, the result will be squared (for optimization)."},{"tag":"return","text":"Vector distance."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"native","returnType":"float","arguments":[{"type":"const float[3]","name":"vec1","decl":"const float vec1[3]","default":null},{"type":"const float[3]","name":"vec2","decl":"const float vec2[3]","default":null},{"type":"bool","name":"squared","decl":"bool squared","default":"false"}]},"GetVectorAngles":{"name":"GetVectorAngles","refLine":101,"docStart":3390,"docEnd":3492,"docs":{"brief":"Returns angles from a vector.","tags":[{"tag":"","text":"Returns angles from a vector."},{"tag":"param:vec","text":"Vector."},{"tag":"param:angle","text":"Angle buffer."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"float[3]","name":"angle","decl":"float angle[3]","default":null}]},"GetVectorDotProduct":{"name":"GetVectorDotProduct","refLine":47,"docStart":1303,"docEnd":1471,"docs":{"brief":"Calculates the dot product of two vectors.","tags":[{"tag":"","text":"Calculates the dot product of two vectors."},{"tag":"param:vec1","text":"First vector."},{"tag":"param:vec2","text":"Second vector."},{"tag":"return","text":"Dot product of the two vectors."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"native","returnType":"float","arguments":[{"type":"const float[3]","name":"vec1","decl":"const float vec1[3]","default":null},{"type":"const float[3]","name":"vec2","decl":"const float vec2[3]","default":null}]},"GetVectorVectors":{"name":"GetVectorVectors","refLine":110,"docStart":3562,"docEnd":3745,"docs":{"brief":"Returns direction vectors from a vector.","tags":[{"tag":"","text":"Returns direction vectors from a vector."},{"tag":"param:vec","text":"Vector."},{"tag":"param:right","text":"Right vector buffer or NULL_VECTOR."},{"tag":"param:up","text":"Up vector buffer or NULL_VECTOR."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null},{"type":"float[3]","name":"right","decl":"float right[3]","default":null},{"type":"float[3]","name":"up","decl":"float up[3]","default":null}]},"AddVectors":{"name":"AddVectors","refLine":108,"docStart":2937,"docEnd":3147,"docs":{"brief":"Adds two vectors. It is safe to use either input buffer as an output\nbuffer.","tags":[{"tag":"","text":"Adds two vectors. It is safe to use either input buffer as an output\nbuffer."},{"tag":"param:vec1","text":"First vector."},{"tag":"param:vec2","text":"Second vector."},{"tag":"param:result","text":"Result buffer."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"stock","returnType":"void","arguments":[{"type":"const float[3]","name":"vec1","decl":"const float vec1[3]","default":null},{"type":"const float[3]","name":"vec2","decl":"const float vec2[3]","default":null},{"type":"float[3]","name":"result","decl":"float result[3]","default":null}]},"ScaleVector":{"name":"ScaleVector","refLine":138,"docStart":3779,"docEnd":3881,"docs":{"brief":"Scales a vector.","tags":[{"tag":"","text":"Scales a vector."},{"tag":"param:vec","text":"Vector."},{"tag":"param:scale","text":"Scale value."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"stock","returnType":"void","arguments":[{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null},{"type":"float","name":"scale","decl":"float scale","default":null}]},"NegateVector":{"name":"NegateVector","refLine":151,"docStart":3994,"docEnd":4068,"docs":{"brief":"Negatives a vector.","tags":[{"tag":"","text":"Negatives a vector."},{"tag":"param:vec","text":"Vector."}]},"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"kind":"stock","returnType":"void","arguments":[{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_vector_included":{"name":"_vector_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990},"last_updated":{"hash":"c1190fe89d4d0978e6118de2a80645f122d8d203","count":1070,"time":1183915990}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"sdktools_hooks":{"functions":{"OnPlayerRunCmd":{"name":"OnPlayerRunCmd","refLine":59,"docStart":1732,"docEnd":2825,"docs":{"brief":"Called when a clients movement buttons are being processed","tags":[{"tag":"","text":""},{"tag":"brief","text":"Called when a clients movement buttons are being processed"},{"tag":"param:client","text":"Index of the client."},{"tag":"param:buttons","text":"Copyback buffer containing the current commands (as bitflags - see entity_prop_stocks.inc)."},{"tag":"param:impulse","text":"Copyback buffer containing the current impulse command."},{"tag":"param:vel","text":"Players desired velocity."},{"tag":"param:angles","text":"Players desired view angles."},{"tag":"param:weapon","text":"Entity index of the new weapon if player switches weapon, 0 otherwise."},{"tag":"param:subtype","text":"Weapon subtype when selected from a menu."},{"tag":"param:cmdnum","text":"Command number. Increments from the first command sent."},{"tag":"param:tickcount","text":"Tick count. A client's prediction based on the server's GetGameTickCount value."},{"tag":"param:seed","text":"Random seed. Used to determine weapon recoil, spread, and other predicted elements."},{"tag":"param:mouse","text":"Mouse direction (x, y)."},{"tag":"return","text":"Plugin_Handled to block the commands from being processed, Plugin_Continue otherwise."},{"tag":"note","text":"To see if all 11 params are avaliable, use FeatureType_Capability and\nFEATURECAP_PLAYERRUNCMD_11PARAMS."}]},"metadata":{"created":{"hash":"7b6f2863a94a415e31fd833101f42d70536f8b3f","count":2712,"time":1242093246},"last_updated":{"hash":"74f49ec38f321e2b12d30b9e20deea8ff815b3a8","count":3621,"time":1345524166}},"kind":"forward","returnType":"Action","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"int&","name":"buttons","decl":"int& buttons","default":null},{"type":"int&","name":"impulse","decl":"int& impulse","default":null},{"type":"float[3]","name":"vel","decl":"float vel[3]","default":null},{"type":"float[3]","name":"angles","decl":"float angles[3]","default":null},{"type":"int&","name":"weapon","decl":"int& weapon","default":null},{"type":"int&","name":"subtype","decl":"int& subtype","default":null},{"type":"int&","name":"cmdnum","decl":"int& cmdnum","default":null},{"type":"int&","name":"tickcount","decl":"int& tickcount","default":null},{"type":"int&","name":"seed","decl":"int& seed","default":null},{"type":"int[2]","name":"mouse","decl":"int mouse[2]","default":null}]},"OnFileReceive":{"name":"OnFileReceive","refLine":79,"docStart":3275,"docEnd":3506,"docs":{"brief":"Called when a client sends a file to the server.","tags":[{"tag":"","text":""},{"tag":"brief","text":"Called when a client sends a file to the server."},{"tag":"param:client","text":"Client index."},{"tag":"param:sFile","text":"Requested file path."},{"tag":"return","text":"Plugin_Handled to block the transfer, Plugin_Continue to let it proceed."}]},"metadata":{"created":{"hash":"274e7bd32923ad1d55979d1c9d09590da276dbc4","count":5630,"time":1442088093},"last_updated":{"hash":"274e7bd32923ad1d55979d1c9d09590da276dbc4","count":5630,"time":1442088093}},"kind":"forward","returnType":"Action","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"sFile","decl":"const char[] sFile","default":null}]},"OnPlayerRunCmdPost":{"name":"OnPlayerRunCmdPost","refLine":76,"docStart":3013,"docEnd":3820,"docs":{"brief":"Called after a clients movement buttons were processed.","tags":[{"tag":"","text":""},{"tag":"brief","text":"Called after a clients movement buttons were processed."},{"tag":"param:client","text":"Index of the client."},{"tag":"param:buttons","text":"The current commands (as bitflags - see entity_prop_stocks.inc)."},{"tag":"param:impulse","text":"The current impulse command."},{"tag":"param:vel","text":"Players desired velocity."},{"tag":"param:angles","text":"Players desired view angles."},{"tag":"param:weapon","text":"Entity index of the new weapon if player switches weapon, 0 otherwise."},{"tag":"param:subtype","text":"Weapon subtype when selected from a menu."},{"tag":"param:cmdnum","text":"Command number. Increments from the first command sent."},{"tag":"param:tickcount","text":"Tick count. A client's prediction based on the server's GetGameTickCount value."},{"tag":"param:seed","text":"Random seed. Used to determine weapon recoil, spread, and other predicted elements."},{"tag":"param:mouse","text":"Mouse direction (x, y)."}]},"metadata":{"created":{"hash":"1351df42608f62e8f6b08bbc37906e98d870c3f0","count":6087,"time":1494339365},"last_updated":{"hash":"1351df42608f62e8f6b08bbc37906e98d870c3f0","count":6087,"time":1494339365}},"kind":"forward","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"int","name":"buttons","decl":"int buttons","default":null},{"type":"int","name":"impulse","decl":"int impulse","default":null},{"type":"const float[3]","name":"vel","decl":"const float vel[3]","default":null},{"type":"const float[3]","name":"angles","decl":"const float angles[3]","default":null},{"type":"int","name":"weapon","decl":"int weapon","default":null},{"type":"int","name":"subtype","decl":"int subtype","default":null},{"type":"int","name":"cmdnum","decl":"int cmdnum","default":null},{"type":"int","name":"tickcount","decl":"int tickcount","default":null},{"type":"int","name":"seed","decl":"int seed","default":null},{"type":"const int[2]","name":"mouse","decl":"const int mouse[2]","default":null}]},"OnFileSend":{"name":"OnFileSend","refLine":69,"docStart":2977,"docEnd":3213,"docs":{"brief":"Called when a client requests a file from the server.","tags":[{"tag":"","text":""},{"tag":"brief","text":"Called when a client requests a file from the server."},{"tag":"param:client","text":"Client index."},{"tag":"param:sFile","text":"Requested file path."},{"tag":"return","text":"Plugin_Handled to block the transfer, Plugin_Continue to let it proceed."}]},"metadata":{"created":{"hash":"274e7bd32923ad1d55979d1c9d09590da276dbc4","count":5630,"time":1442088093},"last_updated":{"hash":"274e7bd32923ad1d55979d1c9d09590da276dbc4","count":5630,"time":1442088093}},"kind":"forward","returnType":"Action","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"const char[]","name":"sFile","decl":"const char[] sFile","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_hooks_included":{"name":"_sdktools_hooks_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"7b6f2863a94a415e31fd833101f42d70536f8b3f","count":2712,"time":1242093246},"last_updated":{"hash":"7b6f2863a94a415e31fd833101f42d70536f8b3f","count":2712,"time":1242093246}},"value":""},"FEATURECAP_PLAYERRUNCMD_11PARAMS":{"name":"FEATURECAP_PLAYERRUNCMD_11PARAMS","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"74f49ec38f321e2b12d30b9e20deea8ff815b3a8","count":3621,"time":1345524166},"last_updated":{"hash":"74f49ec38f321e2b12d30b9e20deea8ff815b3a8","count":3621,"time":1345524166}},"value":"\"SDKTools PlayerRunCmd 11Params\""}},"enums":{},"typesets":{},"typedefs":{}},"bitbuffer":{"functions":{"BfReadEntity":{"name":"BfReadEntity","refLine":246,"docStart":6868,"docEnd":7108,"docs":{"brief":"Reads an entity from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads an entity from a readable bitbuffer (bf_read)."},{"tag":"note","text":"This is a wrapper around BfReadShort()."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Entity index read."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfWriteEntity":{"name":"BfWriteEntity","refLine":280,"docStart":9415,"docEnd":9682,"docs":{"brief":"Writes an entity to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes an entity to a writable bitbuffer (bf_write)."},{"tag":"note","text":"This is a wrapper around BfWriteShort()."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:ent","text":"Entity index to write."},{"tag":"error","text":"Invalid or incorrect Handle, or invalid entity."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"ent","decl":"int ent","default":null}]},"BfReadAngle":{"name":"BfReadAngle","refLine":256,"docStart":7145,"docEnd":7382,"docs":{"brief":"Reads a bit angle from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a bit angle from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"param:numBits","text":"Optional number of bits to use."},{"tag":"return","text":"Angle read."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"numBits","decl":"int numBits","default":"8"}]},"BfReadBool":{"name":"BfReadBool","refLine":170,"docStart":4667,"docEnd":4858,"docs":{"brief":"Reads a single bit from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a single bit from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Bit value read."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfReadVecCoord":{"name":"BfReadVecCoord","refLine":444,"docStart":14478,"docEnd":14701,"docs":{"brief":"Reads a 3D vector of coordinates from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 3D vector of coordinates from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"param:coord","text":"Destination coordinate array."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"coord","decl":"float coord[3]","default":null}]},"BfReadFloat":{"name":"BfReadFloat","refLine":224,"docStart":6115,"docEnd":6327,"docs":{"brief":"Reads a floating point number from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a floating point number from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Floating point value read."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfReadCoord":{"name":"BfReadCoord","refLine":265,"docStart":7435,"docEnd":7626,"docs":{"brief":"Reads a coordinate from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a coordinate from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Coordinate read."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfGetNumBytesLeft":{"name":"BfGetNumBytesLeft","refLine":325,"docStart":9442,"docEnd":9652,"docs":{"brief":"Returns the number of bytes left in a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Returns the number of bytes left in a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Number of bytes left unread."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a5b8caa16a06c3efafc5bc445fc39342985e7e6","count":1873,"time":1203555815},"last_updated":{"hash":"7a5b8caa16a06c3efafc5bc445fc39342985e7e6","count":1873,"time":1203555815}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfReadChar":{"name":"BfReadChar","refLine":188,"docStart":5133,"docEnd":5328,"docs":{"brief":"Reads a character from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a character from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Character value read."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfWriteChar":{"name":"BfWriteChar","refLine":225,"docStart":7802,"docEnd":7993,"docs":{"brief":"Writes a byte to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a byte to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:chr","text":"Character to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"chr","decl":"int chr","default":null}]},"BfWriteWord":{"name":"BfWriteWord","refLine":243,"docStart":8325,"docEnd":8565,"docs":{"brief":"Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 16bit unsigned integer to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Integer to write (value will be written as 16bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"num","decl":"int num","default":null}]},"BfWriteByte":{"name":"BfWriteByte","refLine":216,"docStart":7532,"docEnd":7751,"docs":{"brief":"Writes a byte to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a byte to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:byte","text":"Byte to write (value will be written as 8bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"byte","decl":"int byte","default":null}]},"BfWriteVecCoord":{"name":"BfWriteVecCoord","refLine":308,"docStart":10305,"docEnd":10525,"docs":{"brief":"Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D vector of coordinates to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:coord","text":"Coordinate array to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"coord","decl":"float coord[3]","default":null}]},"BfWriteString":{"name":"BfWriteString","refLine":270,"docStart":9154,"docEnd":9351,"docs":{"brief":"Writes a string to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a string to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:string","text":"Text string to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"const char[]","name":"string","decl":"const char[] string","default":null}]},"BfReadString":{"name":"BfReadString","refLine":236,"docStart":6369,"docEnd":6786,"docs":{"brief":"Reads a string from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a string from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:line","text":"If true the buffer will be copied until it reaches a '\\n' or a null terminator."},{"tag":"error","text":"Invalid or incorrect Handle, destination string buffer was too short."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"d432dc0cbd17e9150e3f55cc6e156797d2f77413","count":717,"time":1178072145}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"bool","name":"line","decl":"bool line","default":"false"}]},"BfReadAngles":{"name":"BfReadAngles","refLine":462,"docStart":15029,"docEnd":15239,"docs":{"brief":"Reads a 3D angle vector from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 3D angle vector from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"param:angles","text":"Destination angle vector."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"angles","decl":"float angles[3]","default":null}]},"BfReadByte":{"name":"BfReadByte","refLine":179,"docStart":4898,"docEnd":5098,"docs":{"brief":"Reads a byte from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a byte from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Byte value read (read as 8bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfReadShort":{"name":"BfReadShort","refLine":197,"docStart":5363,"docEnd":5576,"docs":{"brief":"Reads a 16bit integer from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 16bit integer from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Integer value read (read as 16bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfWriteNum":{"name":"BfWriteNum","refLine":252,"docStart":8615,"docEnd":8847,"docs":{"brief":"Writes a normal integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a normal integer to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Integer to write (value will be written as 32bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"num","decl":"int num","default":null}]},"BfWriteBool":{"name":"BfWriteBool","refLine":207,"docStart":7262,"docEnd":7480,"docs":{"brief":"Writes a single bit to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a single bit to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:bit","text":"Bit to write (true for 1, false for 0)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"bool","name":"bit","decl":"bool bit","default":null}]},"BfWriteFloat":{"name":"BfWriteFloat","refLine":261,"docStart":8896,"docEnd":9101,"docs":{"brief":"Writes a floating point number to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a floating point number to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Number to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float","name":"num","decl":"float num","default":null}]},"BfWriteAngles":{"name":"BfWriteAngles","refLine":327,"docStart":10860,"docEnd":11067,"docs":{"brief":"Writes a 3D angle vector to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D angle vector to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:angles","text":"Angle vector to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"angles","decl":"float angles[3]","default":null}]},"BfWriteCoord":{"name":"BfWriteCoord","refLine":299,"docStart":10050,"docEnd":10250,"docs":{"brief":"Writes a coordinate to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a coordinate to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:coord","text":"Coordinate to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float","name":"coord","decl":"float coord","default":null}]},"BfWriteVecNormal":{"name":"BfWriteVecNormal","refLine":318,"docStart":10586,"docEnd":10800,"docs":{"brief":"Writes a 3D normal vector to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D normal vector to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:vec","text":"Vector to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null}]},"BfReadWord":{"name":"BfReadWord","refLine":206,"docStart":5612,"docEnd":5834,"docs":{"brief":"Reads a 16bit unsigned integer from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 16bit unsigned integer from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Integer value read (read as 16bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfWriteAngle":{"name":"BfWriteAngle","refLine":290,"docStart":9734,"docEnd":9980,"docs":{"brief":"Writes a bit angle to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a bit angle to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:angle","text":"Angle to write."},{"tag":"param:numBits","text":"Optional number of bits to use."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float","name":"angle","decl":"float angle","default":null},{"type":"int","name":"numBits","decl":"int numBits","default":"8"}]},"BfReadNum":{"name":"BfReadNum","refLine":215,"docStart":5869,"docEnd":6081,"docs":{"brief":"Reads a normal integer to a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a normal integer to a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Integer value read (read as 32bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null}]},"BfReadVecNormal":{"name":"BfReadVecNormal","refLine":453,"docStart":14761,"docEnd":14970,"docs":{"brief":"Reads a 3D normal vector from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 3D normal vector from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"param:vec","text":"Destination vector array."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"f64945b2aa3994ca8db4a76b19327bf3fbe3bc9f","count":599,"time":1173647345},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null}]},"BfWriteShort":{"name":"BfWriteShort","refLine":234,"docStart":8043,"docEnd":8274,"docs":{"brief":"Writes a 16bit integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 16bit integer to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Integer to write (value will be written as 16bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"num","decl":"int num","default":null}]}},"methodmaps":{"BfRead":{"name":"BfRead","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"parent":"Handle","methods":{"ReadByte":{"name":"ReadByte","refLine":122,"docStart":4293,"docEnd":4404,"docs":{"brief":"Reads a byte from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a byte from a readable bitbuffer (bf_read)."},{"tag":"return","text":"Byte value read (read as 8bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[]},"ReadAngles":{"name":"ReadAngles","refLine":192,"docStart":6958,"docEnd":7074,"docs":{"brief":"Reads a 3D angle vector from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 3D angle vector from a readable bitbuffer (bf_read)."},{"tag":"param:angles","text":"Destination angle vector."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"angles","decl":"float angles[3]","default":null}]},"ReadNum":{"name":"ReadNum","refLine":144,"docStart":5018,"docEnd":5141,"docs":{"brief":"Reads a normal integer to a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a normal integer to a readable bitbuffer (bf_read)."},{"tag":"return","text":"Integer value read (read as 32bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[]},"ReadWord":{"name":"ReadWord","refLine":139,"docStart":4797,"docEnd":4981,"docs":{"brief":"Reads a 16bit unsigned integer from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 16bit unsigned integer from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Integer value read (read as 16bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[]},"ReadShort":{"name":"ReadShort","refLine":133,"docStart":4584,"docEnd":4759,"docs":{"brief":"Reads a 16bit integer from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 16bit integer from a readable bitbuffer (bf_read)."},{"tag":"param:bf","text":"bf_read handle to read from."},{"tag":"return","text":"Integer value read (read as 16bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[]},"ReadAngle":{"name":"ReadAngle","refLine":172,"docStart":6256,"docEnd":6406,"docs":{"brief":"Reads a bit angle from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a bit angle from a readable bitbuffer (bf_read)."},{"tag":"param:numBits","text":"Optional number of bits to use."},{"tag":"return","text":"Angle read."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"float","arguments":[{"type":"int","name":"numBits","decl":"int numBits","default":"8"}]},"ReadVecNormal":{"name":"ReadVecNormal","refLine":187,"docStart":6786,"docEnd":6903,"docs":{"brief":"Reads a 3D normal vector from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 3D normal vector from a readable bitbuffer (bf_read)."},{"tag":"param:vec","text":"Destination vector array."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null}]},"ReadVecCoord":{"name":"ReadVecCoord","refLine":182,"docStart":6601,"docEnd":6730,"docs":{"brief":"Reads a 3D vector of coordinates from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a 3D vector of coordinates from a readable bitbuffer (bf_read)."},{"tag":"param:coord","text":"Destination coordinate array."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"coord","decl":"float coord[3]","default":null}]},"ReadChar":{"name":"ReadChar","refLine":127,"docStart":4441,"docEnd":4547,"docs":{"brief":"Reads a character from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a character from a readable bitbuffer (bf_read)."},{"tag":"return","text":"Character value read."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[]},"ReadString":{"name":"ReadString","refLine":161,"docStart":5340,"docEnd":6032,"docs":{"brief":"Reads a string from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a string from a readable bitbuffer (bf_read)."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:line","text":"If true the buffer will be copied until it reaches a '\\n' or a null terminator."},{"tag":"return","text":"Number of bytes written to the buffer. If the bitbuffer stream overflowed,\nthat is, had no terminator before the end of the stream, then a negative\nnumber will be returned equal to the number of characters written to the\nbuffer minus 1. The buffer will be null terminated regardless of the\nreturn value."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"bool","name":"line","decl":"bool line","default":"false"}]},"ReadBool":{"name":"ReadBool","refLine":117,"docStart":4154,"docEnd":4255,"docs":{"brief":"Reads a single bit from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a single bit from a readable bitbuffer (bf_read)."},{"tag":"return","text":"Bit value read."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"bool","arguments":[]},"ReadCoord":{"name":"ReadCoord","refLine":177,"docStart":6459,"docEnd":6561,"docs":{"brief":"Reads a coordinate from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a coordinate from a readable bitbuffer (bf_read)."},{"tag":"return","text":"Coordinate read."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"float","arguments":[]},"ReadFloat":{"name":"ReadFloat","refLine":149,"docStart":5177,"docEnd":5300,"docs":{"brief":"Reads a floating point number from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads a floating point number from a readable bitbuffer (bf_read)."},{"tag":"return","text":"Floating point value read."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"float","arguments":[]},"ReadEntity":{"name":"ReadEntity","refLine":166,"docStart":6116,"docEnd":6217,"docs":{"brief":"Reads an entity from a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Reads an entity from a readable bitbuffer (bf_read)."},{"tag":"return","text":"Entity index read."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"int","arguments":[]}},"properties":{"BytesLeft":{"name":"BytesLeft","refLine":195,"docStart":7129,"docEnd":7199,"docs":{"brief":"Returns the number of bytes left in a readable bitbuffer (bf_read).","tags":[{"tag":"","text":"Returns the number of bytes left in a readable bitbuffer (bf_read)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"type":"int","getter":true,"setter":false}}},"BfWrite":{"name":"BfWrite","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"parent":"Handle","methods":{"WriteByte":{"name":"WriteByte","refLine":48,"docStart":1866,"docEnd":1992,"docs":{"brief":"Writes a byte to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a byte to a writable bitbuffer (bf_write)."},{"tag":"param:byte","text":"Byte to write (value will be written as 8bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"byte","decl":"int byte","default":null}]},"WriteCoord":{"name":"WriteCoord","refLine":94,"docStart":3447,"docEnd":3553,"docs":{"brief":"Writes a coordinate to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a coordinate to a writable bitbuffer (bf_write)."},{"tag":"param:coord","text":"Coordinate to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float","name":"coord","decl":"float coord","default":null}]},"WriteString":{"name":"WriteString","refLine":78,"docStart":2911,"docEnd":3014,"docs":{"brief":"Writes a string to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a string to a writable bitbuffer (bf_write)."},{"tag":"param:string","text":"Text string to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"string","decl":"const char[] string","default":null}]},"WriteNum":{"name":"WriteNum","refLine":68,"docStart":2564,"docEnd":2704,"docs":{"brief":"Writes a normal integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a normal integer to a writable bitbuffer (bf_write)."},{"tag":"param:num","text":"Integer to write (value will be written as 32bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"num","decl":"int num","default":null}]},"WriteVecCoord":{"name":"WriteVecCoord","refLine":99,"docStart":3604,"docEnd":3730,"docs":{"brief":"Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D vector of coordinates to a writable bitbuffer (bf_write)."},{"tag":"param:coord","text":"Coordinate array to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"coord","decl":"float coord[3]","default":null}]},"WriteWord":{"name":"WriteWord","refLine":63,"docStart":2370,"docEnd":2518,"docs":{"brief":"Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 16bit unsigned integer to a writable bitbuffer (bf_write)."},{"tag":"param:num","text":"Integer to write (value will be written as 16bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"num","decl":"int num","default":null}]},"WriteBool":{"name":"WriteBool","refLine":43,"docStart":1692,"docEnd":1817,"docs":{"brief":"Writes a single bit to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a single bit to a writable bitbuffer (bf_write)."},{"tag":"param:bit","text":"Bit to write (true for 1, false for 0)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"bool","name":"bit","decl":"bool bit","default":null}]},"WriteEntity":{"name":"WriteEntity","refLine":83,"docStart":3074,"docEnd":3179,"docs":{"brief":"Writes an entity to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes an entity to a writable bitbuffer (bf_write)."},{"tag":"param:ent","text":"Entity index to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"ent","decl":"int ent","default":null}]},"WriteVecNormal":{"name":"WriteVecNormal","refLine":104,"docStart":3787,"docEnd":3895,"docs":{"brief":"Writes a 3D normal vector to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D normal vector to a writable bitbuffer (bf_write)."},{"tag":"param:vec","text":"Vector to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null}]},"WriteAngles":{"name":"WriteAngles","refLine":109,"docStart":3951,"docEnd":4064,"docs":{"brief":"Writes a 3D angle vector to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D angle vector to a writable bitbuffer (bf_write)."},{"tag":"param:angles","text":"Angle vector to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float[3]","name":"angles","decl":"float angles[3]","default":null}]},"WriteAngle":{"name":"WriteAngle","refLine":89,"docStart":3227,"docEnd":3381,"docs":{"brief":"Writes a bit angle to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a bit angle to a writable bitbuffer (bf_write)."},{"tag":"param:angle","text":"Angle to write."},{"tag":"param:numBits","text":"Optional number of bits to use."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float","name":"angle","decl":"float angle","default":null},{"type":"int","name":"numBits","decl":"int numBits","default":"8"}]},"WriteFloat":{"name":"WriteFloat","refLine":73,"docStart":2749,"docEnd":2862,"docs":{"brief":"Writes a floating point number to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a floating point number to a writable bitbuffer (bf_write)."},{"tag":"param:num","text":"Number to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"float","name":"num","decl":"float num","default":null}]},"WriteChar":{"name":"WriteChar","refLine":53,"docStart":2039,"docEnd":2138,"docs":{"brief":"Writes a byte to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a byte to a writable bitbuffer (bf_write)."},{"tag":"param:chr","text":"Character to write."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"chr","decl":"int chr","default":null}]},"WriteShort":{"name":"WriteShort","refLine":58,"docStart":2184,"docEnd":2323,"docs":{"brief":"Writes a 16bit integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 16bit integer to a writable bitbuffer (bf_write)."},{"tag":"param:num","text":"Integer to write (value will be written as 16bit)."}]},"metadata":{"created":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010},"last_updated":{"hash":"2cfe54f34bda5d948394636e3afd619b3b35d346","count":5021,"time":1415581010}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"num","decl":"int num","default":null}]}},"properties":{}}},"enumstructs":{},"constants":{},"defines":{"_bitbuffer_included":{"name":"_bitbuffer_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636},"last_updated":{"hash":"0fbb38ef8efda0d4df8168302e5c8416903755cb","count":506,"time":1171651636}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"adt_array":{"functions":{"SetArrayCell":{"name":"SetArrayCell","refLine":359,"docStart":13402,"docEnd":13787,"docs":{"brief":"Sets a cell value in an array.","tags":[{"tag":"","text":"Sets a cell value in an array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:value","text":"Cell value to set."},{"tag":"param:block","text":"Optionally specify which block to write to\n(useful if the blocksize > 0)."},{"tag":"param:asChar","text":"Optionally set as a byte instead of a cell."},{"tag":"error","text":"Invalid Handle, invalid index, or invalid block."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null},{"type":"any","name":"value","decl":"any value","default":null},{"type":"int","name":"block","decl":"int block","default":"0"},{"type":"bool","name":"asChar","decl":"bool asChar","default":"false"}]},"ByteCountToCells":{"name":"ByteCountToCells","refLine":28,"docStart":717,"docEnd":962,"docs":{"brief":"Given a maximum string size (including the null terminator),\nreturns the number of cells required to fit that string.","tags":[{"tag":"","text":"Given a maximum string size (including the null terminator),\nreturns the number of cells required to fit that string."},{"tag":"param:size","text":"Number of bytes."},{"tag":"return","text":"Minimum number of cells required to fit the byte count."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"kind":"stock","returnType":"int","arguments":[{"type":"int","name":"size","decl":"int size","default":null}]},"PushArrayArray":{"name":"PushArrayArray","refLine":150,"docStart":4557,"docEnd":5109,"docs":{"brief":"Pushes an array of cells onto the end of an array. The cells\nare pushed as a block (i.e. the entire array sits at the index),\nrather than pushing each cell individually.","tags":[{"tag":"","text":"Pushes an array of cells onto the end of an array. The cells\nare pushed as a block (i.e. the entire array sits at the index),\nrather than pushing each cell individually."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:values","text":"Block of values to copy."},{"tag":"param:size","text":"If not set, the number of elements copied from the array\nwill be equal to the blocksize. If set higher than the\nblocksize, the operation will be truncated."},{"tag":"return","text":"Index of the new entry."},{"tag":"error","text":"Invalid Handle or out of memory."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"21c0466b3d71093885134f5070a7cf22f7c88713","count":2024,"time":1209032744}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"const any[]","name":"values","decl":"const any[] values","default":null},{"type":"int","name":"size","decl":"int size","default":"-1"}]},"CreateArray":{"name":"CreateArray","refLine":230,"docStart":8855,"docEnd":9589,"docs":{"brief":"Creates a dynamic global cell array. While slower than a normal array,\nit can be used globally AND dynamically, which is otherwise impossible.\n\nThe contents of the array are uniform; i.e. storing a string at index X\nand then retrieving it as an integer is NOT the same as StringToInt()!\nThe \"blocksize\" determines how many cells each array slot has; it cannot\nbe changed after creation.","tags":[{"tag":"","text":"Creates a dynamic global cell array. While slower than a normal array,\nit can be used globally AND dynamically, which is otherwise impossible.\n\nThe contents of the array are uniform; i.e. storing a string at index X\nand then retrieving it as an integer is NOT the same as StringToInt()!\nThe \"blocksize\" determines how many cells each array slot has; it cannot\nbe changed after creation."},{"tag":"param:blocksize","text":"The number of cells each member of the array can\nhold. For example, 32 cells is equivalent to:\nnew Array[X][32]"},{"tag":"param:startsize","text":"Initial size of the array. Note that data will\nNOT be auto-intialized."},{"tag":"return","text":"New Handle to the array object."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093}},"kind":"native","returnType":"ArrayList","arguments":[{"type":"int","name":"blocksize","decl":"int blocksize","default":"1"},{"type":"int","name":"startsize","decl":"int startsize","default":"0"}]},"GetArrayCell":{"name":"GetArrayCell","refLine":135,"docStart":3833,"docEnd":4216,"docs":{"brief":"Retrieves a cell value from an array.","tags":[{"tag":"","text":"Retrieves a cell value from an array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:block","text":"Optionally specify which block to read from\n(useful if the blocksize > 0)."},{"tag":"param:asChar","text":"Optionally read as a byte instead of a cell."},{"tag":"return","text":"Value read."},{"tag":"error","text":"Invalid Handle, invalid index, or invalid block."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"kind":"native","returnType":"any","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null},{"type":"int","name":"block","decl":"int block","default":"0"},{"type":"bool","name":"asChar","decl":"bool asChar","default":"false"}]},"GetArrayBlockSize":{"name":"GetArrayBlockSize","refLine":455,"docStart":17013,"docEnd":17185,"docs":{"brief":"Returns the blocksize the array was created with.","tags":[{"tag":"","text":"Returns the blocksize the array was created with."},{"tag":"param:array","text":"Array Handle."},{"tag":"return","text":"The blocksize of the array."},{"tag":"error","text":"Invalid Handle"}]},"metadata":{"created":{"hash":"86363dd3ecf27d57ad1bfe01d63fee68b435291a","count":6053,"time":1486668374},"last_updated":{"hash":"86363dd3ecf27d57ad1bfe01d63fee68b435291a","count":6053,"time":1486668374}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null}]},"SetArrayArray":{"name":"SetArrayArray","refLine":226,"docStart":7303,"docEnd":7674,"docs":{"brief":"Sets an array of cells in an array.","tags":[{"tag":"","text":"Sets an array of cells in an array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:buffer","text":"Array to copy."},{"tag":"param:size","text":"If not set, assumes the buffer size is equal to the\nblocksize. Otherwise, the size passed is used."},{"tag":"return","text":"Number of cells copied."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"21c0466b3d71093885134f5070a7cf22f7c88713","count":2024,"time":1209032744}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null},{"type":"const any[]","name":"values","decl":"const any[] values","default":null},{"type":"int","name":"size","decl":"int size","default":"-1"}]},"ShiftArrayUp":{"name":"ShiftArrayUp","refLine":394,"docStart":14675,"docEnd":15035,"docs":{"brief":"Shifts an array up. All array contents after and including the given\nindex are shifted up by one, and the given index is then \"free.\"\nAfter shifting, the contents of the given index is undefined.","tags":[{"tag":"","text":"Shifts an array up. All array contents after and including the given\nindex are shifted up by one, and the given index is then \"free.\"\nAfter shifting, the contents of the given index is undefined."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array to shift up from."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null}]},"PushArrayCell":{"name":"PushArrayCell","refLine":96,"docStart":2533,"docEnd":2849,"docs":{"brief":"Pushes a value onto the end of an array, adding a new index.\n\nThis may safely be used even if the array has a blocksize\ngreater than 1.","tags":[{"tag":"","text":"Pushes a value onto the end of an array, adding a new index.\n\nThis may safely be used even if the array has a blocksize\ngreater than 1."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:value","text":"Value to push."},{"tag":"return","text":"Index of the new entry."},{"tag":"error","text":"Invalid Handle or out of memory."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"any","name":"value","decl":"any value","default":null}]},"SwapArrayItems":{"name":"SwapArrayItems","refLine":415,"docStart":15533,"docEnd":15724,"docs":{"brief":"Swaps two items in the array.","tags":[{"tag":"","text":"Swaps two items in the array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index1","text":"First index."},{"tag":"param:index2","text":"Second index."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index1","decl":"int index1","default":null},{"type":"int","name":"index2","decl":"int index2","default":null}]},"SetArrayString":{"name":"SetArrayString","refLine":213,"docStart":6974,"docEnd":7226,"docs":{"brief":"Sets a string value in an array.","tags":[{"tag":"","text":"Sets a string value in an array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:value","text":"String value to set."},{"tag":"return","text":"Number of characters copied."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"0e167ee85b9ea4a756873bae5d01e6168f8c4e9d","count":3968,"time":1375363594}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null}]},"ResizeArray":{"name":"ResizeArray","refLine":261,"docStart":10379,"docEnd":10598,"docs":{"brief":"Resizes an array. If the size is smaller than the current size,\nthe array is truncated.","tags":[{"tag":"","text":"Resizes an array. If the size is smaller than the current size,\nthe array is truncated."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:newsize","text":"New size."},{"tag":"error","text":"Invalid Handle or out of memory."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"newsize","decl":"int newsize","default":null}]},"IsStringInArray":{"name":"IsStringInArray","refLine":260,"docStart":8455,"docEnd":8683,"docs":{"brief":"Returns true is the supplied string exists within the supplied array.","tags":[{"tag":"","text":"Returns true is the supplied string exists within the supplied array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:item","text":"String to search for"},{"tag":"return","text":"True if found, false if not"},{"tag":"error","text":"Invalid handle"}]},"metadata":{"created":{"hash":"d27a768d9704f9a37bcdc1b85cca3b466576c873","count":1452,"time":1190482999},"last_updated":{"hash":"d27a768d9704f9a37bcdc1b85cca3b466576c873","count":1452,"time":1190482999}},"kind":"stock","returnType":"bool","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"const char[]","name":"item","decl":"const char[] item","default":null}]},"CloneArray":{"name":"CloneArray","refLine":91,"docStart":2984,"docEnd":3351,"docs":{"brief":"Clones an array, returning a new handle with the same size and data. This should NOT\nbe confused with CloneHandle. This is a completely new handle with the same data but\nno relation to the original. You MUST close it.","tags":[{"tag":"","text":"Clones an array, returning a new handle with the same size and data. This should NOT\nbe confused with CloneHandle. This is a completely new handle with the same data but\nno relation to the original. You MUST close it."},{"tag":"param:array","text":"Array handle to be cloned"},{"tag":"return","text":"New handle to the cloned array object"},{"tag":"error","text":"Invalid Handle"}]},"metadata":{"created":{"hash":"daaf961c07fe7f8161ae7c7919a0d848c31c1d4a","count":1665,"time":1194651965},"last_updated":{"hash":"daaf961c07fe7f8161ae7c7919a0d848c31c1d4a","count":1665,"time":1194651965}},"kind":"native","returnType":"Handle","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null}]},"ClearArray":{"name":"ClearArray","refLine":238,"docStart":9658,"docEnd":9806,"docs":{"brief":"Clears an array of all entries. This is the same as ResizeArray(0).","tags":[{"tag":"","text":"Clears an array of all entries. This is the same as ResizeArray(0)."},{"tag":"param:array","text":"Array Handle."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null}]},"GetArraySize":{"name":"GetArraySize","refLine":83,"docStart":2342,"docEnd":2493,"docs":{"brief":"Returns the array size.","tags":[{"tag":"","text":"Returns the array size."},{"tag":"param:array","text":"Array Handle."},{"tag":"return","text":"Number of elements in the array."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null}]},"GetArrayString":{"name":"GetArrayString","refLine":147,"docStart":4295,"docEnd":4602,"docs":{"brief":"Retrieves a string value from an array.","tags":[{"tag":"","text":"Retrieves a string value from an array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:buffer","text":"Buffer to copy to."},{"tag":"param:maxlength","text":"Maximum size of the buffer."},{"tag":"return","text":"Number of characters copied."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"PushArrayString":{"name":"PushArrayString","refLine":107,"docStart":2901,"docEnd":3149,"docs":{"brief":"Pushes a string onto the end of an array, truncating it\nif it is too big.","tags":[{"tag":"","text":"Pushes a string onto the end of an array, truncating it\nif it is too big."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:value","text":"String to push."},{"tag":"return","text":"Index of the new entry."},{"tag":"error","text":"Invalid Handle or out of memory."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null}]},"GetArrayArray":{"name":"GetArrayArray","refLine":188,"docStart":6026,"docEnd":6419,"docs":{"brief":"Retrieves an array of cells from an array.","tags":[{"tag":"","text":"Retrieves an array of cells from an array."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:buffer","text":"Buffer to store the array in."},{"tag":"param:size","text":"If not set, assumes the buffer size is equal to the\nblocksize. Otherwise, the size passed is used."},{"tag":"return","text":"Number of cells copied."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"21c0466b3d71093885134f5070a7cf22f7c88713","count":2024,"time":1209032744}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null},{"type":"any[]","name":"buffer","decl":"any[] buffer","default":null},{"type":"int","name":"size","decl":"int size","default":"-1"}]},"FindValueInArray":{"name":"FindValueInArray","refLine":440,"docStart":16249,"docEnd":16605,"docs":{"brief":"Returns the index for the first occurrence of the provided value. If the value\ncannot be located, -1 will be returned.","tags":[{"tag":"","text":"Returns the index for the first occurrence of the provided value. If the value\ncannot be located, -1 will be returned."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:item","text":"Value to search for"},{"tag":"param:block","text":"Optionally which block to search in"},{"tag":"return","text":"Array index, or -1 on failure"},{"tag":"error","text":"Invalid Handle or invalid block"}]},"metadata":{"created":{"hash":"daaf961c07fe7f8161ae7c7919a0d848c31c1d4a","count":1665,"time":1194651965},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"any","name":"item","decl":"any item","default":null},{"type":"int","name":"block","decl":"int block","default":"0"}]},"FindStringInArray":{"name":"FindStringInArray","refLine":272,"docStart":8868,"docEnd":9152,"docs":{"brief":"Returns the index for the first occurance of the provided string. If the string\ncannot be located, -1 will be returned.","tags":[{"tag":"","text":"Returns the index for the first occurance of the provided string. If the string\ncannot be located, -1 will be returned."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:item","text":"String to search for"},{"tag":"return","text":"Array index, or -1 on failure"},{"tag":"error","text":"Invalid Handle"}]},"metadata":{"created":{"hash":"daaf961c07fe7f8161ae7c7919a0d848c31c1d4a","count":1665,"time":1194651965},"last_updated":{"hash":"daaf961c07fe7f8161ae7c7919a0d848c31c1d4a","count":1665,"time":1194651965}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"const char[]","name":"item","decl":"const char[] item","default":null}]},"RemoveFromArray":{"name":"RemoveFromArray","refLine":405,"docStart":15091,"docEnd":15474,"docs":{"brief":"Removes an array index, shifting the entire array down from that position\non. For example, if item 8 of 10 is removed, the last 3 items will then be\n(6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.","tags":[{"tag":"","text":"Removes an array index, shifting the entire array down from that position\non. For example, if item 8 of 10 is removed, the last 3 items will then be\n(6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged."},{"tag":"param:array","text":"Array Handle."},{"tag":"param:index","text":"Index in the array to remove at."},{"tag":"error","text":"Invalid Handle or invalid index."}]},"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"array","decl":"Handle array","default":null},{"type":"int","name":"index","decl":"int index","default":null}]}},"methodmaps":{"ArrayList":{"name":"ArrayList","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"919a31df57d41a44e26301b57c068ae256596c2c","count":4985,"time":1415493093},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"parent":"Handle","methods":{"PushString":{"name":"PushString","refLine":104,"docStart":4037,"docEnd":4210,"docs":{"brief":"Pushes a string onto the end of an array, truncating it if it is too big.","tags":[{"tag":"","text":"Pushes a string onto the end of an array, truncating it if it is too big."},{"tag":"param:value","text":"String to push."},{"tag":"return","text":"Index of the new entry."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"value","decl":"const char[] value","default":null}]},"Resize":{"name":"Resize","refLine":88,"docStart":3393,"docEnd":3641,"docs":{"brief":"Resizes an array. If the size is smaller than the current size, the\narray is truncated. If the size is larger than the current size,\nthe data at the additional indexes will not be initialized.","tags":[{"tag":"","text":"Resizes an array. If the size is smaller than the current size, the\narray is truncated. If the size is larger than the current size,\nthe data at the additional indexes will not be initialized."},{"tag":"param:newsize","text":"New size."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"newsize","decl":"int newsize","default":null}]},"SwapAt":{"name":"SwapAt","refLine":195,"docStart":8102,"docEnd":8259,"docs":{"brief":"Swaps two items in the array.","tags":[{"tag":"","text":"Swaps two items in the array."},{"tag":"param:index1","text":"First index."},{"tag":"param:index2","text":"Second index."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"index1","decl":"int index1","default":null},{"type":"int","name":"index2","decl":"int index2","default":null}]},"GetArray":{"name":"GetArray","refLine":144,"docStart":5666,"docEnd":6061,"docs":{"brief":"Retrieves an array of cells from an array.","tags":[{"tag":"","text":"Retrieves an array of cells from an array."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:buffer","text":"Buffer to store the array in."},{"tag":"param:size","text":"If not set, assumes the buffer size is equal to the\nblocksize. Otherwise, the size passed is used."},{"tag":"return","text":"Number of cells copied."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"index","decl":"int index","default":null},{"type":"any[]","name":"buffer","decl":"any[] buffer","default":null},{"type":"int","name":"size","decl":"int size","default":"-1"}]},"Get":{"name":"Get","refLine":125,"docStart":4860,"docEnd":5228,"docs":{"brief":"Retrieves a cell value from an array.","tags":[{"tag":"","text":"Retrieves a cell value from an array."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:block","text":"Optionally specify which block to read from\n(useful if the blocksize > 0)."},{"tag":"param:asChar","text":"Optionally read as a byte instead of a cell."},{"tag":"return","text":"Value read."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"any","arguments":[{"type":"int","name":"index","decl":"int index","default":null},{"type":"int","name":"block","decl":"int block","default":"0"},{"type":"bool","name":"asChar","decl":"bool asChar","default":"false"}]},"Sort":{"name":"Sort","refLine":217,"docStart":9009,"docEnd":9208,"docs":{"brief":"Sort an ADT Array. Specify the type as Integer, Float, or String.","tags":[{"tag":"","text":"Sort an ADT Array. Specify the type as Integer, Float, or String."},{"tag":"param:order","text":"Sort order to use, same as other sorts."},{"tag":"param:type","text":"Data type stored in the ADT Array"}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"SortOrder","name":"order","decl":"SortOrder order","default":null},{"type":"SortType","name":"type","decl":"SortType type","default":null}]},"Set":{"name":"Set","refLine":154,"docStart":6134,"docEnd":6518,"docs":{"brief":"Sets a cell value in an array.","tags":[{"tag":"","text":"Sets a cell value in an array."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:value","text":"Cell value to set."},{"tag":"param:block","text":"Optionally specify which block to write to\n(useful if the blocksize > 0)."},{"tag":"param:asChar","text":"Optionally set as a byte instead of a cell."},{"tag":"error","text":"Invalid index, or invalid block."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"index","decl":"int index","default":null},{"type":"any","name":"value","decl":"any value","default":null},{"type":"int","name":"block","decl":"int block","default":"0"},{"type":"bool","name":"asChar","decl":"bool asChar","default":"false"}]},"SetArray":{"name":"SetArray","refLine":172,"docStart":6899,"docEnd":7272,"docs":{"brief":"Sets an array of cells in an array.","tags":[{"tag":"","text":"Sets an array of cells in an array."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:values","text":"Array to copy."},{"tag":"param:size","text":"If not set, assumes the buffer size is equal to the\nblocksize. Otherwise, the size passed is used."},{"tag":"return","text":"Number of cells copied."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"index","decl":"int index","default":null},{"type":"const any[]","name":"values","decl":"const any[] values","default":null},{"type":"int","name":"size","decl":"int size","default":"-1"}]},"SortCustom":{"name":"SortCustom","refLine":223,"docStart":9272,"docEnd":9484,"docs":{"brief":"Custom sorts an ADT Array. You must pass in a comparison function.","tags":[{"tag":"","text":"Custom sorts an ADT Array. You must pass in a comparison function."},{"tag":"param:sortfunc","text":"Sort comparison function to use"},{"tag":"param:hndl","text":"Optional Handle to pass through the comparison calls."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"SortFuncADTArray","name":"sortfunc","decl":"SortFuncADTArray sortfunc","default":null},{"type":"Handle","name":"hndl","decl":"Handle hndl","default":"INVALID_HANDLE"}]},"FindValue":{"name":"FindValue","refLine":211,"docStart":8609,"docEnd":8950,"docs":{"brief":"Returns the index for the first occurrence of the provided value. If the\nvalue cannot be located, -1 will be returned.","tags":[{"tag":"","text":"Returns the index for the first occurrence of the provided value. If the\nvalue cannot be located, -1 will be returned."},{"tag":"param:item","text":"Value to search for"},{"tag":"param:block","text":"Optionally which block to search in"},{"tag":"return","text":"Array index, or -1 on failure"},{"tag":"error","text":"Invalid block index"}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"any","name":"item","decl":"any item","default":null},{"type":"int","name":"block","decl":"int block","default":"0"}]},"Push":{"name":"Push","refLine":98,"docStart":3688,"docEnd":3995,"docs":{"brief":"Pushes a value onto the end of an array, adding a new index.\n\nThis may safely be used even if the array has a blocksize greater\nthan 1.","tags":[{"tag":"","text":"Pushes a value onto the end of an array, adding a new index.\n\nThis may safely be used even if the array has a blocksize greater\nthan 1."},{"tag":"param:value","text":"Value to push."},{"tag":"return","text":"Index of the new entry."},{"tag":"error","text":"Invalid Handle or out of memory."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"any","name":"value","decl":"any value","default":null}]},"Clone":{"name":"Clone","refLine":81,"docStart":3028,"docEnd":3353,"docs":{"brief":"Clones an array, returning a new handle with the same size and data.\nThis should NOT be confused with CloneHandle. This is a completely new\nhandle with the same data but no relation to the original. It should\nclosed when no longer needed.","tags":[{"tag":"","text":"Clones an array, returning a new handle with the same size and data.\nThis should NOT be confused with CloneHandle. This is a completely new\nhandle with the same data but no relation to the original. It should\nclosed when no longer needed."},{"tag":"return","text":"New handle to the cloned array object"}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"ArrayList","arguments":[]},"ArrayList":{"name":"ArrayList","refLine":70,"docStart":2063,"docEnd":2861,"docs":{"brief":"Creates a dynamic global cell array. While slower than a normal array,\nit can be used globally AND dynamically, which is otherwise impossible.\n\nThe contents of the array are uniform; i.e. storing a string at index X\nand then retrieving it as an integer is NOT the same as StringToInt()!\nThe \"blocksize\" determines how many cells each array slot has; it cannot\nbe changed after creation.","tags":[{"tag":"","text":"Creates a dynamic global cell array. While slower than a normal array,\nit can be used globally AND dynamically, which is otherwise impossible.\n\nThe contents of the array are uniform; i.e. storing a string at index X\nand then retrieving it as an integer is NOT the same as StringToInt()!\nThe \"blocksize\" determines how many cells each array slot has; it cannot\nbe changed after creation."},{"tag":"param:blocksize","text":"The number of cells each member of the array can\nhold. For example, 32 cells is equivalent to:\nnew Array[X][32]"},{"tag":"param:startsize","text":"Initial size of the array. Note that data will\nNOT be auto-initialized."},{"tag":"return","text":"New Handle to the array object."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"ArrayList","arguments":[{"type":"int","name":"blocksize","decl":"int blocksize","default":"1"},{"type":"int","name":"startsize","decl":"int startsize","default":"0"}]},"Clear":{"name":"Clear","refLine":73,"docStart":2927,"docEnd":2993,"docs":{"brief":"Clears an array of all entries. This is the same as Resize(0).","tags":[{"tag":"","text":"Clears an array of all entries. This is the same as Resize(0)."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[]},"PushArray":{"name":"PushArray","refLine":115,"docStart":4267,"docEnd":4791,"docs":{"brief":"Pushes an array of cells onto the end of an array. The cells\nare pushed as a block (i.e. the entire array sits at the index),\nrather than pushing each cell individually.","tags":[{"tag":"","text":"Pushes an array of cells onto the end of an array. The cells\nare pushed as a block (i.e. the entire array sits at the index),\nrather than pushing each cell individually."},{"tag":"param:values","text":"Block of values to copy."},{"tag":"param:size","text":"If not set, the number of elements copied from the array\nwill be equal to the blocksize. If set higher than the\nblocksize, the operation will be truncated."},{"tag":"return","text":"Index of the new entry."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"const any[]","name":"values","decl":"const any[] values","default":null},{"type":"int","name":"size","decl":"int size","default":"-1"}]},"SetString":{"name":"SetString","refLine":162,"docStart":6603,"docEnd":6832,"docs":{"brief":"Sets a string value in an array.","tags":[{"tag":"","text":"Sets a string value in an array."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:value","text":"String value to set."},{"tag":"return","text":"Number of characters copied."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"index","decl":"int index","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null}]},"ShiftUp":{"name":"ShiftUp","refLine":180,"docStart":7351,"docEnd":7669,"docs":{"brief":"Shifts an array up. All array contents after and including the given\nindex are shifted up by one, and the given index is then \"free.\"\nAfter shifting, the contents of the given index is undefined.","tags":[{"tag":"","text":"Shifts an array up. All array contents after and including the given\nindex are shifted up by one, and the given index is then \"free.\"\nAfter shifting, the contents of the given index is undefined."},{"tag":"param:index","text":"Index in the array to shift up from."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"index","decl":"int index","default":null}]},"FindString":{"name":"FindString","refLine":202,"docStart":8317,"docEnd":8553,"docs":{"brief":"Returns the index for the first occurrence of the provided string. If\nthe string cannot be located, -1 will be returned.","tags":[{"tag":"","text":"Returns the index for the first occurrence of the provided string. If\nthe string cannot be located, -1 will be returned."},{"tag":"param:item","text":"String to search for"},{"tag":"return","text":"Array index, or -1 on failure"}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"item","decl":"const char[] item","default":null}]},"Erase":{"name":"Erase","refLine":188,"docStart":7715,"docEnd":8058,"docs":{"brief":"Removes an array index, shifting the entire array down from that position\non. For example, if item 8 of 10 is removed, the last 3 items will then be\n(6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.","tags":[{"tag":"","text":"Removes an array index, shifting the entire array down from that position\non. For example, if item 8 of 10 is removed, the last 3 items will then be\n(6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged."},{"tag":"param:index","text":"Index in the array to remove at."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"index","decl":"int index","default":null}]},"GetString":{"name":"GetString","refLine":134,"docStart":5301,"docEnd":5589,"docs":{"brief":"Retrieves a string value from an array.","tags":[{"tag":"","text":"Retrieves a string value from an array."},{"tag":"param:index","text":"Index in the array."},{"tag":"param:buffer","text":"Buffer to copy to."},{"tag":"param:maxlength","text":"Maximum size of the buffer."},{"tag":"return","text":"Number of characters copied."},{"tag":"error","text":"Invalid index."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"index","decl":"int index","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]}},"properties":{"BlockSize":{"name":"BlockSize","refLine":231,"docStart":9670,"docEnd":9723,"docs":{"brief":"Retrieve the blocksize the array was created with.","tags":[{"tag":"","text":"Retrieve the blocksize the array was created with."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"type":"int","getter":true,"setter":false},"Length":{"name":"Length","refLine":226,"docStart":9578,"docEnd":9612,"docs":{"brief":"Retrieve the size of the array.","tags":[{"tag":"","text":"Retrieve the size of the array."}]},"metadata":{"created":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824},"last_updated":{"hash":"bf898dd45fefa128c06dc5c6fc7c34b63d1702ff","count":6842,"time":1640603824}},"type":"int","getter":true,"setter":false}}}},"enumstructs":{},"constants":{},"defines":{"_adt_array_included":{"name":"_adt_array_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908},"last_updated":{"hash":"8fa974961c93561608ad249ee437fc100962da8a","count":1157,"time":1185239908}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"sdktools_client":{"functions":{"InactivateClient":{"name":"InactivateClient","refLine":43,"docStart":1657,"docEnd":1768,"docs":{"brief":"Sets the client to an inactive state waiting for a new map","tags":[{"tag":"","text":"Sets the client to an inactive state waiting for a new map"},{"tag":"param:client","text":"The client index"}]},"metadata":{"created":{"hash":"838e8c7b35dadbe2544d9b1ea91d6eeb2ded7889","count":3340,"time":1309990262},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]},"ReconnectClient":{"name":"ReconnectClient","refLine":50,"docStart":1815,"docEnd":1918,"docs":{"brief":"Reconnect a client without dropping the netchannel","tags":[{"tag":"","text":"Reconnect a client without dropping the netchannel"},{"tag":"param:client","text":"The client index"}]},"metadata":{"created":{"hash":"838e8c7b35dadbe2544d9b1ea91d6eeb2ded7889","count":3340,"time":1309990262},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_client_included":{"name":"_sdktools_client_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"838e8c7b35dadbe2544d9b1ea91d6eeb2ded7889","count":3340,"time":1309990262},"last_updated":{"hash":"838e8c7b35dadbe2544d9b1ea91d6eeb2ded7889","count":3340,"time":1309990262}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"basecomm":{"functions":{"BaseComm_IsClientMuted":{"name":"BaseComm_IsClientMuted","refLine":52,"docStart":1842,"docEnd":1989,"docs":{"brief":"Returns whether or not a client is muted","tags":[{"tag":"","text":"Returns whether or not a client is muted"},{"tag":"param:client","text":"Client index."},{"tag":"return","text":"True if client is muted, false otherwise."}]},"metadata":{"created":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061},"last_updated":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]},"BaseComm_SetClientGag":{"name":"BaseComm_SetClientGag","refLine":61,"docStart":2038,"docEnd":2245,"docs":{"brief":"Sets a client's gag state","tags":[{"tag":"","text":"Sets a client's gag state"},{"tag":"param:client","text":"Client index."},{"tag":"param:gagState","text":"True to gag client, false to ungag."},{"tag":"return","text":"True if this caused a change in gag state, false otherwise."}]},"metadata":{"created":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061},"last_updated":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"bool","name":"gagState","decl":"bool gagState","default":null}]},"BaseComm_SetClientMute":{"name":"BaseComm_SetClientMute","refLine":70,"docStart":2308,"docEnd":2520,"docs":{"brief":"Sets a client's mute state","tags":[{"tag":"","text":"Sets a client's mute state"},{"tag":"param:client","text":"Client index."},{"tag":"param:muteState","text":"True to mute client, false to unmute."},{"tag":"return","text":"True if this caused a change in mute state, false otherwise."}]},"metadata":{"created":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061},"last_updated":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"bool","name":"muteState","decl":"bool muteState","default":null}]},"BaseComm_IsClientGagged":{"name":"BaseComm_IsClientGagged","refLine":44,"docStart":1643,"docEnd":1792,"docs":{"brief":"Returns whether or not a client is gagged","tags":[{"tag":"","text":"Returns whether or not a client is gagged"},{"tag":"param:client","text":"Client index."},{"tag":"return","text":"True if client is gagged, false otherwise."}]},"metadata":{"created":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061},"last_updated":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]},"__pl_basecomm_SetNTVOptional":{"name":"__pl_basecomm_SetNTVOptional","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061},"last_updated":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061}},"kind":"public","returnType":"void","arguments":[]},"BaseComm_OnClientGag":{"name":"BaseComm_OnClientGag","refLine":52,"docStart":1864,"docEnd":2018,"docs":{"brief":"Called when a client is gagged or ungagged","tags":[{"tag":"","text":"Called when a client is gagged or ungagged"},{"tag":"param:client","text":"Client index"},{"tag":"param:gagState","text":"True if client was gaged, false otherwise"}]},"metadata":{"created":{"hash":"34d2db6d78c67f1efbfe8557a32cdc42a101e59f","count":3648,"time":1346701511},"last_updated":{"hash":"adbdcd6b1d7592adec435122aa4c4b329a75ede7","count":5345,"time":1425665889}},"kind":"forward","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"bool","name":"gagState","decl":"bool gagState","default":null}]},"BaseComm_OnClientMute":{"name":"BaseComm_OnClientMute","refLine":44,"docStart":1643,"docEnd":1796,"docs":{"brief":"Called when a client is muted or unmuted","tags":[{"tag":"","text":"Called when a client is muted or unmuted"},{"tag":"param:client","text":"Client index"},{"tag":"param:muteState","text":"True if client was muted, false otherwise"}]},"metadata":{"created":{"hash":"34d2db6d78c67f1efbfe8557a32cdc42a101e59f","count":3648,"time":1346701511},"last_updated":{"hash":"adbdcd6b1d7592adec435122aa4c4b329a75ede7","count":5345,"time":1425665889}},"kind":"forward","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"bool","name":"muteState","decl":"bool muteState","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_basecomm_included":{"name":"_basecomm_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061},"last_updated":{"hash":"bb7f7eff516ad653e6902c2d160f8df1c0862f18","count":3341,"time":1310006061}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"eventsmsgs":{"functions":{"BfWriteAngle":{"name":"BfWriteAngle","refLine":159,"docStart":4509,"docEnd":4769,"docs":{"brief":"Writes a bit angle to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a bit angle to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:angle","text":"Angle to write."},{"tag":"param:numBits","text":"Optional number of bits to use."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float","name":"angle","decl":"float angle","default":null},{"type":"int","name":"numBits","decl":"int numBits","default":"8"}]},"BfWriteVecNormal":{"name":"BfWriteVecNormal","refLine":189,"docStart":5385,"docEnd":5600,"docs":{"brief":"Writes a 3D normal vector to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D normal vector to a writable bitbuffer (bf_write)."},{"tag":"param:bif","text":"bf_write handle to write to."},{"tag":"param:vec","text":"Vector to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"vec","decl":"float vec[3]","default":null}]},"BfWriteBool":{"name":"BfWriteBool","refLine":67,"docStart":1978,"docEnd":2210,"docs":{"brief":"Writes a single bit to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a single bit to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:bit","text":"Bit to write (true for 1, false for 0)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"bool","name":"bit","decl":"bool bit","default":null}]},"BfWriteChar":{"name":"BfWriteChar","refLine":87,"docStart":2532,"docEnd":2737,"docs":{"brief":"Writes a byte to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a byte to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:chr","text":"Character to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"chr","decl":"int chr","default":null}]},"StartMessage":{"name":"StartMessage","refLine":50,"docStart":1414,"docEnd":1788,"docs":{"brief":"Starts a usermessage (network message).","tags":[{"tag":"","text":"Starts a usermessage (network message)."},{"tag":"note","text":"Only one message can be active at a time."},{"tag":"param:msg","text":"Message index to start."},{"tag":"param:clients","text":"Array containing player indexes to broadcast to."},{"tag":"param:numClients","text":"Number of players in the array."},{"tag":"return","text":"A handle to a bf_write bit packing structure, or\nINVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"Handle","arguments":[{"type":"UserMsg","name":"msg","decl":"UserMsg msg","default":null},{"type":"int[]","name":"clients","decl":"int[] clients","default":null},{"type":"int","name":"numClients","decl":"int numClients","default":null},{"type":"int","name":"flags","decl":"int flags","default":null}]},"BfWriteVecCoord":{"name":"BfWriteVecCoord","refLine":179,"docStart":5094,"docEnd":5329,"docs":{"brief":"Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D vector of coordinates to a writable bitbuffer (bf_write)."},{"tag":"param:bif","text":"bf_write handle to write to."},{"tag":"param:coord","text":"Coordinate array to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"coord","decl":"float coord[3]","default":null}]},"StartMessageAll":{"name":"StartMessageAll","refLine":209,"docStart":5932,"docEnd":6202,"docs":{"brief":"Starts a usermessage (network message) that broadcasts to all clients.","tags":[{"tag":"","text":"Starts a usermessage (network message) that broadcasts to all clients."},{"tag":"param:msg","text":"Message index to start."},{"tag":"param:flags","text":"Optional flags to set."},{"tag":"return","text":"A handle to a bf_write bit packing structure, or\nINVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"stock","returnType":"Handle","arguments":[{"type":"UserMsg","name":"msg","decl":"UserMsg msg","default":null},{"type":"int","name":"flags","decl":"int flags","default":"0"}]},"BfWriteByte":{"name":"BfWriteByte","refLine":77,"docStart":2257,"docEnd":2490,"docs":{"brief":"Writes a byte to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a byte to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:byte","text":"Byte to write (value will be written as 8bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"byte","decl":"int byte","default":null}]},"BfWriteNum":{"name":"BfWriteNum","refLine":117,"docStart":3360,"docEnd":3606,"docs":{"brief":"Writes a normal integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a normal integer to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Integer to write (value will be written as 32bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"num","decl":"int num","default":null}]},"BfWriteFloat":{"name":"BfWriteFloat","refLine":127,"docStart":3646,"docEnd":3865,"docs":{"brief":"Writes a floating point number to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a floating point number to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Number to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float","name":"num","decl":"float num","default":null}]},"BfWriteCoord":{"name":"BfWriteCoord","refLine":169,"docStart":4830,"docEnd":5044,"docs":{"brief":"Writes a coordinate to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a coordinate to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:coord","text":"Coordinate to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float","name":"coord","decl":"float coord","default":null}]},"StartMessageOne":{"name":"StartMessageOne","refLine":233,"docStart":6504,"docEnd":6804,"docs":{"brief":"Starts a simpler usermessage (network message) for one client.","tags":[{"tag":"","text":"Starts a simpler usermessage (network message) for one client."},{"tag":"param:msg","text":"Message index to start."},{"tag":"param:client","text":"Client to send to."},{"tag":"param:flags","text":"Optional flags to set."},{"tag":"return","text":"A handle to a bf_write bit packing structure, or\nINVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"stock","returnType":"Handle","arguments":[{"type":"UserMsg","name":"msg","decl":"UserMsg msg","default":null},{"type":"int","name":"client","decl":"int client","default":null},{"type":"int","name":"flags","decl":"int flags","default":"0"}]},"BfWriteString":{"name":"BfWriteString","refLine":137,"docStart":3913,"docEnd":4124,"docs":{"brief":"Writes a string to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a string to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:string","text":"Text string to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"const char[]","name":"string","decl":"const char[] string","default":null}]},"EndMessage":{"name":"EndMessage","refLine":57,"docStart":1864,"docEnd":1952,"docs":{"brief":"Ends a previously started user message (network message).\n","tags":[{"tag":"","text":"Ends a previously started user message (network message).\n"}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[]},"BfWriteAngles":{"name":"BfWriteAngles","refLine":199,"docStart":5655,"docEnd":5877,"docs":{"brief":"Writes a 3D angle vector to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 3D angle vector to a writable bitbuffer (bf_write)."},{"tag":"param:bif","text":"bf_write handle to write to."},{"tag":"param:angles","text":"Angle vector to write."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"float[3]","name":"angles","decl":"float angles[3]","default":null}]},"BfWriteEntity":{"name":"BfWriteEntity","refLine":148,"docStart":4185,"docEnd":4466,"docs":{"brief":"Writes an entity to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes an entity to a writable bitbuffer (bf_write)."},{"tag":"note","text":"This is a wrapper around BfWriteShort()."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:ent","text":"Entity index to write."},{"tag":"error","text":"Invalid or incorrect Handle, or invalid entity."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"ent","decl":"int ent","default":null}]},"BfWriteShort":{"name":"BfWriteShort","refLine":97,"docStart":2778,"docEnd":3023,"docs":{"brief":"Writes a 16bit integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 16bit integer to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Integer to write (value will be written as 16bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"num","decl":"int num","default":null}]},"GetUserMessageId":{"name":"GetUserMessageId","refLine":38,"docStart":1155,"docEnd":1356,"docs":{"brief":"Returns the ID of a given message, or -1 on failure.","tags":[{"tag":"","text":"Returns the ID of a given message, or -1 on failure."},{"tag":"param:msg","text":"String containing message name (case sensitive)."},{"tag":"return","text":"A message index, or INVALID_MESSAGE_ID on failure."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"UserMsg","arguments":[{"type":"const char[]","name":"msg","decl":"const char[] msg","default":null}]},"BfWriteWord":{"name":"BfWriteWord","refLine":107,"docStart":3065,"docEnd":3319,"docs":{"brief":"Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).","tags":[{"tag":"","text":"Writes a 16bit unsigned integer to a writable bitbuffer (bf_write)."},{"tag":"param:bf","text":"bf_write handle to write to."},{"tag":"param:num","text":"Integer to write (value will be written as 16bit)."},{"tag":"error","text":"Invalid or incorrect Handle."}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"bf","decl":"Handle bf","default":null},{"type":"int","name":"num","decl":"int num","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"USERMSG_PASSTHRU_ALL":{"name":"USERMSG_PASSTHRU_ALL","refLine":27,"docStart":898,"docEnd":968,"docs":{"brief":"Message will pass through other SourceMM plugins AND SourceMod","tags":[{"tag":"","text":"Message will pass through other SourceMM plugins AND SourceMod"}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"value":"(1<<1)"},"_eventsmsgs_included":{"name":"_eventsmsgs_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"value":""},"USERMSG_PASSTHRU":{"name":"USERMSG_PASSTHRU","refLine":26,"docStart":803,"docEnd":859,"docs":{"brief":"Message will pass through other SourceMM plugins","tags":[{"tag":"","text":"Message will pass through other SourceMM plugins"}]},"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"value":"(1<<0)"}},"enums":{"UserMsg":{"name":"UserMsg","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"entries":{"INVALID_MESSAGE_ID":{"name":"INVALID_MESSAGE_ID","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358},"last_updated":{"hash":"7a8152aba371f18907933535dc9e5e7807dd071f","count":494,"time":1171475358}},"value":"-1"}}}},"typesets":{},"typedefs":{}},"testing":{"functions":{"AssertEq":{"name":"AssertEq","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2379c76b032097cfa266dbcd4ee9d1d2334e6563","count":4467,"time":1401955217},"last_updated":{"hash":"52c7ef0f6fd3dd90521b635cd455541cde8b48f8","count":5831,"time":1452126916}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"text","decl":"const char[] text","default":null},{"type":"int","name":"cell1","decl":"int cell1","default":null},{"type":"int","name":"cell2","decl":"int cell2","default":null}]},"SetTestContext":{"name":"SetTestContext","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2379c76b032097cfa266dbcd4ee9d1d2334e6563","count":4467,"time":1401955217},"last_updated":{"hash":"52c7ef0f6fd3dd90521b635cd455541cde8b48f8","count":5831,"time":1452126916}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"context","decl":"const char[] context","default":null}]},"AssertTrue":{"name":"AssertTrue","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2379c76b032097cfa266dbcd4ee9d1d2334e6563","count":4467,"time":1401955217},"last_updated":{"hash":"52c7ef0f6fd3dd90521b635cd455541cde8b48f8","count":5831,"time":1452126916}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"text","decl":"const char[] text","default":null},{"type":"bool","name":"value","decl":"bool value","default":null}]},"AssertStrEq":{"name":"AssertStrEq","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"69ae2249386fa3349e1e37f78c0587d5542cd97a","count":6586,"time":1594261119},"last_updated":{"hash":"69ae2249386fa3349e1e37f78c0587d5542cd97a","count":6586,"time":1594261119}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"text","decl":"const char[] text","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null},{"type":"const char[]","name":"expected","decl":"const char[] expected","default":null}]},"AssertFalse":{"name":"AssertFalse","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"2379c76b032097cfa266dbcd4ee9d1d2334e6563","count":4467,"time":1401955217},"last_updated":{"hash":"52c7ef0f6fd3dd90521b635cd455541cde8b48f8","count":5831,"time":1452126916}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"text","decl":"const char[] text","default":null},{"type":"bool","name":"value","decl":"bool value","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{},"enums":{},"typesets":{},"typedefs":{}},"profiler":{"functions":{"StartProfiling":{"name":"StartProfiling","refLine":56,"docStart":1877,"docEnd":1975,"docs":{"brief":"Starts profiling.","tags":[{"tag":"","text":"Starts profiling."},{"tag":"param:prof","text":"Profiling object."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"prof","decl":"Handle prof","default":null}]},"StopProfiling":{"name":"StopProfiling","refLine":64,"docStart":2021,"docEnd":2149,"docs":{"brief":"Stops profiling.","tags":[{"tag":"","text":"Stops profiling."},{"tag":"param:prof","text":"Profiling object."},{"tag":"error","text":"Invalid Handle or profiling was never started."}]},"metadata":{"created":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"prof","decl":"Handle prof","default":null}]},"CreateProfiler":{"name":"CreateProfiler","refLine":74,"docStart":2305,"docEnd":2457,"docs":{"brief":"Creates a new profile object. The Handle must be freed\nusing delete or CloseHandle().","tags":[{"tag":"","text":"Creates a new profile object. The Handle must be freed\nusing delete or CloseHandle()."},{"tag":"return","text":"Handle to the profiler object."}]},"metadata":{"created":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395},"last_updated":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329}},"kind":"native","returnType":"Profiler","arguments":[]},"GetProfilerTime":{"name":"GetProfilerTime","refLine":60,"docStart":1284,"docEnd":1522,"docs":{"brief":"Returns the amount of high-precision time in seconds\nthat passed during the profiler's last start/stop\ncycle.","tags":[{"tag":"","text":"Returns the amount of high-precision time in seconds\nthat passed during the profiler's last start/stop\ncycle."},{"tag":"param:prof","text":"Profiling object."},{"tag":"return","text":"Time elapsed in seconds."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395},"last_updated":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"prof","decl":"Handle prof","default":null}]},"LeaveProfilingEvent":{"name":"LeaveProfilingEvent","refLine":91,"docStart":2815,"docEnd":3025,"docs":{"brief":"Mark the end of the last profiling event. This must be called in the same\nstack frame as StartProfilingEvent(). Not doing so, or throwing errors,\nwill make the resulting profile very wrong.","tags":[{"tag":"","text":"Mark the end of the last profiling event. This must be called in the same\nstack frame as StartProfilingEvent(). Not doing so, or throwing errors,\nwill make the resulting profile very wrong."}]},"metadata":{"created":{"hash":"ec61d4d188389b2af59d51b09319b13468ddccec","count":4543,"time":1403597053},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[]},"EnterProfilingEvent":{"name":"EnterProfilingEvent","refLine":84,"docStart":2480,"docEnd":2738,"docs":{"brief":"Mark the start of a profiling event.","tags":[{"tag":"","text":"Mark the start of a profiling event."},{"tag":"param:group","text":"Budget group. This can be \"all\" for a default, or a short\ndescription like \"Timers\" or \"Events\"."},{"tag":"param:name","text":"A name to attribute to this profiling event."}]},"metadata":{"created":{"hash":"ec61d4d188389b2af59d51b09319b13468ddccec","count":4543,"time":1403597053},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"group","decl":"const char[] group","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":null}]},"IsProfilingActive":{"name":"IsProfilingActive","refLine":100,"docStart":3091,"docEnd":3239,"docs":{"brief":"Returns true if the global profiler is enabled; false otherwise. It is\nnot necessary to call this before Enter/LeaveProfilingEvent.","tags":[{"tag":"","text":"Returns true if the global profiler is enabled; false otherwise. It is\nnot necessary to call this before Enter/LeaveProfilingEvent."}]},"metadata":{"created":{"hash":"ec61d4d188389b2af59d51b09319b13468ddccec","count":4543,"time":1403597053},"last_updated":{"hash":"ec61d4d188389b2af59d51b09319b13468ddccec","count":4543,"time":1403597053}},"kind":"native","returnType":"bool","arguments":[]}},"methodmaps":{"Profiler":{"name":"Profiler","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329},"last_updated":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329}},"parent":"Handle","methods":{"Profiler":{"name":"Profiler","refLine":48,"docStart":1730,"docEnd":1866,"docs":{"brief":"Creates a new profile object. The Handle must be freed\nusing delete or CloseHandle().","tags":[{"tag":"","text":"Creates a new profile object. The Handle must be freed\nusing delete or CloseHandle()."},{"tag":"return","text":"A new Profiler Handle."}]},"metadata":{"created":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329},"last_updated":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329}},"kind":"native","returnType":"Profiler","arguments":[]},"Stop":{"name":"Stop","refLine":56,"docStart":1967,"docEnd":2044,"docs":{"brief":"Stops a cycle for profiling.","tags":[{"tag":"","text":"Stops a cycle for profiling."},{"tag":"error","text":"Profiler was never started."}]},"metadata":{"created":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329},"last_updated":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329}},"kind":"native","returnType":"void","arguments":[]},"Start":{"name":"Start","refLine":51,"docStart":1900,"docEnd":1932,"docs":{"brief":"Starts a cycle for profiling.","tags":[{"tag":"","text":"Starts a cycle for profiling."}]},"metadata":{"created":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329},"last_updated":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329}},"kind":"native","returnType":"void","arguments":[]}},"properties":{"Time":{"name":"Time","refLine":63,"docStart":2079,"docEnd":2246,"docs":{"brief":"Returns the amount of high-precision time in seconds\nthat passed during the profiler's last start/stop\ncycle.","tags":[{"tag":"","text":"Returns the amount of high-precision time in seconds\nthat passed during the profiler's last start/stop\ncycle."},{"tag":"return","text":"Time elapsed in seconds."}]},"metadata":{"created":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329},"last_updated":{"hash":"c09b32010f9648f541bb090ddc5917bba6aa9866","count":6301,"time":1531062329}},"type":"float","getter":true,"setter":false}}}},"enumstructs":{},"constants":{},"defines":{"_profiler_included":{"name":"_profiler_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395},"last_updated":{"hash":"63c5d0574723b2dad5340e1255f68daa40b8c769","count":915,"time":1181201395}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"dbi":{"functions":{"SQL_FetchFloat":{"name":"SQL_FetchFloat","refLine":352,"docStart":11505,"docEnd":12089,"docs":{"brief":"Fetches a float from a field in the current row of a result set.\nIf the result is NULL, a value of 0.0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull().","tags":[{"tag":"","text":"Fetches a float from a field in the current row of a result set.\nIf the result is NULL, a value of 0.0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull()."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"param:result","text":"Optional variable to store the status of the return value."},{"tag":"return","text":"A float value."},{"tag":"error","text":"Invalid query Handle or field index, invalid\ntype conversion requested from the database,\nor no current result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"float","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"int","name":"field","decl":"int field","default":null},{"type":"DBResult&","name":"result","decl":"DBResult& result","default":"DBVal_Error"}]},"SQL_Execute":{"name":"SQL_Execute","refLine":444,"docStart":15401,"docEnd":15639,"docs":{"brief":"Executes a prepared statement. All parameters must be bound beforehand.","tags":[{"tag":"","text":"Executes a prepared statement. All parameters must be bound beforehand."},{"tag":"param:statement","text":"A statement (prepared query) Handle."},{"tag":"return","text":"True on success, false on failure."},{"tag":"error","text":"Invalid statement Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"statement","decl":"Handle statement","default":null}]},"SQL_CheckConfig":{"name":"SQL_CheckConfig","refLine":514,"docStart":21125,"docEnd":21292,"docs":{"brief":"Returns if a named configuration is present in databases.cfg.","tags":[{"tag":"","text":"Returns if a named configuration is present in databases.cfg."},{"tag":"param:name","text":"Configuration name."},{"tag":"return","text":"True if it exists, false otherwise."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"name","decl":"const char[] name","default":null}]},"SQL_HasResultSet":{"name":"SQL_HasResultSet","refLine":257,"docStart":8351,"docEnd":8677,"docs":{"brief":"Returns whether or not a result set exists. This will\nreturn true even if 0 results were returned, but false\non queries like UPDATE, INSERT, or DELETE.","tags":[{"tag":"","text":"Returns whether or not a result set exists. This will\nreturn true even if 0 results were returned, but false\non queries like UPDATE, INSERT, or DELETE."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"return","text":"True if there is a result set, false otherwise."},{"tag":"error","text":"Invalid query Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_GetFieldCount":{"name":"SQL_GetFieldCount","refLine":275,"docStart":8982,"docEnd":9199,"docs":{"brief":"Retrieves the number of fields in the last result set.","tags":[{"tag":"","text":"Retrieves the number of fields in the last result set."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"return","text":"Number of fields in the current result set."},{"tag":"error","text":"Invalid query Handle."}]},"metadata":{"created":{"hash":"eb54cbb4f5cf42a4c54656812c5a90cb61c2ce2d","count":870,"time":1180671773},"last_updated":{"hash":"eb54cbb4f5cf42a4c54656812c5a90cb61c2ce2d","count":870,"time":1180671773}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_FetchInt":{"name":"SQL_FetchInt","refLine":367,"docStart":12174,"docEnd":12762,"docs":{"brief":"Fetches an integer from a field in the current row of a result set.\nIf the result is NULL, a value of 0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull().","tags":[{"tag":"","text":"Fetches an integer from a field in the current row of a result set.\nIf the result is NULL, a value of 0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull()."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"param:result","text":"Optional variable to store the status of the return value."},{"tag":"return","text":"An integer value."},{"tag":"error","text":"Invalid query Handle or field index, invalid\ntype conversion requested from the database,\nor no current result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"int","name":"field","decl":"int field","default":null},{"type":"DBResult&","name":"result","decl":"DBResult& result","default":"DBVal_Error"}]},"SQL_GetError":{"name":"SQL_GetError","refLine":176,"docStart":5234,"docEnd":5543,"docs":{"brief":"Returns the error reported by the last query.","tags":[{"tag":"","text":"Returns the error reported by the last query."},{"tag":"param:hndl","text":"A database OR statement Handle."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum length of the buffer."},{"tag":"return","text":"True if there was an error, false otherwise."},{"tag":"error","text":"Invalid database or statement Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null},{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_QuoteString":{"name":"SQL_QuoteString","refLine":638,"docStart":25534,"docEnd":25699,"docs":{"brief":"This is a backwards compatibility stock. You should use SQL_EscapeString()\ninstead, as this function will probably be deprecated in SourceMod 1.1.","tags":[{"tag":"","text":"This is a backwards compatibility stock. You should use SQL_EscapeString()\ninstead, as this function will probably be deprecated in SourceMod 1.1."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"stock","returnType":"bool","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"string","decl":"const char[] string","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"int&","name":"written","decl":"int& written","default":"0"}]},"SQL_EscapeString":{"name":"SQL_EscapeString","refLine":628,"docStart":24280,"docEnd":25375,"docs":{"brief":"Escapes a database string for literal insertion. This is not needed\nfor binding strings in prepared statements.\n\nGenerally, database strings are inserted into queries enclosed in\nsingle quotes ('). If user input has a single quote in it, the\nquote needs to be escaped. This function ensures that any unsafe\ncharacters are safely escaped according to the database engine and\nthe database's character set.\n\nNOTE: SourceMod only guarantees properly escaped strings when the query\nencloses the string in ''. While drivers tend to allow \" instead, the string\nmay be not be escaped (for example, on SQLite)!","tags":[{"tag":"","text":"Escapes a database string for literal insertion. This is not needed\nfor binding strings in prepared statements.\n\nGenerally, database strings are inserted into queries enclosed in\nsingle quotes ('). If user input has a single quote in it, the\nquote needs to be escaped. This function ensures that any unsafe\ncharacters are safely escaped according to the database engine and\nthe database's character set.\n\nNOTE: SourceMod only guarantees properly escaped strings when the query\nencloses the string in ''. While drivers tend to allow \" instead, the string\nmay be not be escaped (for example, on SQLite)!"},{"tag":"param:database","text":"A database Handle."},{"tag":"param:string","text":"String to quote."},{"tag":"param:buffer","text":"Buffer to store quoted string in."},{"tag":"param:maxlength","text":"Maximum length of the buffer."},{"tag":"param:written","text":"Optionally returns the number of bytes written."},{"tag":"return","text":"True on success, false if buffer is not big enough.\nThe buffer must be at least 2*strlen(string)+1."},{"tag":"error","text":"Invalid database or statement Handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"string","decl":"const char[] string","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"int&","name":"written","decl":"int& written","default":"0"}]},"SQL_ConnectEx":{"name":"SQL_ConnectEx","refLine":104,"docStart":2573,"docEnd":3280,"docs":{"brief":"Creates an SQL connection from specific parameters.","tags":[{"tag":"","text":"Creates an SQL connection from specific parameters."},{"tag":"param:driver","text":"Driver Handle, or INVALID_HANDLE for default."},{"tag":"param:host","text":"Host name."},{"tag":"param:user","text":"User name."},{"tag":"param:pass","text":"User password."},{"tag":"param:database","text":"Database name."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum length of the error buffer."},{"tag":"param:persistent","text":"True to re-use a previous persistent connection\nif possible, false otherwise."},{"tag":"param:port","text":"Optional port to specify."},{"tag":"param:maxTimeout","text":"Maximum timeout in seconds if applicable."},{"tag":"return","text":"A database connection Handle, or INVALID_HANDLE on failure."},{"tag":"error","text":"Invalid driver Handle other than INVALID_HANDLE."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"Handle","arguments":[{"type":"Handle","name":"driver","decl":"Handle driver","default":null},{"type":"const char[]","name":"host","decl":"const char[] host","default":null},{"type":"const char[]","name":"user","decl":"const char[] user","default":null},{"type":"const char[]","name":"pass","decl":"const char[] pass","default":null},{"type":"const char[]","name":"database","decl":"const char[] database","default":null},{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"bool","name":"persistent","decl":"bool persistent","default":"true"},{"type":"int","name":"port","decl":"int port","default":"0"},{"type":"int","name":"maxTimeout","decl":"int maxTimeout","default":"0"}]},"SQL_GetDriverIdent":{"name":"SQL_GetDriverIdent","refLine":549,"docStart":22074,"docEnd":22416,"docs":{"brief":"Retrieves a driver's identification string.\n\nExample: \"mysql\", \"sqlite\"","tags":[{"tag":"","text":"Retrieves a driver's identification string.\n\nExample: \"mysql\", \"sqlite\""},{"tag":"param:driver","text":"Driver Handle, or INVALID_HANDLE for the default driver."},{"tag":"param:ident","text":"Identification string buffer."},{"tag":"param:maxlength","text":"Maximum length of the buffer."},{"tag":"error","text":"Invalid Handle other than INVALID_HANDLE."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"driver","decl":"Handle driver","default":null},{"type":"char[]","name":"ident","decl":"char[] ident","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_GetAffectedRows":{"name":"SQL_GetAffectedRows","refLine":156,"docStart":4714,"docEnd":4947,"docs":{"brief":"Returns the number of affected rows from the last query.","tags":[{"tag":"","text":"Returns the number of affected rows from the last query."},{"tag":"param:hndl","text":"A database OR statement Handle."},{"tag":"return","text":"Number of rows affected by the last query."},{"tag":"error","text":"Invalid database or statement Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null}]},"SQL_GetInsertId":{"name":"SQL_GetInsertId","refLine":165,"docStart":4993,"docEnd":5192,"docs":{"brief":"Returns the last query's insertion id.","tags":[{"tag":"","text":"Returns the last query's insertion id."},{"tag":"param:hndl","text":"A database OR statement Handle."},{"tag":"return","text":"Last query's insertion id."},{"tag":"error","text":"Invalid database or statement Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null}]},"SQL_GetRowCount":{"name":"SQL_GetRowCount","refLine":265,"docStart":8726,"docEnd":8882,"docs":{"brief":"Retrieves the number of rows in the last result set.","tags":[{"tag":"","text":"Retrieves the number of rows in the last result set."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"error","text":"Invalid query Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_FetchRow":{"name":"SQL_FetchRow","refLine":302,"docStart":9754,"docEnd":10157,"docs":{"brief":"Fetches a row from the current result set. This must be\nsuccessfully called before any results are fetched.\n\nIf this function fails, SQL_MoreResults() can be used to\ntell if there was an error or the result set is finished.","tags":[{"tag":"","text":"Fetches a row from the current result set. This must be\nsuccessfully called before any results are fetched.\n\nIf this function fails, SQL_MoreResults() can be used to\ntell if there was an error or the result set is finished."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"return","text":"True if a row was fetched, false otherwise."},{"tag":"error","text":"Invalid query Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_FieldNumToName":{"name":"SQL_FieldNumToName","refLine":747,"docStart":29268,"docEnd":29606,"docs":{"brief":"Retrieves the name of a field by index.","tags":[{"tag":"","text":"Retrieves the name of a field by index."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:field","text":"Field number (starting from 0)."},{"tag":"param:name","text":"Name buffer."},{"tag":"param:maxlength","text":"Maximum length of the name buffer."},{"tag":"error","text":"Invalid query Handle, invalid field index, or\nno current result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"int","name":"field","decl":"int field","default":null},{"type":"char[]","name":"name","decl":"char[] name","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_BindParamFloat":{"name":"SQL_BindParamFloat","refLine":886,"docStart":34713,"docEnd":35040,"docs":{"brief":"Binds a parameter in a prepared statement to a given float value.","tags":[{"tag":"","text":"Binds a parameter in a prepared statement to a given float value."},{"tag":"param:statement","text":"A statement (prepared query) Handle."},{"tag":"param:param","text":"The parameter index (starting from 0)."},{"tag":"param:value","text":"The float number to bind."},{"tag":"error","text":"Invalid statement Handle or parameter index, or\nSQL error."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"statement","decl":"Handle statement","default":null},{"type":"int","name":"param","decl":"int param","default":null},{"type":"float","name":"value","decl":"float value","default":null}]},"SQL_SetCharset":{"name":"SQL_SetCharset","refLine":574,"docStart":22911,"docEnd":23266,"docs":{"brief":"Sets the character set of the current connection.\nLike SET NAMES .. in mysql, but stays after connection problems.\n\nExample: \"utf8\", \"latin1\"","tags":[{"tag":"","text":"Sets the character set of the current connection.\nLike SET NAMES .. in mysql, but stays after connection problems.\n\nExample: \"utf8\", \"latin1\""},{"tag":"param:database","text":"Database Handle."},{"tag":"param:characterset","text":"The character set string to change to."},{"tag":"return","text":"True, if character set was changed, false otherwise."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"charset","decl":"const char[] charset","default":null}]},"SQL_FastQuery":{"name":"SQL_FastQuery","refLine":659,"docStart":25926,"docEnd":26378,"docs":{"brief":"Executes a query and ignores the result set.","tags":[{"tag":"","text":"Executes a query and ignores the result set."},{"tag":"param:database","text":"A database Handle."},{"tag":"param:query","text":"Query string."},{"tag":"param:len","text":"Optional parameter to specify the query length, in\nbytes. This can be used to send binary queries that\nhave a premature terminator."},{"tag":"return","text":"True if query succeeded, false otherwise. Use\nSQL_GetError to find the last error."},{"tag":"error","text":"Invalid database Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"int","name":"len","decl":"int len","default":"-1"}]},"SQL_FetchMoreResults":{"name":"SQL_FetchMoreResults","refLine":246,"docStart":7846,"docEnd":8298,"docs":{"brief":"Advances to the next set of results.\n\nIn some SQL implementations, multiple result sets can exist on one query.\nThis is possible in MySQL with simple queries when executing a CALL\nquery. If this is the case, all result sets must be processed before\nanother query is made.","tags":[{"tag":"","text":"Advances to the next set of results.\n\nIn some SQL implementations, multiple result sets can exist on one query.\nThis is possible in MySQL with simple queries when executing a CALL\nquery. If this is the case, all result sets must be processed before\nanother query is made."},{"tag":"param:query","text":"A query Handle."},{"tag":"return","text":"True if there was another result set, false otherwise."},{"tag":"error","text":"Invalid query Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_Connect":{"name":"SQL_Connect","refLine":418,"docStart":17382,"docEnd":17769,"docs":{"brief":"Creates an SQL connection from a named configuration.","tags":[{"tag":"","text":"Creates an SQL connection from a named configuration."},{"tag":"param:confname","text":"Named configuration."},{"tag":"param:persistent","text":"True to re-use a previous persistent connection if\npossible, false otherwise."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum length of the error buffer."},{"tag":"return","text":"A database connection Handle, or INVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"Database","arguments":[{"type":"const char[]","name":"confname","decl":"const char[] confname","default":null},{"type":"bool","name":"persistent","decl":"bool persistent","default":null},{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_ExecuteTransaction":{"name":"SQL_ExecuteTransaction","refLine":1037,"docStart":40675,"docEnd":41263,"docs":{"brief":"Sends a transaction to the database thread. The transaction handle is\nautomatically closed. When the transaction completes, the optional\ncallback is invoked.","tags":[{"tag":"","text":"Sends a transaction to the database thread. The transaction handle is\nautomatically closed. When the transaction completes, the optional\ncallback is invoked."},{"tag":"param:db","text":"A database handle."},{"tag":"param:txn","text":"A transaction handle."},{"tag":"param:onSuccess","text":"An optional callback to receive a successful transaction."},{"tag":"param:onError","text":"An optional callback to receive an error message."},{"tag":"param:data","text":"An optional value to pass to callbacks."},{"tag":"param:prio","text":"Priority queue to use."},{"tag":"error","text":"An invalid handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"db","decl":"Handle db","default":null},{"type":"Transaction","name":"txn","decl":"Transaction txn","default":null},{"type":"SQLTxnSuccess","name":"onSuccess","decl":"SQLTxnSuccess onSuccess","default":"INVALID_FUNCTION"},{"type":"SQLTxnFailure","name":"onError","decl":"SQLTxnFailure onError","default":"INVALID_FUNCTION"},{"type":"any","name":"data","decl":"any data","default":"0"},{"type":"DBPriority","name":"priority","decl":"DBPriority priority","default":"DBPrio_Normal"}]},"SQL_ReadDriver":{"name":"SQL_ReadDriver","refLine":560,"docStart":23196,"docEnd":23464,"docs":{"brief":"Reads the driver of an opened database.","tags":[{"tag":"","text":"Reads the driver of an opened database."},{"tag":"param:database","text":"Database Handle."},{"tag":"param:ident","text":"Option buffer to store the identification string."},{"tag":"param:ident_length","text":"Maximum length of the buffer."},{"tag":"return","text":"Driver Handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"c6f751bb67ddc7e10dffc30b88745d9706b34177","count":6460,"time":1572512030}},"kind":"native","returnType":"DBDriver","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"char[]","name":"ident","decl":"char[] ident","default":"\"\""},{"type":"int","name":"ident_length","decl":"int ident_length","default":"0"}]},"SQL_Query":{"name":"SQL_Query","refLine":674,"docStart":26459,"docEnd":26971,"docs":{"brief":"Executes a simple query and returns a new query Handle for\nreceiving the results.","tags":[{"tag":"","text":"Executes a simple query and returns a new query Handle for\nreceiving the results."},{"tag":"param:database","text":"A database Handle."},{"tag":"param:query","text":"Query string."},{"tag":"param:len","text":"Optional parameter to specify the query length, in\nbytes. This can be used to send binary queries that\nhave a premature terminator."},{"tag":"return","text":"A new Query Handle on success, INVALID_HANDLE\notherwise. The Handle must be freed with CloseHandle()."},{"tag":"error","text":"Invalid database Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"DBResultSet","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"int","name":"len","decl":"int len","default":"-1"}]},"SQL_BindParamString":{"name":"SQL_BindParamString","refLine":901,"docStart":35119,"docEnd":35665,"docs":{"brief":"Binds a parameter in a prepared statement to a given string value.","tags":[{"tag":"","text":"Binds a parameter in a prepared statement to a given string value."},{"tag":"param:statement","text":"A statement (prepared query) Handle."},{"tag":"param:param","text":"The parameter index (starting from 0)."},{"tag":"param:value","text":"The string to bind."},{"tag":"param:copy","text":"Whether or not SourceMod should copy the value\nlocally if necessary. If the string contents\nwon't change before calling SQL_Execute(), this\ncan be set to false for optimization."},{"tag":"error","text":"Invalid statement Handle or parameter index, or\nSQL error."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"statement","decl":"Handle statement","default":null},{"type":"int","name":"param","decl":"int param","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null},{"type":"bool","name":"copy","decl":"bool copy","default":null}]},"SQL_ConnectCustom":{"name":"SQL_ConnectCustom","refLine":456,"docStart":18421,"docEnd":19465,"docs":{"brief":"Connects to a database using key value pairs containing the database info.\nThe key/value pairs should match what would be in databases.cfg.\n\nI.e. \"driver\" should be \"default\" or a driver name (or ommitted for\nthe default). For SQLite, only the \"database\" parameter is needed in addition.\nFor drivers which require external connections, more of the parameters may be\nneeded.\n\nIn general it is discouraged to use this function. Connections should go through\ndatabases.cfg for greatest flexibility on behalf of users.","tags":[{"tag":"","text":"Connects to a database using key value pairs containing the database info.\nThe key/value pairs should match what would be in databases.cfg.\n\nI.e. \"driver\" should be \"default\" or a driver name (or ommitted for\nthe default). For SQLite, only the \"database\" parameter is needed in addition.\nFor drivers which require external connections, more of the parameters may be\nneeded.\n\nIn general it is discouraged to use this function. Connections should go through\ndatabases.cfg for greatest flexibility on behalf of users."},{"tag":"param:keyvalues","text":"Key/value pairs from a KeyValues handle, describing the connection."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum length of the error buffer."},{"tag":"param:persistent","text":"True to re-use a previous persistent connection if\npossible, false otherwise."},{"tag":"return","text":"A database connection Handle, or INVALID_HANDLE on failure.\nOn failure the error buffer will be filled with a message."},{"tag":"error","text":"Invalid KeyValues handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"Database","arguments":[{"type":"Handle","name":"keyvalues","decl":"Handle keyvalues","default":null},{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"bool","name":"persistent","decl":"bool persistent","default":null}]},"SQL_GetDriver":{"name":"SQL_GetDriver","refLine":550,"docStart":22764,"docEnd":23138,"docs":{"brief":"Returns a driver Handle from a name string.\n\nIf the driver is not found, SourceMod will attempt\nto load an extension named dbi.<name>.ext.[dll|so].","tags":[{"tag":"","text":"Returns a driver Handle from a name string.\n\nIf the driver is not found, SourceMod will attempt\nto load an extension named dbi.<name>.ext.[dll|so]."},{"tag":"param:name","text":"Driver identification string, or an empty\nstring to return the default driver."},{"tag":"return","text":"Driver Handle, or INVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"c6f751bb67ddc7e10dffc30b88745d9706b34177","count":6460,"time":1572512030}},"kind":"native","returnType":"DBDriver","arguments":[{"type":"const char[]","name":"name","decl":"const char[] name","default":"\"\""}]},"SQL_FieldNameToNum":{"name":"SQL_FieldNameToNum","refLine":289,"docStart":9356,"docEnd":9674,"docs":{"brief":"Retrieves a field index by name.","tags":[{"tag":"","text":"Retrieves a field index by name."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:name","text":"Name of the field (case sensitive)."},{"tag":"param:field","text":"Variable to store field index in."},{"tag":"return","text":"True if found, false if not found."},{"tag":"error","text":"Invalid query Handle or no current result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":null},{"type":"int&","name":"field","decl":"int& field","default":null}]},"SQL_GetDriverProduct":{"name":"SQL_GetDriverProduct","refLine":562,"docStart":22497,"docEnd":22826,"docs":{"brief":"Retrieves a driver's product string.\n\nExample: \"MySQL\", \"SQLite\"","tags":[{"tag":"","text":"Retrieves a driver's product string.\n\nExample: \"MySQL\", \"SQLite\""},{"tag":"param:driver","text":"Driver Handle, or INVALID_HANDLE for the default driver."},{"tag":"param:product","text":"Product string buffer."},{"tag":"param:maxlength","text":"Maximum length of the buffer."},{"tag":"error","text":"Invalid Handle other than INVALID_HANDLE."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"driver","decl":"Handle driver","default":null},{"type":"char[]","name":"product","decl":"char[] product","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_PrepareQuery":{"name":"SQL_PrepareQuery","refLine":692,"docStart":27055,"docEnd":27754,"docs":{"brief":"Creates a new prepared statement query. Prepared statements can\nbe executed any number of times. They can also have placeholder\nparameters, similar to variables, which can be bound safely and\nsecurely (for example, you do not need to quote bound strings).\n\nStatement handles will work in any function that accepts a Query handle.","tags":[{"tag":"","text":"Creates a new prepared statement query. Prepared statements can\nbe executed any number of times. They can also have placeholder\nparameters, similar to variables, which can be bound safely and\nsecurely (for example, you do not need to quote bound strings).\n\nStatement handles will work in any function that accepts a Query handle."},{"tag":"param:database","text":"A database Handle."},{"tag":"param:query","text":"Query string."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum size of the error buffer."},{"tag":"return","text":"A new statement Handle on success, INVALID_HANDLE\notherwise. The Handle must be freed with CloseHandle()."},{"tag":"error","text":"Invalid database Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"DBStatement","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_FetchString":{"name":"SQL_FetchString","refLine":337,"docStart":10710,"docEnd":11397,"docs":{"brief":"Fetches a string from a field in the current row of a result set.\nIf the result is NULL, an empty string will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull().","tags":[{"tag":"","text":"Fetches a string from a field in the current row of a result set.\nIf the result is NULL, an empty string will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull()."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"param:buffer","text":"String buffer."},{"tag":"param:maxlength","text":"Maximum size of the string buffer."},{"tag":"param:result","text":"Optional variable to store the status of the return value."},{"tag":"return","text":"Number of bytes written."},{"tag":"error","text":"Invalid query Handle or field index, invalid\ntype conversion requested from the database,\nor no current result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"int","name":"field","decl":"int field","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"DBResult&","name":"result","decl":"DBResult& result","default":"DBVal_Error"}]},"SQL_BindParamInt":{"name":"SQL_BindParamInt","refLine":875,"docStart":34202,"docEnd":34619,"docs":{"brief":"Binds a parameter in a prepared statement to a given integer value.","tags":[{"tag":"","text":"Binds a parameter in a prepared statement to a given integer value."},{"tag":"param:statement","text":"A statement (prepared query) Handle."},{"tag":"param:param","text":"The parameter index (starting from 0)."},{"tag":"param:number","text":"The number to bind."},{"tag":"param:signed","text":"True to bind the number as signed, false to\nbind it as unsigned."},{"tag":"error","text":"Invalid statement Handle or parameter index, or\nSQL error."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"statement","decl":"Handle statement","default":null},{"type":"int","name":"param","decl":"int param","default":null},{"type":"int","name":"number","decl":"int number","default":null},{"type":"bool","name":"signed","decl":"bool signed","default":"true"}]},"SQL_Rewind":{"name":"SQL_Rewind","refLine":320,"docStart":10443,"docEnd":10667,"docs":{"brief":"Rewinds a result set back to the first result.","tags":[{"tag":"","text":"Rewinds a result set back to the first result."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"return","text":"True on success, false otherwise."},{"tag":"error","text":"Invalid query Handle or no current result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_IsSameConnection":{"name":"SQL_IsSameConnection","refLine":959,"docStart":37539,"docEnd":37846,"docs":{"brief":"Tells whether two database handles both point to the same database\nconnection.","tags":[{"tag":"","text":"Tells whether two database handles both point to the same database\nconnection."},{"tag":"param:hndl1","text":"First database Handle."},{"tag":"param:hndl2","text":"Second database Handle."},{"tag":"return","text":"True if the Handles point to the same\nconnection, false otherwise."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"hndl1","decl":"Handle hndl1","default":null},{"type":"Handle","name":"hndl2","decl":"Handle hndl2","default":null}]},"SQL_AddQuery":{"name":"SQL_AddQuery","refLine":1014,"docStart":39737,"docEnd":40077,"docs":{"brief":"Adds a query to a transaction object.","tags":[{"tag":"","text":"Adds a query to a transaction object."},{"tag":"param:txn","text":"A transaction handle."},{"tag":"param:query","text":"Query string."},{"tag":"param:data","text":"Extra data value to pass to the final callback."},{"tag":"return","text":"The index of the query in the transaction's query list."},{"tag":"error","text":"Invalid transaction handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"int","arguments":[{"type":"Transaction","name":"txn","decl":"Transaction txn","default":null},{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"SQL_IsFieldNull":{"name":"SQL_IsFieldNull","refLine":379,"docStart":12839,"docEnd":13231,"docs":{"brief":"Returns whether a field's data in the current row of a result set is\nNULL or not. NULL is an SQL type which means \"no data.\"","tags":[{"tag":"","text":"Returns whether a field's data in the current row of a result set is\nNULL or not. NULL is an SQL type which means \"no data.\""},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"return","text":"True if data is NULL, false otherwise."},{"tag":"error","text":"Invalid query Handle or field index, or no\ncurrent result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"int","name":"field","decl":"int field","default":null}]},"SQL_UnlockDatabase":{"name":"SQL_UnlockDatabase","refLine":937,"docStart":36764,"docEnd":36916,"docs":{"brief":"Unlocks a database so threading operations may continue.","tags":[{"tag":"","text":"Unlocks a database so threading operations may continue."},{"tag":"param:database","text":"A database Handle."},{"tag":"error","text":"Invalid database Handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null}]},"SQL_DefConnect":{"name":"SQL_DefConnect","refLine":430,"docStart":17872,"docEnd":18266,"docs":{"brief":"Creates a default SQL connection.","tags":[{"tag":"","text":"Creates a default SQL connection."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum length of the error buffer."},{"tag":"param:persistent","text":"True to re-use a previous persistent connection\nif possible, false otherwise."},{"tag":"return","text":"A database connection Handle, or INVALID_HANDLE on failure.\nOn failure the error buffer will be filled with a message."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"stock","returnType":"Database","arguments":[{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"bool","name":"persistent","decl":"bool persistent","default":"true"}]},"SQL_CreateTransaction":{"name":"SQL_CreateTransaction","refLine":1003,"docStart":39467,"docEnd":39688,"docs":{"brief":"Creates a new transaction object. A transaction object is a list of queries\nthat can be sent to the database thread and executed as a single transaction.","tags":[{"tag":"","text":"Creates a new transaction object. A transaction object is a list of queries\nthat can be sent to the database thread and executed as a single transaction."},{"tag":"return","text":"A transaction handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"Transaction","arguments":[]},"SQL_TQuery":{"name":"SQL_TQuery","refLine":995,"docStart":38564,"docEnd":39335,"docs":{"brief":"Executes a simple query via a thread. The query Handle is passed through\nthe callback.\n\nThe database Handle returned through the callback is always a new Handle,\nand if necessary, SQL_IsSameConnection() should be used to test against\nother conenctions.\n\nThe query Handle returned through the callback is temporary and destroyed\nat the end of the callback. If you need to hold onto it, use CloneHandle().","tags":[{"tag":"","text":"Executes a simple query via a thread. The query Handle is passed through\nthe callback.\n\nThe database Handle returned through the callback is always a new Handle,\nand if necessary, SQL_IsSameConnection() should be used to test against\nother conenctions.\n\nThe query Handle returned through the callback is temporary and destroyed\nat the end of the callback. If you need to hold onto it, use CloneHandle()."},{"tag":"param:database","text":"A database Handle."},{"tag":"param:callback","text":"Callback; database is in \"owner\" and the query Handle\nis passed in \"hndl\"."},{"tag":"param:query","text":"Query string."},{"tag":"param:data","text":"Extra data value to pass to the callback."},{"tag":"param:prio","text":"Priority queue to use."},{"tag":"error","text":"Invalid database Handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"SQLTCallback","name":"callback","decl":"SQLTCallback callback","default":null},{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"any","name":"data","decl":"any data","default":"0"},{"type":"DBPriority","name":"prio","decl":"DBPriority prio","default":"DBPrio_Normal"}]},"SQLite_UseDatabase":{"name":"SQLite_UseDatabase","refLine":476,"docStart":19604,"docEnd":20352,"docs":{"brief":"Grabs a handle to an SQLite database, creating one if it does not exist.\n\nUnless there are extenuating circumstances, you should consider using \"sourcemod-local\" as the\ndatabase name. This provides some unification between plugins on behalf of users.\n\nAs a precaution, you should always create some sort of unique prefix to your table names so\nthere are no conflicts, and you should never drop or modify tables that you do not own.","tags":[{"tag":"","text":"Grabs a handle to an SQLite database, creating one if it does not exist.\n\nUnless there are extenuating circumstances, you should consider using \"sourcemod-local\" as the\ndatabase name. This provides some unification between plugins on behalf of users.\n\nAs a precaution, you should always create some sort of unique prefix to your table names so\nthere are no conflicts, and you should never drop or modify tables that you do not own."},{"tag":"param:database","text":"Database name."},{"tag":"param:error","text":"Error buffer."},{"tag":"param:maxlength","text":"Maximum length of the error buffer."},{"tag":"return","text":"A database connection Handle, or INVALID_HANDLE on failure.\nOn failure the error buffer will be filled with a message."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"stock","returnType":"Database","arguments":[{"type":"const char[]","name":"database","decl":"const char[] database","default":null},{"type":"char[]","name":"error","decl":"char[] error","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SQL_FetchSize":{"name":"SQL_FetchSize","refLine":393,"docStart":13286,"docEnd":13779,"docs":{"brief":"Returns the length of a field's data in the current row of a result\nset. This only needs to be called for strings to determine how many\nbytes to use. Note that the return value does not include the null\nterminator.","tags":[{"tag":"","text":"Returns the length of a field's data in the current row of a result\nset. This only needs to be called for strings to determine how many\nbytes to use. Note that the return value does not include the null\nterminator."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"return","text":"Number of bytes for the field's data size."},{"tag":"error","text":"Invalid query Handle or field index or no\ncurrent result set."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null},{"type":"int","name":"field","decl":"int field","default":null}]},"SQL_LockDatabase":{"name":"SQL_LockDatabase","refLine":929,"docStart":36049,"docEnd":36712,"docs":{"brief":"Locks a database so threading operations will not interrupt.\n\nIf you are using a database Handle for both threading and non-threading,\nthis MUST be called before doing any set of non-threading DB operations.\nOtherwise you risk corrupting the database driver's memory or network\nconnection.\n\nLeaving a lock on a database and then executing a threaded query results\nin a dead lock! Make sure to call SQL_UnlockDatabase()!\n\nIf the lock cannot be acquired, the main thread will pause until the\nthreaded operation has concluded.","tags":[{"tag":"","text":"Locks a database so threading operations will not interrupt.\n\nIf you are using a database Handle for both threading and non-threading,\nthis MUST be called before doing any set of non-threading DB operations.\nOtherwise you risk corrupting the database driver's memory or network\nconnection.\n\nLeaving a lock on a database and then executing a threaded query results\nin a dead lock! Make sure to call SQL_UnlockDatabase()!\n\nIf the lock cannot be acquired, the main thread will pause until the\nthreaded operation has concluded."},{"tag":"param:database","text":"A database Handle."},{"tag":"error","text":"Invalid database Handle."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null}]},"SQL_MoreRows":{"name":"SQL_MoreRows","refLine":311,"docStart":10202,"docEnd":10398,"docs":{"brief":"Returns if there are more rows.","tags":[{"tag":"","text":"Returns if there are more rows."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"return","text":"True if there are more rows, false otherwise."},{"tag":"error","text":"Invalid query Handle."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"query","decl":"Handle query","default":null}]},"SQL_FormatQuery":{"name":"SQL_FormatQuery","refLine":665,"docStart":26578,"docEnd":27042,"docs":{"brief":"Formats a string according to the SourceMod format rules (see documentation).\nAll format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used.","tags":[{"tag":"","text":"Formats a string according to the SourceMod format rules (see documentation).\nAll format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used."},{"tag":"param:database","text":"A database Handle."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"return","text":"Number of cells written."}]},"metadata":{"created":{"hash":"700ec92a9a9cc10b52a426808641eb7aff270044","count":5856,"time":1455548716},"last_updated":{"hash":"700ec92a9a9cc10b52a426808641eb7aff270044","count":5856,"time":1455548716}},"kind":"native","returnType":"int","arguments":[{"type":"Handle","name":"database","decl":"Handle database","default":null},{"type":"const char[]","name":"buffer","decl":"const char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"SQL_TConnect":{"name":"SQL_TConnect","refLine":974,"docStart":37913,"docEnd":38469,"docs":{"brief":"Connects to a database via a thread. This can be used instead of\nSQL_Connect() if you wish for non-blocking functionality.\n\nIt is not necessary to use this to use threaded queries. However, if you\ndon't (or you mix threaded/non-threaded queries), you should see\nSQL_LockDatabase().","tags":[{"tag":"","text":"Connects to a database via a thread. This can be used instead of\nSQL_Connect() if you wish for non-blocking functionality.\n\nIt is not necessary to use this to use threaded queries. However, if you\ndon't (or you mix threaded/non-threaded queries), you should see\nSQL_LockDatabase()."},{"tag":"param:callback","text":"Callback; new Handle will be in hndl, owner is the driver.\nIf no driver was found, the owner is INVALID_HANDLE."},{"tag":"param:name","text":"Database name."},{"tag":"param:data","text":"Extra data value to pass to the callback."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"SQLTCallback","name":"callback","decl":"SQLTCallback callback","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":"\"default\""},{"type":"any","name":"data","decl":"any data","default":"0"}]}},"methodmaps":{"DBDriver":{"name":"DBDriver","refLine":72,"docStart":2360,"docEnd":2470,"docs":{"brief":"A Driver represents a database backend, currently MySQL or SQLite.\n\nDriver handles cannot be closed.","tags":[{"tag":"","text":"A Driver represents a database backend, currently MySQL or SQLite.\n\nDriver handles cannot be closed."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"parent":"Handle","methods":{"GetIdentifier":{"name":"GetIdentifier","refLine":91,"docStart":2877,"docEnd":3077,"docs":{"brief":"Retrieves a driver's identification string.\n\nExample: \"mysql\", \"sqlite\"","tags":[{"tag":"","text":"Retrieves a driver's identification string.\n\nExample: \"mysql\", \"sqlite\""},{"tag":"param:ident","text":"Identification string buffer."},{"tag":"param:maxlength","text":"Maximum length of the buffer."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"char[]","name":"ident","decl":"char[] ident","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"Find":{"name":"Find","refLine":83,"docStart":2505,"docEnd":2810,"docs":{"brief":"Finds the driver associated with a name.\n\nSupported driver strings:\nmysql\nsqlite","tags":[{"tag":"","text":"Finds the driver associated with a name.\n\nSupported driver strings:\nmysql\nsqlite"},{"tag":"param:name","text":"Driver identification string, or an empty string\nto return the default driver."},{"tag":"return","text":"Driver handle, or null on failure."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"DBDriver","arguments":[{"type":"const char[]","name":"name","decl":"const char[] name","default":"\"\""}]},"GetProduct":{"name":"GetProduct","refLine":99,"docStart":3147,"docEnd":3333,"docs":{"brief":"Retrieves a driver's product string.\n\nExample: \"MySQL\", \"SQLite\"","tags":[{"tag":"","text":"Retrieves a driver's product string.\n\nExample: \"MySQL\", \"SQLite\""},{"tag":"param:product","text":"Product string buffer."},{"tag":"param:maxlength","text":"Maximum length of the buffer."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"char[]","name":"product","decl":"char[] product","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]}},"properties":{}},"Database":{"name":"Database","refLine":339,"docStart":14001,"docEnd":14136,"docs":{"brief":"A Database represents a live connection to a database, either over the\nwire, through a unix domain socket, or over an open file.","tags":[{"tag":"","text":"A Database represents a live connection to a database, either over the\nwire, through a unix domain socket, or over an open file."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"parent":"Handle","methods":{"Format":{"name":"Format","refLine":391,"docStart":16209,"docEnd":16630,"docs":{"brief":"Formats a string according to the SourceMod format rules (see documentation).\nAll format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used.","tags":[{"tag":"","text":"Formats a string according to the SourceMod format rules (see documentation).\nAll format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used."},{"tag":"param:buffer","text":"Destination string buffer."},{"tag":"param:maxlength","text":"Maximum length of output string buffer."},{"tag":"param:format","text":"Formatting rules."},{"tag":"param:...","text":"Variable number of format parameters."},{"tag":"return","text":"Number of cells written."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"buffer","decl":"const char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"const char[]","name":"format","decl":"const char[] format","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"IsSameConnection":{"name":"IsSameConnection","refLine":394,"docStart":16729,"docEnd":16802,"docs":{"brief":"Returns whether a database is the same connection as another database.","tags":[{"tag":"","text":"Returns whether a database is the same connection as another database."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"bool","arguments":[{"type":"Database","name":"other","decl":"Database other","default":null}]},"Connect":{"name":"Connect","refLine":346,"docStart":14171,"docEnd":14460,"docs":{"brief":"Connects to a database asynchronously, so the game thread is not blocked.","tags":[{"tag":"","text":"Connects to a database asynchronously, so the game thread is not blocked."},{"tag":"param:callback","text":"Callback. If no driver was found, the owner is null."},{"tag":"param:name","text":"Database configuration name."},{"tag":"param:data","text":"Extra data value to pass to the callback."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"void","arguments":[{"type":"SQLConnectCallback","name":"callback","decl":"SQLConnectCallback callback","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":"\"default\""},{"type":"any","name":"data","decl":"any data","default":"0"}]},"Execute":{"name":"Execute","refLine":423,"docStart":17633,"docEnd":18131,"docs":{"brief":"Sends a transaction to the database thread. The transaction handle is\nautomatically closed. When the transaction completes, the optional\ncallback is invoked.","tags":[{"tag":"","text":"Sends a transaction to the database thread. The transaction handle is\nautomatically closed. When the transaction completes, the optional\ncallback is invoked."},{"tag":"param:txn","text":"A transaction handle."},{"tag":"param:onSuccess","text":"An optional callback to receive a successful transaction."},{"tag":"param:onError","text":"An optional callback to receive an error message."},{"tag":"param:data","text":"An optional value to pass to callbacks."},{"tag":"param:prio","text":"Priority queue to use."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"void","arguments":[{"type":"Transaction","name":"txn","decl":"Transaction txn","default":null},{"type":"SQLTxnSuccess","name":"onSuccess","decl":"SQLTxnSuccess onSuccess","default":"INVALID_FUNCTION"},{"type":"SQLTxnFailure","name":"onError","decl":"SQLTxnFailure onError","default":"INVALID_FUNCTION"},{"type":"any","name":"data","decl":"any data","default":"0"},{"type":"DBPriority","name":"priority","decl":"DBPriority priority","default":"DBPrio_Normal"}]},"SetCharset":{"name":"SetCharset","refLine":360,"docStart":14685,"docEnd":14986,"docs":{"brief":"Sets the character set of the connection.\nLike SET NAMES .. in mysql, but stays after connection problems.\n\nExample: \"utf8\", \"latin1\"","tags":[{"tag":"","text":"Sets the character set of the connection.\nLike SET NAMES .. in mysql, but stays after connection problems.\n\nExample: \"utf8\", \"latin1\""},{"tag":"param:characterset","text":"The character set string to change to."},{"tag":"return","text":"True, if character set was changed, false otherwise."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"charset","decl":"const char[] charset","default":null}]},"Escape":{"name":"Escape","refLine":381,"docStart":15046,"docEnd":16108,"docs":{"brief":"Escapes a database string for literal insertion. This is not needed\nfor binding strings in prepared statements.\n\nGenerally, database strings are inserted into queries enclosed in\nsingle quotes ('). If user input has a single quote in it, the\nquote needs to be escaped. This function ensures that any unsafe\ncharacters are safely escaped according to the database engine and\nthe database's character set.\n\nNOTE: SourceMod only guarantees properly escaped strings when the query\nencloses the string in ''. While drivers tend to allow \" instead, the string\nmay be not be escaped (for example, on SQLite)!","tags":[{"tag":"","text":"Escapes a database string for literal insertion. This is not needed\nfor binding strings in prepared statements.\n\nGenerally, database strings are inserted into queries enclosed in\nsingle quotes ('). If user input has a single quote in it, the\nquote needs to be escaped. This function ensures that any unsafe\ncharacters are safely escaped according to the database engine and\nthe database's character set.\n\nNOTE: SourceMod only guarantees properly escaped strings when the query\nencloses the string in ''. While drivers tend to allow \" instead, the string\nmay be not be escaped (for example, on SQLite)!"},{"tag":"param:string","text":"String to quote."},{"tag":"param:buffer","text":"Buffer to store quoted string in."},{"tag":"param:maxlength","text":"Maximum length of the buffer."},{"tag":"param:written","text":"Optionally returns the number of bytes written."},{"tag":"return","text":"True on success, false if buffer is not big enough.\nThe buffer must be at least 2*strlen(string)+1."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"string","decl":"const char[] string","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"int&","name":"written","decl":"int& written","default":"0"}]},"Query":{"name":"Query","refLine":410,"docStart":16862,"docEnd":17452,"docs":{"brief":"Executes a query via a thread. The result handle is passed through the\ncallback.\n\nThe database handle returned through the callback is always a new Handle,\nand if necessary, IsSameConnection() should be used to test against other\nconnections.\n\nThe result handle returned through the callback is temporary and destroyed\nat the end of the callback.","tags":[{"tag":"","text":"Executes a query via a thread. The result handle is passed through the\ncallback.\n\nThe database handle returned through the callback is always a new Handle,\nand if necessary, IsSameConnection() should be used to test against other\nconnections.\n\nThe result handle returned through the callback is temporary and destroyed\nat the end of the callback."},{"tag":"param:callback","text":"Callback."},{"tag":"param:query","text":"Query string."},{"tag":"param:data","text":"Extra data value to pass to the callback."},{"tag":"param:prio","text":"Priority queue to use."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"kind":"native","returnType":"void","arguments":[{"type":"SQLQueryCallback","name":"callback","decl":"SQLQueryCallback callback","default":null},{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"any","name":"data","decl":"any data","default":"0"},{"type":"DBPriority","name":"prio","decl":"DBPriority prio","default":"DBPrio_Normal"}]}},"properties":{"Driver":{"name":"Driver","refLine":349,"docStart":14572,"docEnd":14623,"docs":{"brief":"Returns the driver for this database connection.","tags":[{"tag":"","text":"Returns the driver for this database connection."}]},"metadata":{"created":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366},"last_updated":{"hash":"70145dfd74b31bcecd2533760cce50fcde0e1a79","count":6302,"time":1531062366}},"type":"DBDriver","getter":true,"setter":false}}},"DBResultSet":{"name":"DBResultSet","refLine":103,"docStart":3405,"docEnd":3468,"docs":{"brief":"Represents a set of results returned from executing a query.","tags":[{"tag":"","text":"Represents a set of results returned from executing a query."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"parent":"Handle","methods":{"FetchString":{"name":"FetchString","refLine":195,"docStart":6232,"docEnd":6895,"docs":{"brief":"Fetches a string from a field in the current row of a result set.\nIf the result is NULL, an empty string will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull().","tags":[{"tag":"","text":"Fetches a string from a field in the current row of a result set.\nIf the result is NULL, an empty string will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull()."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"param:buffer","text":"String buffer."},{"tag":"param:maxlength","text":"Maximum size of the string buffer."},{"tag":"param:result","text":"Optional variable to store the status of the return value."},{"tag":"return","text":"Number of bytes written."},{"tag":"error","text":"Invalid field index, invalid type conversion requested\nfrom the database, or no current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"field","decl":"int field","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null},{"type":"DBResult&","name":"result","decl":"DBResult& result","default":"DBVal_Error"}]},"FetchMoreResults":{"name":"FetchMoreResults","refLine":113,"docStart":3506,"docEnd":3893,"docs":{"brief":"Advances to the next set of results.\n\nIn some SQL implementations, multiple result sets can exist on one query.\nThis is possible in MySQL with simple queries when executing a CALL\nquery. If this is the case, all result sets must be processed before\nanother query is made.","tags":[{"tag":"","text":"Advances to the next set of results.\n\nIn some SQL implementations, multiple result sets can exist on one query.\nThis is possible in MySQL with simple queries when executing a CALL\nquery. If this is the case, all result sets must be processed before\nanother query is made."},{"tag":"return","text":"True if there was another result set, false otherwise."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"bool","arguments":[]},"Rewind":{"name":"Rewind","refLine":182,"docStart":6034,"docEnd":6196,"docs":{"brief":"Rewinds a result set back to the first result.","tags":[{"tag":"","text":"Rewinds a result set back to the first result."},{"tag":"return","text":"True on success, false otherwise."},{"tag":"error","text":"No current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"bool","arguments":[]},"FetchInt":{"name":"FetchInt","refLine":218,"docStart":7664,"docEnd":8219,"docs":{"brief":"Fetches an integer from a field in the current row of a result set.\nIf the result is NULL, a value of 0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull().","tags":[{"tag":"","text":"Fetches an integer from a field in the current row of a result set.\nIf the result is NULL, a value of 0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull()."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"param:result","text":"Optional variable to store the status of the return value."},{"tag":"return","text":"An integer value."},{"tag":"error","text":"Invalid field index, invalid type conversion requested\nfrom the database, or no current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"field","decl":"int field","default":null},{"type":"DBResult&","name":"result","decl":"DBResult& result","default":"DBVal_Error"}]},"FieldNumToName":{"name":"FieldNumToName","refLine":152,"docStart":4810,"docEnd":5085,"docs":{"brief":"Retrieves the name of a field by index.","tags":[{"tag":"","text":"Retrieves the name of a field by index."},{"tag":"param:field","text":"Field number (starting from 0)."},{"tag":"param:name","text":"Name buffer."},{"tag":"param:maxlength","text":"Maximum length of the name buffer."},{"tag":"error","text":"Invalid field index, or no current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"field","decl":"int field","default":null},{"type":"char[]","name":"name","decl":"char[] name","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"IsFieldNull":{"name":"IsFieldNull","refLine":226,"docStart":8295,"docEnd":8631,"docs":{"brief":"Returns whether a field's data in the current row of a result set is\nNULL or not. NULL is an SQL type which means \"no data.\"","tags":[{"tag":"","text":"Returns whether a field's data in the current row of a result set is\nNULL or not. NULL is an SQL type which means \"no data.\""},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"return","text":"True if data is NULL, false otherwise."},{"tag":"error","text":"Invalid field index, or no current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"field","decl":"int field","default":null}]},"FieldNameToNum":{"name":"FieldNameToNum","refLine":160,"docStart":5166,"docEnd":5435,"docs":{"brief":"Retrieves a field index by name.","tags":[{"tag":"","text":"Retrieves a field index by name."},{"tag":"param:name","text":"Name of the field (case sensitive)."},{"tag":"param:field","text":"Variable to store field index in."},{"tag":"return","text":"True if found, false if not found."},{"tag":"error","text":"No current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"name","decl":"const char[] name","default":null},{"type":"int&","name":"field","decl":"int& field","default":null}]},"FetchRow":{"name":"FetchRow","refLine":169,"docStart":5508,"docEnd":5825,"docs":{"brief":"Fetches a row from the current result set. This must be\nsuccessfully called before any results are fetched.\n\nIf this function fails, _MoreResults can be used to\ntell if there was an error or the result set is finished.","tags":[{"tag":"","text":"Fetches a row from the current result set. This must be\nsuccessfully called before any results are fetched.\n\nIf this function fails, _MoreResults can be used to\ntell if there was an error or the result set is finished."},{"tag":"return","text":"True if a row was fetched, false otherwise."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"bool","arguments":[]},"FetchFloat":{"name":"FetchFloat","refLine":207,"docStart":7033,"docEnd":7584,"docs":{"brief":"Fetches a float from a field in the current row of a result set.\nIf the result is NULL, a value of 0.0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull().","tags":[{"tag":"","text":"Fetches a float from a field in the current row of a result set.\nIf the result is NULL, a value of 0.0 will be returned. A NULL\ncheck can be done with the result parameter, or SQL_IsFieldNull()."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"param:result","text":"Optional variable to store the status of the return value."},{"tag":"return","text":"A float value."},{"tag":"error","text":"Invalid field index, invalid type conversion requested\nfrom the database, or no current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"float","arguments":[{"type":"int","name":"field","decl":"int field","default":null},{"type":"DBResult&","name":"result","decl":"DBResult& result","default":"DBVal_Error"}]},"FetchSize":{"name":"FetchSize","refLine":236,"docStart":8681,"docEnd":9120,"docs":{"brief":"Returns the length of a field's data in the current row of a result\nset. This only needs to be called for strings to determine how many\nbytes to use. Note that the return value does not include the null\nterminator.","tags":[{"tag":"","text":"Returns the length of a field's data in the current row of a result\nset. This only needs to be called for strings to determine how many\nbytes to use. Note that the return value does not include the null\nterminator."},{"tag":"param:field","text":"The field index (starting from 0)."},{"tag":"return","text":"Number of bytes for the field's data size."},{"tag":"error","text":"Invalid field index or no current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"field","decl":"int field","default":null}]}},"properties":{"RowCount":{"name":"RowCount","refLine":126,"docStart":4166,"docEnd":4350,"docs":{"brief":"Retrieves the number of rows in the last result set.","tags":[{"tag":"","text":"Retrieves the number of rows in the last result set."},{"tag":"param:query","text":"A query (or statement) Handle."},{"tag":"return","text":"Number of rows in the current result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"type":"int","getter":true,"setter":false},"InsertId":{"name":"InsertId","refLine":142,"docStart":4680,"docEnd":4751,"docs":{"brief":"Returns the insert id from the query that generated this result set.","tags":[{"tag":"","text":"Returns the insert id from the query that generated this result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"type":"int","getter":true,"setter":false},"FieldCount":{"name":"FieldCount","refLine":131,"docStart":4409,"docEnd":4466,"docs":{"brief":"Retrieves the number of fields in the last result set.","tags":[{"tag":"","text":"Retrieves the number of fields in the last result set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"type":"int","getter":true,"setter":false},"AffectedRows":{"name":"AffectedRows","refLine":137,"docStart":4527,"docEnd":4617,"docs":{"brief":"Returns the number of affected rows from the query that generated this\nresult set.","tags":[{"tag":"","text":"Returns the number of affected rows from the query that generated this\nresult set."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"type":"int","getter":true,"setter":false},"MoreRows":{"name":"MoreRows","refLine":174,"docStart":5863,"docEnd":5974,"docs":{"brief":"Returns if there are more rows.","tags":[{"tag":"","text":"Returns if there are more rows."},{"tag":"return","text":"True if there are more rows, false otherwise."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"type":"bool","getter":true,"setter":false},"HasResults":{"name":"HasResults","refLine":118,"docStart":3939,"docEnd":4104,"docs":{"brief":"Returns whether or not a result set exists. This will\nreturn true even if 0 results were returned, but false\non queries like UPDATE, INSERT, or DELETE.","tags":[{"tag":"","text":"Returns whether or not a result set exists. This will\nreturn true even if 0 results were returned, but false\non queries like UPDATE, INSERT, or DELETE."}]},"metadata":{"created":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994},"last_updated":{"hash":"4346e963e5534786eaf63f6e549b40f1f7bfe9c4","count":5732,"time":1446207994}},"type":"bool","getter":true,"setter":false}}},"Transaction":{"name":"Transaction","refLine":260,"docStart":10297,"docEnd":10401,"docs":{"brief":"A Transaction is a collection of SQL statements that must all execute\nsuccessfully or not at all.","tags":[{"tag":"","text":"A Transaction is a collection of SQL statements that must all execute\nsuccessfully or not at all."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"parent":"Handle","methods":{"AddQuery":{"name":"AddQuery","refLine":270,"docStart":10503,"docEnd":10736,"docs":{"brief":"Adds a query to the transaction.","tags":[{"tag":"","text":"Adds a query to the transaction."},{"tag":"param:query","text":"Query string."},{"tag":"param:data","text":"Extra data value to pass to the final callback."},{"tag":"return","text":"The index of the query in the transaction's query list."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"query","decl":"const char[] query","default":null},{"type":"any","name":"data","decl":"any data","default":"0"}]},"Transaction":{"name":"Transaction","refLine":263,"docStart":10439,"docEnd":10467,"docs":{"brief":"Create a new transaction.","tags":[{"tag":"","text":"Create a new transaction."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"Transaction","arguments":[]}},"properties":{}},"DBStatement":{"name":"DBStatement","refLine":276,"docStart":10806,"docEnd":10987,"docs":{"brief":"A DBStatement is a pre-compiled SQL query that may be executed multiple\ntimes with different parameters. A DBStatement holds a reference to the\nDatabase that prepared it.","tags":[{"tag":"","text":"A DBStatement is a pre-compiled SQL query that may be executed multiple\ntimes with different parameters. A DBStatement holds a reference to the\nDatabase that prepared it."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"parent":"Handle","methods":{"BindFloat":{"name":"BindFloat","refLine":292,"docStart":11471,"docEnd":11727,"docs":{"brief":"Binds a parameter in a prepared statement to a given float value.","tags":[{"tag":"","text":"Binds a parameter in a prepared statement to a given float value."},{"tag":"param:param","text":"The parameter index (starting from 0)."},{"tag":"param:value","text":"The float number to bind."},{"tag":"error","text":"Invalid parameter index, or SQL error."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"param","decl":"int param","default":null},{"type":"float","name":"value","decl":"float value","default":null}]},"BindString":{"name":"BindString","refLine":303,"docStart":11788,"docEnd":12322,"docs":{"brief":"Binds a parameter in a prepared statement to a given string value.","tags":[{"tag":"","text":"Binds a parameter in a prepared statement to a given string value."},{"tag":"param:param","text":"The parameter index (starting from 0)."},{"tag":"param:value","text":"The string to bind."},{"tag":"param:copy","text":"Whether or not SourceMod should copy the value\nlocally if necessary. If the string contents\nwon't change before calling SQL_Execute(), this\ncan be set to false for optimization."},{"tag":"error","text":"Invalid parameter index, or SQL error."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"param","decl":"int param","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null},{"type":"bool","name":"copy","decl":"bool copy","default":null}]},"BindInt":{"name":"BindInt","refLine":285,"docStart":11025,"docEnd":11395,"docs":{"brief":"Binds a parameter in a prepared statement to a given integer value.","tags":[{"tag":"","text":"Binds a parameter in a prepared statement to a given integer value."},{"tag":"param:param","text":"The parameter index (starting from 0)."},{"tag":"param:number","text":"The number to bind."},{"tag":"param:signed","text":"True to bind the number as signed, false to\nbind it as unsigned."},{"tag":"error","text":"Invalid parameter index, or SQL error."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"param","decl":"int param","default":null},{"type":"int","name":"number","decl":"int number","default":null},{"type":"bool","name":"signed","decl":"bool signed","default":"true"}]}},"properties":{}}},"enumstructs":{},"constants":{},"defines":{"_dbi_included":{"name":"_dbi_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"value":""}},"enums":{"DBBindType":{"name":"DBBindType","refLine":52,"docStart":1964,"docEnd":2001,"docs":{"brief":"Describes binding types.","tags":[{"tag":"","text":"Describes binding types."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"entries":{"DBBind_Float":{"name":"DBBind_Float","refLine":55,"docStart":2088,"docEnd":2109,"docs":{"brief":"Bind a float.","tags":[{"tag":"","text":"Bind a float."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"value":"1"},"DBBind_String":{"name":"DBBind_String","refLine":56,"docStart":2132,"docEnd":2154,"docs":{"brief":"Bind a string.","tags":[{"tag":"","text":"Bind a string."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"value":"2"},"DBBind_Int":{"name":"DBBind_Int","refLine":54,"docStart":2042,"docEnd":2066,"docs":{"brief":"Bind an integer.","tags":[{"tag":"","text":"Bind an integer."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"value":"0"}}},"DBPriority":{"name":"DBPriority","refLine":62,"docStart":2162,"docEnd":2200,"docs":{"brief":"Threading priority level.","tags":[{"tag":"","text":"Threading priority level."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"entries":{"DBPrio_High":{"name":"DBPrio_High","refLine":64,"docStart":2241,"docEnd":2263,"docs":{"brief":"High priority.","tags":[{"tag":"","text":"High priority."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"value":"0"},"DBPrio_Normal":{"name":"DBPrio_Normal","refLine":65,"docStart":2286,"docEnd":2310,"docs":{"brief":"Normal priority.","tags":[{"tag":"","text":"Normal priority."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"value":"1"},"DBPrio_Low":{"name":"DBPrio_Low","refLine":66,"docStart":2331,"docEnd":2352,"docs":{"brief":"Low priority.","tags":[{"tag":"","text":"Low priority."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"value":"2"}}},"DBResult":{"name":"DBResult","refLine":53,"docStart":1295,"docEnd":1348,"docs":{"brief":"Describes a database field fetch status.","tags":[{"tag":"","text":"Describes a database field fetch status."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"entries":{"DBVal_Error":{"name":"DBVal_Error","refLine":55,"docStart":1387,"docEnd":1426,"docs":{"brief":"Column number/field is invalid.","tags":[{"tag":"","text":"Column number/field is invalid."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"value":"0"},"DBVal_TypeMismatch":{"name":"DBVal_TypeMismatch","refLine":56,"docStart":1453,"docEnd":1506,"docs":{"brief":"You cannot retrieve this data with this type.","tags":[{"tag":"","text":"You cannot retrieve this data with this type."}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"value":"1"},"DBVal_Data":{"name":"DBVal_Data","refLine":58,"docStart":1580,"docEnd":1602,"docs":{"brief":"Field has data","tags":[{"tag":"","text":"Field has data"}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"value":"3"},"DBVal_Null":{"name":"DBVal_Null","refLine":57,"docStart":1527,"docEnd":1559,"docs":{"brief":"Field has no data (NULL)","tags":[{"tag":"","text":"Field has no data (NULL)"}]},"metadata":{"created":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029},"last_updated":{"hash":"e334e5f7e7b20c78692845c15d3d86dbebfdf7b0","count":869,"time":1180665029}},"value":"2"}}}},"typesets":{"SQLTxnSuccess":{"name":"SQLTxnSuccess","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"a4b45aea9b1c9017fb4475c4dba4a64763201c3c","count":5712,"time":1444762259},"last_updated":{"hash":"a4b45aea9b1c9017fb4475c4dba4a64763201c3c","count":5712,"time":1444762259}},"types":{"function void(Database db, any data, int numQueries, Handle[] results, any[] queryData)":{"refLine":248,"docStart":9211,"docEnd":9646,"docs":{"brief":"Callback for a successful transaction.","tags":[{"tag":"","text":"Callback for a successful transaction."},{"tag":"param:db","text":"Database handle."},{"tag":"param:data","text":"Data value passed to SQL_ExecuteTransaction()."},{"tag":"param:numQueries","text":"Number of queries executed in the transaction."},{"tag":"param:results","text":"An array of Query handle results, one for each of numQueries. They are closed automatically."},{"tag":"param:queryData","text":"An array of each data value passed to SQL_AddQuery()."}]},"metadata":{"created":{"hash":"a4b45aea9b1c9017fb4475c4dba4a64763201c3c","count":5712,"time":1444762259},"last_updated":{"hash":"a4b45aea9b1c9017fb4475c4dba4a64763201c3c","count":5712,"time":1444762259}},"type":"function void(Database db, any data, int numQueries, Handle[] results, any[] queryData)","parsedSignature":{"returnType":"void","arguments":[{"type":"Database","name":"db","decl":"Database db","default":null},{"type":"any","name":"data","decl":"any data","default":null},{"type":"int","name":"numQueries","decl":"int numQueries","default":null},{"type":"Handle[]","name":"results","decl":"Handle[] results","default":null},{"type":"any[]","name":"queryData","decl":"any[] queryData","default":null}]}},"function void(Database db, any data, int numQueries, DBResultSet[] results, any[] queryData)":{"refLine":257,"docStart":9744,"docEnd":10178,"docs":{"brief":"Callback for a successful transaction.","tags":[{"tag":"","text":"Callback for a successful transaction."},{"tag":"param:db","text":"Database handle."},{"tag":"param:data","text":"Data value passed to SQL_ExecuteTransaction()."},{"tag":"param:numQueries","text":"Number of queries executed in the transaction."},{"tag":"param:results","text":"An array of DBResultSet results, one for each of numQueries. They are closed automatically."},{"tag":"param:queryData","text":"An array of each data value passed to SQL_AddQuery()."}]},"metadata":{"created":{"hash":"a4b45aea9b1c9017fb4475c4dba4a64763201c3c","count":5712,"time":1444762259},"last_updated":{"hash":"a4b45aea9b1c9017fb4475c4dba4a64763201c3c","count":5712,"time":1444762259}},"type":"function void(Database db, any data, int numQueries, DBResultSet[] results, any[] queryData)","parsedSignature":{"returnType":"void","arguments":[{"type":"Database","name":"db","decl":"Database db","default":null},{"type":"any","name":"data","decl":"any data","default":null},{"type":"int","name":"numQueries","decl":"int numQueries","default":null},{"type":"DBResultSet[]","name":"results","decl":"DBResultSet[] results","default":null},{"type":"any[]","name":"queryData","decl":"any[] queryData","default":null}]}}}}},"typedefs":{"SQLTxnSuccess":{"name":"SQLTxnSuccess","refLine":246,"docStart":9184,"docEnd":9613,"docs":{"brief":"Callback for a successful transaction.","tags":[{"tag":"","text":"Callback for a successful transaction."},{"tag":"param:db","text":"Database handle."},{"tag":"param:data","text":"Data value passed to SQL_ExecuteTransaction()."},{"tag":"param:numQueries","text":"Number of queries executed in the transaction."},{"tag":"param:results","text":"An array of Query handle results, one for each of numQueries. They are closed automatically."},{"tag":"param:queryData","text":"An array of each data value passed to SQL_AddQuery()."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"type":"function void(Database db, any data, int numQueries, Handle[] results, any[] queryData)","parsedSignature":{"returnType":"void","arguments":[{"type":"Database","name":"db","decl":"Database db","default":null},{"type":"any","name":"data","decl":"any data","default":null},{"type":"int","name":"numQueries","decl":"int numQueries","default":null},{"type":"Handle[]","name":"results","decl":"Handle[] results","default":null},{"type":"any[]","name":"queryData","decl":"any[] queryData","default":null}]}},"SQLTCallback":{"name":"SQLTCallback","refLine":947,"docStart":36970,"docEnd":37438,"docs":{"brief":"General callback for threaded SQL stuff.","tags":[{"tag":"","text":"General callback for threaded SQL stuff."},{"tag":"param:owner","text":"Parent object of the Handle (or INVALID_HANDLE if none)."},{"tag":"param:hndl","text":"Handle to the child object (or INVALID_HANDLE if none)."},{"tag":"param:error","text":"Error string if there was an error. The error could be\nempty even if an error condition exists, so it is important\nto check the actual Handle value instead."},{"tag":"param:data","text":"Data passed in via the original threaded invocation."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"type":"function void(Handle owner, Handle hndl, const char[] error, any data)","parsedSignature":{"returnType":"void","arguments":[{"type":"Handle","name":"owner","decl":"Handle owner","default":null},{"type":"Handle","name":"hndl","decl":"Handle hndl","default":null},{"type":"const char[]","name":"error","decl":"const char[] error","default":null},{"type":"any","name":"data","decl":"any data","default":null}]}},"SQLTxnFailure":{"name":"SQLTxnFailure","refLine":256,"docStart":9732,"docEnd":10161,"docs":{"brief":"Callback for a failed transaction.","tags":[{"tag":"","text":"Callback for a failed transaction."},{"tag":"param:db","text":"Database handle."},{"tag":"param:data","text":"Data value passed to SQL_ExecuteTransaction()."},{"tag":"param:numQueries","text":"Number of queries executed in the transaction."},{"tag":"param:error","text":"Error message."},{"tag":"param:failIndex","text":"Index of the query that failed, or -1 if something else."},{"tag":"param:queryData","text":"An array of each data value passed to SQL_AddQuery()."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"type":"function void(Database db, any data, int numQueries, const char[] error, int failIndex, any[] queryData)","parsedSignature":{"returnType":"void","arguments":[{"type":"Database","name":"db","decl":"Database db","default":null},{"type":"any","name":"data","decl":"any data","default":null},{"type":"int","name":"numQueries","decl":"int numQueries","default":null},{"type":"const char[]","name":"error","decl":"const char[] error","default":null},{"type":"int","name":"failIndex","decl":"int failIndex","default":null},{"type":"any[]","name":"queryData","decl":"any[] queryData","default":null}]}},"SQLQueryCallback":{"name":"SQLQueryCallback","refLine":323,"docStart":12890,"docEnd":13352,"docs":{"brief":"Callback for receiving asynchronous database query results.","tags":[{"tag":"","text":"Callback for receiving asynchronous database query results."},{"tag":"param:db","text":"Cloned handle to the database connection."},{"tag":"param:results","text":"Result object, or null on failure."},{"tag":"param:error","text":"Error string if there was an error. The error could be\nempty even if an error condition exists, so it is important\nto check the actual results value instead."},{"tag":"param:data","text":"Data passed in via the original threaded invocation."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"type":"function void(Database db, DBResultSet results, const char[] error, any data)","parsedSignature":{"returnType":"void","arguments":[{"type":"Database","name":"db","decl":"Database db","default":null},{"type":"DBResultSet","name":"results","decl":"DBResultSet results","default":null},{"type":"const char[]","name":"error","decl":"const char[] error","default":null},{"type":"any","name":"data","decl":"any data","default":null}]}},"SQLConnectCallback":{"name":"SQLConnectCallback","refLine":313,"docStart":12405,"docEnd":12797,"docs":{"brief":"Callback for receiving asynchronous database connections.","tags":[{"tag":"","text":"Callback for receiving asynchronous database connections."},{"tag":"param:db","text":"Handle to the database connection."},{"tag":"param:error","text":"Error string if there was an error. The error could be\nempty even if an error condition exists, so it is important\nto check the actual Handle value instead."},{"tag":"param:data","text":"Data passed in via the original threaded invocation."}]},"metadata":{"created":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931},"last_updated":{"hash":"822501b8a1127a3acd72b3a5ec329d02606327c1","count":5154,"time":1420313931}},"type":"function void(Database db, const char[] error, any data)","parsedSignature":{"returnType":"void","arguments":[{"type":"Database","name":"db","decl":"Database db","default":null},{"type":"const char[]","name":"error","decl":"const char[] error","default":null},{"type":"any","name":"data","decl":"any data","default":null}]}}}},"sdktools_tempents":{"functions":{"TE_ReadVector":{"name":"TE_ReadVector","refLine":135,"docStart":4156,"docEnd":4315,"docs":{"brief":"Reads a vector in the current temp entity.","tags":[{"tag":"","text":"Reads a vector in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:vector","text":"Vector to read."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"float[3]","name":"vector","decl":"float vector[3]","default":null}]},"TE_IsValidProp":{"name":"TE_IsValidProp","refLine":36,"docStart":915,"docEnd":1064,"docs":{"brief":"Checks if a certain TE property exists.","tags":[{"tag":"","text":"Checks if a certain TE property exists."},{"tag":"param:prop","text":"Property to use."},{"tag":"return","text":"True if the property exists, otherwise false."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946}},"kind":"native","returnType":"bool","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null}]},"TE_Send":{"name":"TE_Send","refLine":164,"docStart":4931,"docEnd":5230,"docs":{"brief":"Sends the current temp entity to one or more clients.","tags":[{"tag":"","text":"Sends the current temp entity to one or more clients."},{"tag":"param:clients","text":"Array containing player indexes to broadcast to."},{"tag":"param:numClients","text":"Number of players in the array."},{"tag":"param:delay","text":"Delay in seconds to send the TE."},{"tag":"error","text":"Invalid client index or client not in game."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const int[]","name":"clients","decl":"const int[] clients","default":null},{"type":"int","name":"numClients","decl":"int numClients","default":null},{"type":"float","name":"delay","decl":"float delay","default":"0.000000"}]},"TE_ReadNum":{"name":"TE_ReadNum","refLine":103,"docStart":3286,"docEnd":3448,"docs":{"brief":"Reads an integer value in the current temp entity.","tags":[{"tag":"","text":"Reads an integer value in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"return","text":"Property value."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null}]},"TE_WriteVector":{"name":"TE_WriteVector","refLine":126,"docStart":3924,"docEnd":4081,"docs":{"brief":"Sets a vector in the current temp entity.","tags":[{"tag":"","text":"Sets a vector in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:vector","text":"Vector to set."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"const float[3]","name":"vector","decl":"const float vector[3]","default":null}]},"TE_Start":{"name":"TE_Start","refLine":73,"docStart":2639,"docEnd":2762,"docs":{"brief":"Starts a temp entity transmission.","tags":[{"tag":"","text":"Starts a temp entity transmission."},{"tag":"param:te_name","text":"TE name."},{"tag":"error","text":"Temp Entity name not available."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"te_name","decl":"const char[] te_name","default":null}]},"RemoveTempEntHook":{"name":"RemoveTempEntHook","refLine":65,"docStart":2372,"docEnd":2568,"docs":{"brief":"Removes a temp entity hook.","tags":[{"tag":"","text":"Removes a temp entity hook."},{"tag":"param:te_name","text":"TE name to unhook."},{"tag":"param:hook","text":"Function used for the hook."},{"tag":"error","text":"Temp Entity name not available or invalid function hook."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"te_name","decl":"const char[] te_name","default":null},{"type":"TEHook","name":"hook","decl":"TEHook hook","default":null}]},"AddTempEntHook":{"name":"AddTempEntHook","refLine":56,"docStart":2118,"docEnd":2304,"docs":{"brief":"Hooks a temp entity.","tags":[{"tag":"","text":"Hooks a temp entity."},{"tag":"param:te_name","text":"TE name to hook."},{"tag":"param:hook","text":"Function to use as a hook."},{"tag":"error","text":"Temp Entity name not available or invalid function hook."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"te_name","decl":"const char[] te_name","default":null},{"type":"TEHook","name":"hook","decl":"TEHook hook","default":null}]},"TE_WriteNum":{"name":"TE_WriteNum","refLine":90,"docStart":3012,"docEnd":3184,"docs":{"brief":"Sets an integer value in the current temp entity.","tags":[{"tag":"","text":"Sets an integer value in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:value","text":"Integer value to set."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"int","name":"value","decl":"int value","default":null}]},"TE_WriteFloatArray":{"name":"TE_WriteFloatArray","refLine":154,"docStart":4615,"docEnd":4839,"docs":{"brief":"Sets an array of floats in the current temp entity.","tags":[{"tag":"","text":"Sets an array of floats in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:array","text":"Array of values to copy."},{"tag":"param:arraySize","text":"Number of values to copy."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"6e98ba7080cb88dfe1695bc1c2bad7f017599090","count":1040,"time":1183594919},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"const float[]","name":"array","decl":"const float[] array","default":null},{"type":"int","name":"arraySize","decl":"int arraySize","default":null}]},"TE_WriteAngles":{"name":"TE_WriteAngles","refLine":144,"docStart":4383,"docEnd":4540,"docs":{"brief":"Sets a QAngle in the current temp entity.","tags":[{"tag":"","text":"Sets a QAngle in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:angles","text":"Angles to set."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"const float[3]","name":"angles","decl":"const float angles[3]","default":null}]},"TE_SendToClient":{"name":"TE_SendToClient","refLine":208,"docStart":6106,"docEnd":6331,"docs":{"brief":"Sends the current TE to only a client.","tags":[{"tag":"","text":"Sends the current TE to only a client."},{"tag":"note","text":"See TE_Start()."},{"tag":"param:client","text":"Client to send to."},{"tag":"param:delay","text":"Delay in seconds to send the TE."},{"tag":"error","text":"Invalid client index or client not in game."}]},"metadata":{"created":{"hash":"b0f5b985bbb5e04b20a569c85f39c174c7501667","count":1054,"time":1183841300},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"stock","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"float","name":"delay","decl":"float delay","default":"0.000000"}]},"TE_WriteEncodedEnt":{"name":"TE_WriteEncodedEnt","refLine":174,"docStart":5310,"docEnd":5545,"docs":{"brief":"Sets an encoded entity index in the current temp entity.\n(This is usually used for m_nStartEntity and m_nEndEntity).","tags":[{"tag":"","text":"Sets an encoded entity index in the current temp entity.\n(This is usually used for m_nStartEntity and m_nEndEntity)."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:value","text":"Value to set."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"int","name":"value","decl":"int value","default":null}]},"TE_SendToOne":{"name":"TE_SendToOne","refLine":135,"docStart":3336,"docEnd":3575,"docs":{"brief":"Sends the current TE to only a client.","tags":[{"tag":"","text":"Sends the current TE to only a client."},{"tag":"note","text":"See TE_Start()."},{"tag":"param:client","text":"Client to send to."},{"tag":"param:delay","text":"Delay in seconds to send the TE."},{"tag":"error","text":"Invalid client index or client not in game."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946}},"kind":"stock","returnType":"int","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"float","name":"delay","decl":"float delay","default":"0.000000"}]},"TE_SendToAllInRange":{"name":"TE_SendToAllInRange","refLine":227,"docStart":6914,"docEnd":7269,"docs":{"brief":"Sends the current TE to all clients that are in\nvisible or audible range of the origin.","tags":[{"tag":"","text":"Sends the current TE to all clients that are in\nvisible or audible range of the origin."},{"tag":"note","text":"See TE_Start()."},{"tag":"note","text":"See GetClientsInRange()"},{"tag":"param:origin","text":"Coordinates from which to test range."},{"tag":"param:rangeType","text":"Range type to use for filtering clients."},{"tag":"param:delay","text":"Delay in seconds to send the TE."}]},"metadata":{"created":{"hash":"b53947ccc306858ff0b4b4f4bfddf639f23f2418","count":5323,"time":1425399721},"last_updated":{"hash":"2a9deb6a64799740617751a71fb30a592594d296","count":6470,"time":1573633980}},"kind":"stock","returnType":"void","arguments":[{"type":"const float[3]","name":"origin","decl":"const float origin[3]","default":null},{"type":"ClientRangeType","name":"rangeType","decl":"ClientRangeType rangeType","default":null},{"type":"float","name":"delay","decl":"float delay","default":"0.000000"}]},"TE_SendToAll":{"name":"TE_SendToAll","refLine":186,"docStart":5707,"docEnd":5851,"docs":{"brief":"Broadcasts the current temp entity to all clients.","tags":[{"tag":"","text":"Broadcasts the current temp entity to all clients."},{"tag":"note","text":"See TE_Start()."},{"tag":"param:delay","text":"Delay in seconds to send the TE."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"stock","returnType":"void","arguments":[{"type":"float","name":"delay","decl":"float delay","default":"0.000000"}]},"TE_ReadFloat":{"name":"TE_ReadFloat","refLine":122,"docStart":3755,"docEnd":3926,"docs":{"brief":"Reads a floating point number in the current temp entity.","tags":[{"tag":"","text":"Reads a floating point number in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"noreturn","text":"Property value."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"kind":"native","returnType":"float","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null}]},"TE_WriteFloat":{"name":"TE_WriteFloat","refLine":108,"docStart":3453,"docEnd":3640,"docs":{"brief":"Sets a floating point number in the current temp entity.","tags":[{"tag":"","text":"Sets a floating point number in the current temp entity."},{"tag":"param:prop","text":"Property to use."},{"tag":"param:value","text":"Floating point number to set."},{"tag":"error","text":"Property not found."}]},"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"prop","decl":"const char[] prop","default":null},{"type":"float","name":"value","decl":"float value","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_tempents_included":{"name":"_sdktools_tempents_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946},"last_updated":{"hash":"8749f537d43fbb528aa1b2196e0dc7cc7085a559","count":1032,"time":1183335946}},"value":""}},"enums":{},"typesets":{},"typedefs":{"TEHook":{"name":"TEHook","refLine":47,"docStart":1660,"docEnd":2006,"docs":{"brief":"Called when a temp entity is going to be sent.","tags":[{"tag":"","text":"Called when a temp entity is going to be sent."},{"tag":"param:te_name","text":"TE name."},{"tag":"param:Players","text":"Array containing target player indexes."},{"tag":"param:numClients","text":"Number of players in the array."},{"tag":"param:delay","text":"Delay in seconds to send the TE."},{"tag":"return","text":"Plugin_Continue to allow the transmission of the TE, Plugin_Stop to block it."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"type":"function Action(const char[] te_name, const int[] Players, int numClients, float delay)","parsedSignature":{"returnType":"Action","arguments":[{"type":"const char[]","name":"te_name","decl":"const char[] te_name","default":null},{"type":"const int[]","name":"Players","decl":"const int[] Players","default":null},{"type":"int","name":"numClients","decl":"int numClients","default":null},{"type":"float","name":"delay","decl":"float delay","default":null}]}}}},"sdktools_stringtables":{"functions":{"GetStringTableDataLength":{"name":"GetStringTableDataLength","refLine":98,"docStart":3027,"docEnd":3333,"docs":{"brief":"Returns the length of the user data associated with a given string index.","tags":[{"tag":"","text":"Returns the length of the user data associated with a given string index."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:stringidx","text":"A string index."},{"tag":"return","text":"Length of user data. This will be 0 if there is no user data."},{"tag":"error","text":"Invalid string table index or string index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"int","name":"stringidx","decl":"int stringidx","default":null}]},"AddFileToDownloadsTable":{"name":"AddFileToDownloadsTable","refLine":151,"docStart":5226,"docEnd":5444,"docs":{"brief":"Adds a file to the downloadables network string table.\nThis forces a client to download the file if they do not already have it.","tags":[{"tag":"","text":"Adds a file to the downloadables network string table.\nThis forces a client to download the file if they do not already have it."},{"tag":"param:filename","text":"File that will be added to downloadables table."}]},"metadata":{"created":{"hash":"662e5673f7dbb0b80328c667276abd48d11cbd93","count":1116,"time":1184485695},"last_updated":{"hash":"662e5673f7dbb0b80328c667276abd48d11cbd93","count":1116,"time":1184485695}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"filename","decl":"const char[] filename","default":null}]},"FindStringIndex":{"name":"FindStringIndex","refLine":76,"docStart":2241,"docEnd":2507,"docs":{"brief":"Searches for the index of a given string in a string table.","tags":[{"tag":"","text":"Searches for the index of a given string in a string table."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:string","text":"String to find."},{"tag":"return","text":"String index if found, INVALID_STRING_INDEX otherwise."},{"tag":"error","text":"Invalid string table index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"const char[]","name":"str","decl":"const char[] str","default":null}]},"ReadStringTable":{"name":"ReadStringTable","refLine":105,"docStart":3491,"docEnd":3876,"docs":{"brief":"Retrieves the string at a given index of a string table.","tags":[{"tag":"","text":"Retrieves the string at a given index of a string table."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:stringidx","text":"A string index."},{"tag":"param:str","text":"Buffer to store the string value."},{"tag":"param:maxlength","text":"Maximum length of string buffer."},{"tag":"return","text":"Number of bytes written to the buffer (UTF-8 safe)."},{"tag":"error","text":"Invalid string table index or string index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"0e167ee85b9ea4a756873bae5d01e6168f8c4e9d","count":3968,"time":1375363594}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"int","name":"stringidx","decl":"int stringidx","default":null},{"type":"char[]","name":"str","decl":"char[] str","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"GetStringTableMaxStrings":{"name":"GetStringTableMaxStrings","refLine":55,"docStart":1569,"docEnd":1800,"docs":{"brief":"Returns the maximum number of strings that are allowed in a given string table.","tags":[{"tag":"","text":"Returns the maximum number of strings that are allowed in a given string table."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"return","text":"Maximum number of strings allowed."},{"tag":"error","text":"Invalid string table index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null}]},"GetStringTableName":{"name":"GetStringTableName","refLine":66,"docStart":1848,"docEnd":2173,"docs":{"brief":"Retrieves the name of a string table.","tags":[{"tag":"","text":"Retrieves the name of a string table."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:name","text":"Buffer to store the name of the string table."},{"tag":"param:maxlength","text":"Maximum length of string buffer."},{"tag":"return","text":"Number of bytes written to the buffer (UTF-8 safe)."},{"tag":"error","text":"Invalid string table index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"char[]","name":"name","decl":"char[] name","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"SetStringTableData":{"name":"SetStringTableData","refLine":138,"docStart":5199,"docEnd":5583,"docs":{"brief":"Sets the user data associated with a given string index.","tags":[{"tag":"","text":"Sets the user data associated with a given string index."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:stringidx","text":"A string index."},{"tag":"param:userdata","text":"User data string that will be set."},{"tag":"param:length","text":"Length of user data string. This should include the null terminator."},{"tag":"error","text":"Invalid string table index or string index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"25462071df58307f41dca5890c33480c7e263572","count":6526,"time":1586883099}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"int","name":"stringidx","decl":"int stringidx","default":null},{"type":"const char[]","name":"userdata","decl":"const char[] userdata","default":null},{"type":"int","name":"length","decl":"int length","default":null}]},"GetStringTableNumStrings":{"name":"GetStringTableNumStrings","refLine":46,"docStart":1289,"docEnd":1521,"docs":{"brief":"Returns the number of strings that currently exist in a given string table.","tags":[{"tag":"","text":"Returns the number of strings that currently exist in a given string table."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"return","text":"Number of strings that currently exist."},{"tag":"error","text":"Invalid string table index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null}]},"FindStringTable":{"name":"FindStringTable","refLine":30,"docStart":892,"docEnd":1070,"docs":{"brief":"Searches for a string table.","tags":[{"tag":"","text":"Searches for a string table."},{"tag":"param:name","text":"Name of string table to find."},{"tag":"return","text":"A string table index number if found, INVALID_STRING_TABLE otherwise."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[{"type":"const char[]","name":"name","decl":"const char[] name","default":null}]},"GetStringTableData":{"name":"GetStringTableData","refLine":127,"docStart":4316,"docEnd":4756,"docs":{"brief":"Retrieves the user data associated with a given string index.","tags":[{"tag":"","text":"Retrieves the user data associated with a given string index."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:stringidx","text":"A string index."},{"tag":"param:userdata","text":"Buffer to store the user data. This will be set to \"\" if there is no user data."},{"tag":"param:maxlength","text":"Maximum length of string buffer."},{"tag":"return","text":"Number of bytes written to the buffer (UTF-8 safe)."},{"tag":"error","text":"Invalid string table index or string index."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"0e167ee85b9ea4a756873bae5d01e6168f8c4e9d","count":3968,"time":1375363594}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"int","name":"stringidx","decl":"int stringidx","default":null},{"type":"char[]","name":"userdata","decl":"char[] userdata","default":null},{"type":"int","name":"maxlength","decl":"int maxlength","default":null}]},"AddToStringTable":{"name":"AddToStringTable","refLine":151,"docStart":5440,"docEnd":5838,"docs":{"brief":"Adds a string to a given string table.","tags":[{"tag":"","text":"Adds a string to a given string table."},{"tag":"param:tableidx","text":"A string table index."},{"tag":"param:str","text":"String to add."},{"tag":"param:userdata","text":"An optional user data string."},{"tag":"param:length","text":"Length of user data string. This should include the null terminator.\nIf set to -1, then user data will be not be altered if the specified string\nalready exists in the string table."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"tableidx","decl":"int tableidx","default":null},{"type":"const char[]","name":"str","decl":"const char[] str","default":null},{"type":"const char[]","name":"userdata","decl":"const char[] userdata","default":"\"\""},{"type":"int","name":"length","decl":"int length","default":"-1"}]},"GetNumStringTables":{"name":"GetNumStringTables","refLine":37,"docStart":1120,"docEnd":1255,"docs":{"brief":"Returns the number of string tables that currently exist.","tags":[{"tag":"","text":"Returns the number of string tables that currently exist."},{"tag":"return","text":"Number of string tables that currently exist."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"int","arguments":[]},"LockStringTables":{"name":"LockStringTables","refLine":143,"docStart":4924,"docEnd":5180,"docs":{"brief":"Locks or unlocks the network string tables.","tags":[{"tag":"","text":"Locks or unlocks the network string tables."},{"tag":"param:lock","text":"Determines whether network string tables should be locked.\nTrue means the tables should be locked for writing; false means unlocked."},{"tag":"return","text":"Previous lock state."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"native","returnType":"bool","arguments":[{"type":"bool","name":"lock","decl":"bool lock","default":null}]},"AddFileToDownloadTable":{"name":"AddFileToDownloadTable","refLine":151,"docStart":5226,"docEnd":5444,"docs":{"brief":"Adds a file to the downloadables network string table.\nThis forces a client to download the file if they do not already have it.","tags":[{"tag":"","text":"Adds a file to the downloadables network string table.\nThis forces a client to download the file if they do not already have it."},{"tag":"param:filename","text":"File that will be added to downloadables table."}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"kind":"stock","returnType":"void","arguments":[{"type":"const char[]","name":"filename","decl":"const char[] filename","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"INVALID_STRING_INDEX":{"name":"INVALID_STRING_INDEX","refLine":22,"docStart":846,"docEnd":888,"docs":{"brief":"An invalid string index in a table","tags":[{"tag":"","text":"An invalid string index in a table"}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"value":"-1"},"INVALID_STRING_TABLE":{"name":"INVALID_STRING_TABLE","refLine":21,"docStart":774,"docEnd":811,"docs":{"brief":"An invalid string table index","tags":[{"tag":"","text":"An invalid string table index"}]},"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"value":"-1"},"_sdktools_stringtables_included":{"name":"_sdktools_stringtables_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457},"last_updated":{"hash":"a55ebc0c969051f30815592da3718c3fb11f53be","count":1115,"time":1184485457}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"sdktools":{"functions":{"EndPrepSDKCall":{"name":"EndPrepSDKCall","refLine":138,"docStart":4733,"docEnd":4895,"docs":{"brief":"Finalizes an SDK call preparation and returns the resultant Handle.","tags":[{"tag":"","text":"Finalizes an SDK call preparation and returns the resultant Handle."},{"tag":"return","text":"A new SDKCall Handle on success, or INVALID_HANDLE on failure."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"kind":"native","returnType":"Handle","arguments":[]},"PrepSDKCall_SetSignature":{"name":"PrepSDKCall_SetSignature","refLine":96,"docStart":2687,"docEnd":3147,"docs":{"brief":"Finds an address in a library and sets it as the address to use for the SDK call.","tags":[{"tag":"","text":"Finds an address in a library and sets it as the address to use for the SDK call."},{"tag":"param:lib","text":"Library to use."},{"tag":"param:signature","text":"Binary data to search for in the library. If it starts with '@',\nthe bytes parameter is ignored and the signature is interpreted\nas a symbol lookup in the library."},{"tag":"param:bytes","text":"Number of bytes in the binary search string."},{"tag":"return","text":"True on success, false if nothing was found."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"kind":"native","returnType":"bool","arguments":[{"type":"SDKLibrary","name":"lib","decl":"SDKLibrary lib","default":null},{"type":"const char[]","name":"signature","decl":"const char[] signature","default":null},{"type":"int","name":"bytes","decl":"int bytes","default":null}]},"PrepSDKCall_SetReturnInfo":{"name":"PrepSDKCall_SetReturnInfo","refLine":161,"docStart":5555,"docEnd":5994,"docs":{"brief":"Sets the return information of an SDK call. Do not call this if there is no return data.\nThis must be called if there is a return value (i.e. it is not necessarily safe to ignore\nthe data).","tags":[{"tag":"","text":"Sets the return information of an SDK call. Do not call this if there is no return data.\nThis must be called if there is a return value (i.e. it is not necessarily safe to ignore\nthe data)."},{"tag":"param:type","text":"Data type to convert to/from."},{"tag":"param:pass","text":"How the data is passed in C++."},{"tag":"param:decflags","text":"Flags on decoding from the plugin to C++."},{"tag":"param:encflags","text":"Flags on encoding from C++ to the plugin."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"SDKType","name":"type","decl":"SDKType type","default":null},{"type":"SDKPassMethod","name":"pass","decl":"SDKPassMethod pass","default":null},{"type":"int","name":"decflags","decl":"int decflags","default":"0"},{"type":"int","name":"encflags","decl":"int encflags","default":"0"}]},"GetPlayerResourceEntity":{"name":"GetPlayerResourceEntity","refLine":202,"docStart":7534,"docEnd":7673,"docs":{"brief":"Returns the entity index of the player resource/manager entity.","tags":[{"tag":"","text":"Returns the entity index of the player resource/manager entity."},{"tag":"return","text":"Index of resource entity or -1 if not found."}]},"metadata":{"created":{"hash":"0c7696da65379a3661af0afad3f4047293e5b032","count":3817,"time":1363456236},"last_updated":{"hash":"0c7696da65379a3661af0afad3f4047293e5b032","count":3817,"time":1363456236}},"kind":"native","returnType":"int","arguments":[]},"StartPrepSDKCall":{"name":"StartPrepSDKCall","refLine":111,"docStart":3955,"docEnd":4064,"docs":{"brief":"Starts the preparation of an SDK call.","tags":[{"tag":"","text":"Starts the preparation of an SDK call."},{"tag":"param:type","text":"Type of function call this will be."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"SDKCallType","name":"type","decl":"SDKCallType type","default":null}]},"SDKCall":{"name":"SDKCall","refLine":159,"docStart":4932,"docEnd":5873,"docs":{"brief":"Calls an SDK function with the given parameters.\n\nIf the call type is Entity or Player, the index MUST ALWAYS be the FIRST parameter passed.\nIf the return value is a Vector or QAngles, the SECOND parameter must be a Float[3].\nIf the return value is a string, the THIRD parameter must be a String buffer, and the\nFOURTH parameter must be the maximum length.\nAll parameters must be passed after the above is followed. Failure to follow these\nrules will result in crashes or wildly unexpected behavior!\n\nIf the return value is a float or integer, the return value will be this value.\nIf the return value is a CBaseEntity, CBasePlayer, or edict, the return value will\nalways be the entity index, or -1 for NULL.","tags":[{"tag":"","text":"Calls an SDK function with the given parameters.\n\nIf the call type is Entity or Player, the index MUST ALWAYS be the FIRST parameter passed.\nIf the return value is a Vector or QAngles, the SECOND parameter must be a Float[3].\nIf the return value is a string, the THIRD parameter must be a String buffer, and the\nFOURTH parameter must be the maximum length.\nAll parameters must be passed after the above is followed. Failure to follow these\nrules will result in crashes or wildly unexpected behavior!\n\nIf the return value is a float or integer, the return value will be this value.\nIf the return value is a CBaseEntity, CBasePlayer, or edict, the return value will\nalways be the entity index, or -1 for NULL."},{"tag":"param:call","text":"SDKCall Handle."},{"tag":"param:...","text":"Call Parameters."},{"tag":"return","text":"Simple return value, if any."},{"tag":"error","text":"Invalid Handle or internal decoding error."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"kind":"native","returnType":"any","arguments":[{"type":"Handle","name":"call","decl":"Handle call","default":null},{"type":"any...","name":"...","decl":"any...","default":null}]},"PrepSDKCall_SetVirtual":{"name":"PrepSDKCall_SetVirtual","refLine":118,"docStart":4117,"docEnd":4231,"docs":{"brief":"Sets the virtual index of the SDK call if it is virtual.","tags":[{"tag":"","text":"Sets the virtual index of the SDK call if it is virtual."},{"tag":"param:vtblidx","text":"Virtual table index."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"vtblidx","decl":"int vtblidx","default":null}]},"PrepSDKCall_SetAddress":{"name":"PrepSDKCall_SetAddress","refLine":140,"docStart":4851,"docEnd":5013,"docs":{"brief":"Uses the given function address for the SDK call.","tags":[{"tag":"","text":"Uses the given function address for the SDK call."},{"tag":"param:addr","text":"Address of function to use."},{"tag":"return","text":"True on success, false on failure."}]},"metadata":{"created":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896},"last_updated":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896}},"kind":"native","returnType":"bool","arguments":[{"type":"Address","name":"addr","decl":"Address addr","default":null}]},"PrepSDKCall_SetFromConf":{"name":"PrepSDKCall_SetFromConf","refLine":107,"docStart":3239,"docEnd":3634,"docs":{"brief":"Finds an address or virtual function index in a GameConfig file and sets it as\nthe calling information for the SDK call.","tags":[{"tag":"","text":"Finds an address or virtual function index in a GameConfig file and sets it as\nthe calling information for the SDK call."},{"tag":"param:gameconf","text":"GameConfig Handle, or INVALID_HANDLE to use sdktools.games.txt."},{"tag":"param:source","text":"Whether to look in Offsets or Signatures."},{"tag":"param:name","text":"Name of the property to find."},{"tag":"return","text":"True on success, false if nothing was found."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"gameconf","decl":"Handle gameconf","default":null},{"type":"SDKFuncConfSource","name":"source","decl":"SDKFuncConfSource source","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":null}]},"PrepSDKCall_AddParameter":{"name":"PrepSDKCall_AddParameter","refLine":171,"docStart":6104,"docEnd":6437,"docs":{"brief":"Adds a parameter to the calling convention. This should be called in normal ascending order.","tags":[{"tag":"","text":"Adds a parameter to the calling convention. This should be called in normal ascending order."},{"tag":"param:type","text":"Data type to convert to/from."},{"tag":"param:pass","text":"How the data is passed in C++."},{"tag":"param:decflags","text":"Flags on decoding from the plugin to C++."},{"tag":"param:encflags","text":"Flags on encoding from C++ to the plugin."}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"SDKType","name":"type","decl":"SDKType type","default":null},{"type":"SDKPassMethod","name":"pass","decl":"SDKPassMethod pass","default":null},{"type":"int","name":"decflags","decl":"int decflags","default":"0"},{"type":"int","name":"encflags","decl":"int encflags","default":"0"}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_included":{"name":"_sdktools_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":""},"VDECODE_FLAG_ALLOWNULL":{"name":"VDECODE_FLAG_ALLOWNULL","refLine":63,"docStart":2014,"docEnd":2045,"docs":{"brief":"Allow NULL for pointers","tags":[{"tag":"","text":"Allow NULL for pointers"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":"(1<<0)"},"VDECODE_FLAG_ALLOWWORLD":{"name":"VDECODE_FLAG_ALLOWWORLD","refLine":65,"docStart":2167,"docEnd":2193,"docs":{"brief":"Allow World entity","tags":[{"tag":"","text":"Allow World entity"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":"(1<<2)"},"VDECODE_FLAG_ALLOWNOTINGAME":{"name":"VDECODE_FLAG_ALLOWNOTINGAME","refLine":64,"docStart":2091,"docEnd":2124,"docs":{"brief":"Allow players not in game","tags":[{"tag":"","text":"Allow players not in game"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":"(1<<1)"},"VENCODE_FLAG_COPYBACK":{"name":"VENCODE_FLAG_COPYBACK","refLine":68,"docStart":2307,"docEnd":2339,"docs":{"brief":"Copy back data once done","tags":[{"tag":"","text":"Copy back data once done"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":"(1<<0)"},"VDECODE_FLAG_BYREF":{"name":"VDECODE_FLAG_BYREF","refLine":66,"docStart":2232,"docEnd":2264,"docs":{"brief":"Floats/ints by reference","tags":[{"tag":"","text":"Floats/ints by reference"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":"(1<<3)"}},"enums":{"SDKCallType":{"name":"SDKCallType","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"entries":{"SDKCall_Static":{"name":"SDKCall_Static","refLine":58,"docStart":2173,"docEnd":2192,"docs":{"brief":"Static call","tags":[{"tag":"","text":"Static call"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null},"SDKCall_EntityList":{"name":"SDKCall_EntityList","refLine":63,"docStart":2422,"docEnd":2452,"docs":{"brief":"CGlobalEntityList call","tags":[{"tag":"","text":"CGlobalEntityList call"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null},"SDKCall_Raw":{"name":"SDKCall_Raw","refLine":64,"docStart":2479,"docEnd":2527,"docs":{"brief":"|this| pointer with an arbitrary address","tags":[{"tag":"","text":"|this| pointer with an arbitrary address"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null},"SDKCall_Server":{"name":"SDKCall_Server","refLine":61,"docStart":2321,"docEnd":2345,"docs":{"brief":"CBaseServer call","tags":[{"tag":"","text":"CBaseServer call"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null},"SDKCall_GameRules":{"name":"SDKCall_GameRules","refLine":62,"docStart":2372,"docEnd":2395,"docs":{"brief":"CGameRules call","tags":[{"tag":"","text":"CGameRules call"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null},"SDKCall_Entity":{"name":"SDKCall_Entity","refLine":59,"docStart":2219,"docEnd":2243,"docs":{"brief":"CBaseEntity call","tags":[{"tag":"","text":"CBaseEntity call"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null},"SDKCall_Player":{"name":"SDKCall_Player","refLine":60,"docStart":2270,"docEnd":2294,"docs":{"brief":"CBasePlayer call","tags":[{"tag":"","text":"CBasePlayer call"}]},"metadata":{"created":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096},"last_updated":{"hash":"ffc23a1a1e3ab7aa62fb3ad6205b0e1eca85221f","count":6793,"time":1635283096}},"value":null}}},"SDKPassMethod":{"name":"SDKPassMethod","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"entries":{"SDKPass_Pointer":{"name":"SDKPass_Pointer","refLine":57,"docStart":1788,"docEnd":1813,"docs":{"brief":"Pass as a pointer","tags":[{"tag":"","text":"Pass as a pointer"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":null},"SDKPass_ByValue":{"name":"SDKPass_ByValue","refLine":59,"docStart":1880,"docEnd":1911,"docs":{"brief":"Pass an object by value","tags":[{"tag":"","text":"Pass an object by value"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":null},"SDKPass_ByRef":{"name":"SDKPass_ByRef","refLine":60,"docStart":1931,"docEnd":1966,"docs":{"brief":"Pass an object by reference","tags":[{"tag":"","text":"Pass an object by reference"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":null},"SDKPass_Plain":{"name":"SDKPass_Plain","refLine":58,"docStart":1833,"docEnd":1859,"docs":{"brief":"Pass as plain data","tags":[{"tag":"","text":"Pass as plain data"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":null}}},"SDKType":{"name":"SDKType","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"entries":{"SDKType_CBaseEntity":{"name":"SDKType_CBaseEntity","refLine":45,"docStart":1279,"docEnd":1318,"docs":{"brief":"CBaseEntity (always as pointer)","tags":[{"tag":"","text":"CBaseEntity (always as pointer)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_Float":{"name":"SDKType_Float","refLine":50,"docStart":1593,"docEnd":1612,"docs":{"brief":"Float (any)","tags":[{"tag":"","text":"Float (any)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_CBasePlayer":{"name":"SDKType_CBasePlayer","refLine":46,"docStart":1342,"docEnd":1381,"docs":{"brief":"CBasePlayer (always as pointer)","tags":[{"tag":"","text":"CBasePlayer (always as pointer)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_QAngle":{"name":"SDKType_QAngle","refLine":48,"docStart":1464,"docEnd":1506,"docs":{"brief":"QAngles (pointer, byval, or byref)","tags":[{"tag":"","text":"QAngles (pointer, byval, or byref)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_PlainOldData":{"name":"SDKType_PlainOldData","refLine":49,"docStart":1531,"docEnd":1573,"docs":{"brief":"Integer/generic data <=32bit (any)","tags":[{"tag":"","text":"Integer/generic data <=32bit (any)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_Edict":{"name":"SDKType_Edict","refLine":51,"docStart":1632,"docEnd":1667,"docs":{"brief":"edict_t (always as pointer)","tags":[{"tag":"","text":"edict_t (always as pointer)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_Vector":{"name":"SDKType_Vector","refLine":47,"docStart":1402,"docEnd":1443,"docs":{"brief":"Vector (pointer, byval, or byref)","tags":[{"tag":"","text":"Vector (pointer, byval, or byref)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_String":{"name":"SDKType_String","refLine":52,"docStart":1688,"docEnd":1738,"docs":{"brief":"NULL-terminated string (always as pointer)","tags":[{"tag":"","text":"NULL-terminated string (always as pointer)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null},"SDKType_Bool":{"name":"SDKType_Bool","refLine":53,"docStart":1757,"docEnd":1778,"docs":{"brief":"Boolean (any)","tags":[{"tag":"","text":"Boolean (any)"}]},"metadata":{"created":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443},"last_updated":{"hash":"0b9447d986b289e5872729c24a5e1d3a866e0745","count":956,"time":1182018443}},"value":null}}},"SDKLibrary":{"name":"SDKLibrary","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"entries":{"SDKLibrary_Server":{"name":"SDKLibrary_Server","refLine":33,"docStart":959,"docEnd":992,"docs":{"brief":"server.dll/server_i486.so","tags":[{"tag":"","text":"server.dll/server_i486.so"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":null},"SDKLibrary_Engine":{"name":"SDKLibrary_Engine","refLine":34,"docStart":1014,"docEnd":1044,"docs":{"brief":"engine.dll/engine_*.so","tags":[{"tag":"","text":"engine.dll/engine_*.so"}]},"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985}},"value":null}}},"SDKFuncConfSource":{"name":"SDKFuncConfSource","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"11ff3812893ff06b55d8f693403eafe786d80a7a","count":955,"time":1182016985},"last_updated":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896}},"entries":{"SDKConf_Virtual":{"name":"SDKConf_Virtual","refLine":73,"docStart":2599,"docEnd":2652,"docs":{"brief":"Read a virtual index from the Offsets section","tags":[{"tag":"","text":"Read a virtual index from the Offsets section"}]},"metadata":{"created":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896},"last_updated":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896}},"value":"0"},"SDKConf_Address":{"name":"SDKConf_Address","refLine":75,"docStart":2754,"docEnd":2804,"docs":{"brief":"Read an address from the Addresses section","tags":[{"tag":"","text":"Read an address from the Addresses section"}]},"metadata":{"created":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896},"last_updated":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896}},"value":"2"},"SDKConf_Signature":{"name":"SDKConf_Signature","refLine":74,"docStart":2678,"docEnd":2730,"docs":{"brief":"Read a signature from the Signatures section","tags":[{"tag":"","text":"Read a signature from the Signatures section"}]},"metadata":{"created":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896},"last_updated":{"hash":"0513f93f9d7e6e1daaebe0a0dab321a8f9367602","count":4347,"time":1399481896}},"value":"1"}}}},"typesets":{},"typedefs":{}},"sdktools_voice":{"functions":{"GetListenOverride":{"name":"GetListenOverride","refLine":113,"docStart":3661,"docEnd":3865,"docs":{"brief":"Retrieves the override of the receiver's ability to listen to the sender.","tags":[{"tag":"","text":"Retrieves the override of the receiver's ability to listen to the sender."},{"tag":"param:iReceiver","text":"The listener index."},{"tag":"param:iSender","text":"The sender index."},{"tag":"return","text":"The override value."}]},"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"kind":"native","returnType":"ListenOverride","arguments":[{"type":"int","name":"iReceiver","decl":"int iReceiver","default":null},{"type":"int","name":"iSender","decl":"int iSender","default":null}]},"SetClientListening":{"name":"SetClientListening","refLine":57,"docStart":1451,"docEnd":1647,"docs":{"brief":"Set the receiver ability to listen to the sender.","tags":[{"tag":"","text":"Set the receiver ability to listen to the sender."},{"tag":"param:iReceiver","text":"The listener index."},{"tag":"param:iSender","text":"The sender index."},{"tag":"return","text":"True if successful otherwise false."}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"iReceiver","decl":"int iReceiver","default":null},{"type":"int","name":"iSender","decl":"int iSender","default":null},{"type":"bool","name":"bListen","decl":"bool bListen","default":null}]},"IsClientMuted":{"name":"IsClientMuted","refLine":122,"docStart":3931,"docEnd":4125,"docs":{"brief":"Retrieves if the muter has muted the mutee.","tags":[{"tag":"","text":"Retrieves if the muter has muted the mutee."},{"tag":"param:iMuter","text":"The muter index."},{"tag":"param:iMutee","text":"The mutee index."},{"tag":"return","text":"True if muter has muted mutee, false otherwise."}]},"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"iMuter","decl":"int iMuter","default":null},{"type":"int","name":"iMutee","decl":"int iMutee","default":null}]},"SetListenOverride":{"name":"SetListenOverride","refLine":104,"docStart":3355,"docEnd":3580,"docs":{"brief":"Override the receiver's ability to listen to the sender.","tags":[{"tag":"","text":"Override the receiver's ability to listen to the sender."},{"tag":"param:iReceiver","text":"The listener index."},{"tag":"param:iSender","text":"The sender index."},{"tag":"param:unknown","text":"override"},{"tag":"return","text":"True if successful otherwise false."}]},"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"iReceiver","decl":"int iReceiver","default":null},{"type":"int","name":"iSender","decl":"int iSender","default":null},{"type":"ListenOverride","name":"override","decl":"ListenOverride override","default":null}]},"GetClientListeningFlags":{"name":"GetClientListeningFlags","refLine":48,"docStart":1271,"docEnd":1406,"docs":{"brief":"Retrieve the client current listening flags.","tags":[{"tag":"","text":"Retrieve the client current listening flags."},{"tag":"param:client","text":"The client index"},{"tag":"return","text":"The current voice flags"}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"kind":"native","returnType":"int","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]},"SetClientListeningFlags":{"name":"SetClientListeningFlags","refLine":65,"docStart":2369,"docEnd":2487,"docs":{"brief":"Set the client listening flags.","tags":[{"tag":"","text":"Set the client listening flags."},{"tag":"param:client","text":"The client index"},{"tag":"param:flags","text":"The voice flags"}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null},{"type":"int","name":"flags","decl":"int flags","default":null}]},"OnClientSpeaking":{"name":"OnClientSpeaking","refLine":64,"docStart":2421,"docEnd":2513,"docs":{"brief":"Called when a client is speaking.","tags":[{"tag":"","text":"Called when a client is speaking."},{"tag":"param:client","text":"The client index"}]},"metadata":{"created":{"hash":"1b86c8564def3e4c6c031bf5a4a09671dba99438","count":6612,"time":1597755754},"last_updated":{"hash":"1b86c8564def3e4c6c031bf5a4a09671dba99438","count":6612,"time":1597755754}},"kind":"forward","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]},"GetClientListening":{"name":"GetClientListening","refLine":66,"docStart":1718,"docEnd":1916,"docs":{"brief":"Retrieves if the receiver can listen to the sender.","tags":[{"tag":"","text":"Retrieves if the receiver can listen to the sender."},{"tag":"param:iReceiver","text":"The listener index."},{"tag":"param:iSender","text":"The sender index."},{"tag":"return","text":"True if successful otherwise false."}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"iReceiver","decl":"int iReceiver","default":null},{"type":"int","name":"iSender","decl":"int iSender","default":null}]},"OnClientSpeakingEnd":{"name":"OnClientSpeakingEnd","refLine":71,"docStart":2561,"docEnd":2654,"docs":{"brief":"Called once a client speaking end.","tags":[{"tag":"","text":"Called once a client speaking end."},{"tag":"param:client","text":"The client index"}]},"metadata":{"created":{"hash":"1b86c8564def3e4c6c031bf5a4a09671dba99438","count":6612,"time":1597755754},"last_updated":{"hash":"1b86c8564def3e4c6c031bf5a4a09671dba99438","count":6612,"time":1597755754}},"kind":"forward","returnType":"void","arguments":[{"type":"int","name":"client","decl":"int client","default":null}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"VOICE_TEAM":{"name":"VOICE_TEAM","refLine":45,"docStart":2019,"docEnd":2084,"docs":{"brief":"Allow the client to always speak to team, even when dead.","tags":[{"tag":"","text":"Allow the client to always speak to team, even when dead."}]},"metadata":{"created":{"hash":"e4728b0413b1627d718bf370a6f8d9421bc50c92","count":1469,"time":1190581267},"last_updated":{"hash":"e4728b0413b1627d718bf370a6f8d9421bc50c92","count":1469,"time":1190581267}},"value":"8"},"_sdktools_voice_included":{"name":"_sdktools_voice_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"value":""},"VOICE_MUTED":{"name":"VOICE_MUTED","refLine":25,"docStart":853,"docEnd":904,"docs":{"brief":"Mutes the client from speaking to everyone.","tags":[{"tag":"","text":"Mutes the client from speaking to everyone."}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"value":"1"},"VOICE_NORMAL":{"name":"VOICE_NORMAL","refLine":24,"docStart":773,"docEnd":827,"docs":{"brief":"Allow the client to listen and speak normally.","tags":[{"tag":"","text":"Allow the client to listen and speak normally."}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"value":"0"},"VOICE_LISTENTEAM":{"name":"VOICE_LISTENTEAM","refLine":46,"docStart":2114,"docEnd":2185,"docs":{"brief":"Allow the client to always hear teammates, including dead ones.","tags":[{"tag":"","text":"Allow the client to always hear teammates, including dead ones."}]},"metadata":{"created":{"hash":"e4728b0413b1627d718bf370a6f8d9421bc50c92","count":1469,"time":1190581267},"last_updated":{"hash":"e4728b0413b1627d718bf370a6f8d9421bc50c92","count":1469,"time":1190581267}},"value":"16"},"VOICE_LISTENALL":{"name":"VOICE_LISTENALL","refLine":27,"docStart":1007,"docEnd":1054,"docs":{"brief":"Allow the client to listen to everyone.","tags":[{"tag":"","text":"Allow the client to listen to everyone."}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"value":"4"},"VOICE_SPEAKALL":{"name":"VOICE_SPEAKALL","refLine":26,"docStart":932,"docEnd":978,"docs":{"brief":"Allow the client to speak to everyone.","tags":[{"tag":"","text":"Allow the client to speak to everyone."}]},"metadata":{"created":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856},"last_updated":{"hash":"15018176b5c14846100550d8b983afc65bb75ccc","count":1236,"time":1185941856}},"value":"2"}},"enums":{"ListenOverride":{"name":"ListenOverride","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"entries":{"Listen_Default":{"name":"Listen_Default","refLine":54,"docStart":2263,"docEnd":2294,"docs":{"brief":"Leave it up to the game","tags":[{"tag":"","text":"Leave it up to the game"}]},"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"value":"0"},"Listen_No":{"name":"Listen_No","refLine":55,"docStart":2310,"docEnd":2328,"docs":{"brief":"Can't hear","tags":[{"tag":"","text":"Can't hear"}]},"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"value":null},"Listen_Yes":{"name":"Listen_Yes","refLine":56,"docStart":2345,"docEnd":2361,"docs":{"brief":"Can hear","tags":[{"tag":"","text":"Can hear"}]},"metadata":{"created":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568},"last_updated":{"hash":"70bb4930f63808bbcc071d314fb83fefb11e0496","count":2797,"time":1252368568}},"value":null}}}},"typesets":{},"typedefs":{}},"sdktools_entinput":{"functions":{"SetVariantBool":{"name":"SetVariantBool","refLine":58,"docStart":2317,"docEnd":2410,"docs":{"brief":"Sets a bool value in the global variant object.","tags":[{"tag":"","text":"Sets a bool value in the global variant object."},{"tag":"param:val","text":"Input value."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"bool","name":"val","decl":"bool val","default":null}]},"SetVariantString":{"name":"SetVariantString","refLine":65,"docStart":2453,"docEnd":2543,"docs":{"brief":"Sets a string in the global variant object.","tags":[{"tag":"","text":"Sets a string in the global variant object."},{"tag":"param:str","text":"Input string."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const char[]","name":"str","decl":"const char[] str","default":null}]},"SetVariantInt":{"name":"SetVariantInt","refLine":72,"docStart":2596,"docEnd":2693,"docs":{"brief":"Sets an integer value in the global variant object.","tags":[{"tag":"","text":"Sets an integer value in the global variant object."},{"tag":"param:val","text":"Input value."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"val","decl":"int val","default":null}]},"SetVariantFloat":{"name":"SetVariantFloat","refLine":79,"docStart":2734,"docEnd":2837,"docs":{"brief":"Sets a floating point value in the global variant object.","tags":[{"tag":"","text":"Sets a floating point value in the global variant object."},{"tag":"param:val","text":"Input value."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"float","name":"val","decl":"float val","default":null}]},"SetVariantPosVector3D":{"name":"SetVariantPosVector3D","refLine":93,"docStart":3032,"docEnd":3143,"docs":{"brief":"Sets a 3D position vector in the global variant object.","tags":[{"tag":"","text":"Sets a 3D position vector in the global variant object."},{"tag":"param:vec","text":"Input position vector."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null}]},"SetVariantEntity":{"name":"SetVariantEntity","refLine":108,"docStart":3347,"docEnd":3474,"docs":{"brief":"Sets an entity in the global variant object.","tags":[{"tag":"","text":"Sets an entity in the global variant object."},{"tag":"param:entity","text":"Entity index."},{"tag":"error","text":"Invalid entity index."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"int","name":"entity","decl":"int entity","default":null}]},"SetVariantColor":{"name":"SetVariantColor","refLine":100,"docStart":3203,"docEnd":3293,"docs":{"brief":"Sets a color in the global variant object.","tags":[{"tag":"","text":"Sets a color in the global variant object."},{"tag":"param:color","text":"Input color."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const int[4]","name":"color","decl":"const int color[4]","default":null}]},"SetVariantVector3D":{"name":"SetVariantVector3D","refLine":86,"docStart":2882,"docEnd":2975,"docs":{"brief":"Sets a 3D vector in the global variant object.","tags":[{"tag":"","text":"Sets a 3D vector in the global variant object."},{"tag":"param:vec","text":"Input vector."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"7451257578e0f3ae059e122b1a65bd0a4d9f4678","count":5907,"time":1463774181}},"kind":"native","returnType":"void","arguments":[{"type":"const float[3]","name":"vec","decl":"const float vec[3]","default":null}]},"AcceptEntityInput":{"name":"AcceptEntityInput","refLine":51,"docStart":1661,"docEnd":2201,"docs":{"brief":"Invokes a named input method on an entity.\n\nAfter completion (successful or not), the current global variant is re-initalized.","tags":[{"tag":"","text":"Invokes a named input method on an entity.\n\nAfter completion (successful or not), the current global variant is re-initalized."},{"tag":"param:dest","text":"Destination entity index."},{"tag":"param:input","text":"Input action."},{"tag":"param:activator","text":"Entity index which initiated the sequence of actions (-1 for a NULL entity)."},{"tag":"param:caller","text":"Entity index from which this event is sent (-1 for a NULL entity)."},{"tag":"param:outputid","text":"Unknown."},{"tag":"return","text":"True if successful otherwise false."},{"tag":"error","text":"Invalid entity index or no mod support."}]},"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379}},"kind":"native","returnType":"bool","arguments":[{"type":"int","name":"dest","decl":"int dest","default":null},{"type":"const char[]","name":"input","decl":"const char[] input","default":null},{"type":"int","name":"activator","decl":"int activator","default":"-1"},{"type":"int","name":"caller","decl":"int caller","default":"-1"},{"type":"int","name":"outputid","decl":"int outputid","default":"0"}]}},"methodmaps":{},"enumstructs":{},"constants":{},"defines":{"_sdktools_entinput_included":{"name":"_sdktools_entinput_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379},"last_updated":{"hash":"b50d7697f6d72c70c6fde2eb5f3b8a8fe8cc4913","count":1499,"time":1191009379}},"value":""}},"enums":{},"typesets":{},"typedefs":{}},"textparse":{"functions":{"SMC_CreateParser":{"name":"SMC_CreateParser","refLine":184,"docStart":7283,"docEnd":7425,"docs":{"brief":"Creates a new SMC file format parser. This is used to set parse hooks.","tags":[{"tag":"","text":"Creates a new SMC file format parser. This is used to set parse hooks."},{"tag":"return","text":"A new Handle to an SMC Parse structure."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"kind":"native","returnType":"SMCParser","arguments":[]},"SMC_SetParseStart":{"name":"SMC_SetParseStart","refLine":216,"docStart":8420,"docEnd":8613,"docs":{"brief":"Sets the SMC_ParseStart function of a parse Handle.","tags":[{"tag":"","text":"Sets the SMC_ParseStart function of a parse Handle."},{"tag":"param:smc","text":"Handle to an SMC Parse."},{"tag":"param:func","text":"SMC_ParseStart function."},{"tag":"error","text":"Invalid or corrupt Handle."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"smc","decl":"Handle smc","default":null},{"type":"SMC_ParseStart","name":"func","decl":"SMC_ParseStart func","default":null}]},"SMC_ParseFile":{"name":"SMC_ParseFile","refLine":91,"docStart":3295,"docEnd":3688,"docs":{"brief":"Parses an SMC file.","tags":[{"tag":"","text":"Parses an SMC file."},{"tag":"param:smc","text":"A Handle to an SMC Parse structure."},{"tag":"param:file","text":"A string containing the file path."},{"tag":"param:line","text":"An optional by reference cell to store the last line number read."},{"tag":"param:col","text":"An optional by reference cell to store the last column number read."},{"tag":"return","text":"An SMCParseError result."},{"tag":"error","text":"Invalid or corrupt Handle."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"kind":"native","returnType":"SMCError","arguments":[{"type":"Handle","name":"smc","decl":"Handle smc","default":null},{"type":"const char[]","name":"file","decl":"const char[] file","default":null},{"type":"int&","name":"line","decl":"int& line","default":"0"},{"type":"int&","name":"col","decl":"int& col","default":"0"}]},"SMC_GetErrorString":{"name":"SMC_GetErrorString","refLine":103,"docStart":3774,"docEnd":4178,"docs":{"brief":"Gets an error string for an SMCError code.","tags":[{"tag":"","text":"Gets an error string for an SMCError code."},{"tag":"note","text":"SMCError_Okay returns false."},{"tag":"note","text":"SMCError_Custom (which is thrown on SMCParse_HaltFail) returns false."},{"tag":"param:error","text":"The SMCParseError code."},{"tag":"param:buffer","text":"A string buffer for the error (contents undefined on failure)."},{"tag":"param:buf_max","text":"The maximum size of the buffer."},{"tag":"return","text":"True on success, false otherwise."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"kind":"native","returnType":"bool","arguments":[{"type":"SMCError","name":"error","decl":"SMCError error","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"buf_max","decl":"int buf_max","default":null}]},"SMC_SetParseEnd":{"name":"SMC_SetParseEnd","refLine":225,"docStart":8682,"docEnd":8862,"docs":{"brief":"Sets the SMC_ParseEnd of a parse handle.","tags":[{"tag":"","text":"Sets the SMC_ParseEnd of a parse handle."},{"tag":"param:smc","text":"Handle to an SMC Parse."},{"tag":"param:func","text":"SMC_ParseEnd function."},{"tag":"error","text":"Invalid or corrupt Handle."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"542bb59978731361b9b92e3272d81c6ac2ee8b3b","count":5909,"time":1463836609}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"smc","decl":"Handle smc","default":null},{"type":"SMC_ParseEnd","name":"func","decl":"SMC_ParseEnd func","default":null}]},"SMC_SetReaders":{"name":"SMC_SetReaders","refLine":238,"docStart":8961,"docEnd":9207,"docs":{"brief":"Sets the three main reader functions.","tags":[{"tag":"","text":"Sets the three main reader functions."},{"tag":"param:smc","text":"An SMC parse Handle."},{"tag":"param:ns","text":"An SMC_NewSection function pointer."},{"tag":"param:kv","text":"An SMC_KeyValue function pointer."},{"tag":"param:es","text":"An SMC_EndSection function pointer."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"smc","decl":"Handle smc","default":null},{"type":"SMC_NewSection","name":"ns","decl":"SMC_NewSection ns","default":null},{"type":"SMC_KeyValue","name":"kv","decl":"SMC_KeyValue kv","default":null},{"type":"SMC_EndSection","name":"es","decl":"SMC_EndSection es","default":null}]},"SMC_SetRawLine":{"name":"SMC_SetRawLine","refLine":246,"docStart":9307,"docEnd":9452,"docs":{"brief":"Sets a raw line reader on an SMC parser Handle.","tags":[{"tag":"","text":"Sets a raw line reader on an SMC parser Handle."},{"tag":"param:smc","text":"Handle to an SMC Parse."},{"tag":"param:func","text":"SMC_RawLine function."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"kind":"native","returnType":"void","arguments":[{"type":"Handle","name":"smc","decl":"Handle smc","default":null},{"type":"SMC_RawLine","name":"func","decl":"SMC_RawLine func","default":null}]}},"methodmaps":{"SMCParser":{"name":"SMCParser","refLine":127,"docStart":5221,"docEnd":5538,"docs":{"brief":"An SMCParser is a callback-driven parser for SourceMod configuration files.\nSMC files are similar to Valve KeyValues format, with two key differences:\n(1) SMC cannot handle single-item entries (that is, a key with no value).\n(2) SMC files can have multi-line comment blocks, whereas KeyValues cannot.","tags":[{"tag":"","text":"An SMCParser is a callback-driven parser for SourceMod configuration files.\nSMC files are similar to Valve KeyValues format, with two key differences:\n(1) SMC cannot handle single-item entries (that is, a key with no value).\n(2) SMC files can have multi-line comment blocks, whereas KeyValues cannot."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"parent":"Handle","methods":{"ParseFile":{"name":"ParseFile","refLine":138,"docStart":5647,"docEnd":5938,"docs":{"brief":"Parses an SMC file.","tags":[{"tag":"","text":"Parses an SMC file."},{"tag":"param:file","text":"A string containing the file path."},{"tag":"param:line","text":"An optional variable to store the last line number read."},{"tag":"param:col","text":"An optional variable to store the last column number read."},{"tag":"return","text":"An SMCParseError result."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"kind":"native","returnType":"SMCError","arguments":[{"type":"const char[]","name":"file","decl":"const char[] file","default":null},{"type":"int&","name":"line","decl":"int& line","default":"0"},{"type":"int&","name":"col","decl":"int& col","default":"0"}]},"GetErrorString":{"name":"GetErrorString","refLine":176,"docStart":6893,"docEnd":7194,"docs":{"brief":"Gets an error string for an SMCError code.","tags":[{"tag":"","text":"Gets an error string for an SMCError code."},{"tag":"param:error","text":"The SMCParseError code."},{"tag":"param:buffer","text":"A string buffer for the error (contents undefined on failure)."},{"tag":"param:buf_max","text":"The maximum size of the buffer."},{"tag":"return","text":"The number of characters written to buffer."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"kind":"native","returnType":"void","arguments":[{"type":"SMCError","name":"error","decl":"SMCError error","default":null},{"type":"char[]","name":"buffer","decl":"char[] buffer","default":null},{"type":"int","name":"buf_max","decl":"int buf_max","default":null}]},"SMCParser":{"name":"SMCParser","refLine":130,"docStart":5574,"docEnd":5613,"docs":{"brief":"Create a new SMC file format parser.","tags":[{"tag":"","text":"Create a new SMC file format parser."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"kind":"native","returnType":"SMCParser","arguments":[]}},"properties":{"OnStart":{"name":"OnStart","refLine":141,"docStart":6027,"docEnd":6084,"docs":{"brief":"Sets the callback for receiving SMC_ParseStart events.","tags":[{"tag":"","text":"Sets the callback for receiving SMC_ParseStart events."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"SMC_ParseStart","getter":false,"setter":true},"OnLeaveSection":{"name":"OnLeaveSection","refLine":156,"docStart":6461,"docEnd":6518,"docs":{"brief":"Sets the callback for receiving SMC_EndSection events.","tags":[{"tag":"","text":"Sets the callback for receiving SMC_EndSection events."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"SMC_EndSection","getter":false,"setter":true},"OnEnterSection":{"name":"OnEnterSection","refLine":151,"docStart":6309,"docEnd":6366,"docs":{"brief":"Sets the callback for receiving SMC_NewSection events.","tags":[{"tag":"","text":"Sets the callback for receiving SMC_NewSection events."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"SMC_NewSection","getter":false,"setter":true},"OnEnd":{"name":"OnEnd","refLine":146,"docStart":6172,"docEnd":6227,"docs":{"brief":"Sets the callback for receiving SMC_ParseEnd events.","tags":[{"tag":"","text":"Sets the callback for receiving SMC_ParseEnd events."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"SMC_ParseEnd","getter":false,"setter":true},"OnKeyValue":{"name":"OnKeyValue","refLine":161,"docStart":6613,"docEnd":6668,"docs":{"brief":"Sets the callback for receiving SMC_KeyValue events.","tags":[{"tag":"","text":"Sets the callback for receiving SMC_KeyValue events."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"SMC_KeyValue","getter":false,"setter":true},"OnRawLine":{"name":"OnRawLine","refLine":166,"docStart":6755,"docEnd":6809,"docs":{"brief":"Sets the callback for receiving SMC_RawLine events.","tags":[{"tag":"","text":"Sets the callback for receiving SMC_RawLine events."}]},"metadata":{"created":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"SMC_RawLine","getter":false,"setter":true}}}},"enumstructs":{},"constants":{},"defines":{"_textparse_included":{"name":"_textparse_included","refLine":0,"docStart":0,"docEnd":0,"docs":null,"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":""}},"enums":{"SMCResult":{"name":"SMCResult","refLine":48,"docStart":1959,"docEnd":1995,"docs":{"brief":"Parse result directive.","tags":[{"tag":"","text":"Parse result directive."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"entries":{"SMCParse_Continue":{"name":"SMCParse_Continue","refLine":50,"docStart":2038,"docEnd":2062,"docs":{"brief":"Continue parsing","tags":[{"tag":"","text":"Continue parsing"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCParse_HaltFail":{"name":"SMCParse_HaltFail","refLine":52,"docStart":2131,"docEnd":2170,"docs":{"brief":"Stop parsing and return failure","tags":[{"tag":"","text":"Stop parsing and return failure"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCParse_Halt":{"name":"SMCParse_Halt","refLine":51,"docStart":2083,"docEnd":2108,"docs":{"brief":"Stop parsing here","tags":[{"tag":"","text":"Stop parsing here"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null}}},"SMCError":{"name":"SMCError","refLine":58,"docStart":2178,"docEnd":2209,"docs":{"brief":"Parse error codes.","tags":[{"tag":"","text":"Parse error codes."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"entries":{"SMCError_InvalidSection4":{"name":"SMCError_InvalidSection4","refLine":67,"docStart":2740,"docEnd":2790,"docs":{"brief":"A section ending has no matching beginning","tags":[{"tag":"","text":"A section ending has no matching beginning"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_Okay":{"name":"SMCError_Okay","refLine":60,"docStart":2251,"docEnd":2267,"docs":{"brief":"No error","tags":[{"tag":"","text":"No error"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":"0"},"SMCError_StreamError":{"name":"SMCError_StreamError","refLine":62,"docStart":2347,"docEnd":2381,"docs":{"brief":"The stream died... somehow","tags":[{"tag":"","text":"The stream died... somehow"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_StreamOpen":{"name":"SMCError_StreamOpen","refLine":61,"docStart":2292,"docEnd":2321,"docs":{"brief":"Stream failed to open","tags":[{"tag":"","text":"Stream failed to open"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_InvalidSection2":{"name":"SMCError_InvalidSection2","refLine":65,"docStart":2567,"docEnd":2616,"docs":{"brief":"A section was declared without any header","tags":[{"tag":"","text":"A section was declared without any header"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_InvalidSection5":{"name":"SMCError_InvalidSection5","refLine":68,"docStart":2819,"docEnd":2869,"docs":{"brief":"A section beginning has no matching ending","tags":[{"tag":"","text":"A section beginning has no matching ending"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_InvalidSection1":{"name":"SMCError_InvalidSection1","refLine":64,"docStart":2471,"docEnd":2538,"docs":{"brief":"A section was declared without quotes, and had extra tokens","tags":[{"tag":"","text":"A section was declared without quotes, and had extra tokens"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_InvalidTokens":{"name":"SMCError_InvalidTokens","refLine":69,"docStart":2897,"docEnd":2959,"docs":{"brief":"There were too many unidentifiable strings on one line","tags":[{"tag":"","text":"There were too many unidentifiable strings on one line"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_TokenOverflow":{"name":"SMCError_TokenOverflow","refLine":70,"docStart":2987,"docEnd":3022,"docs":{"brief":"The token buffer overflowed","tags":[{"tag":"","text":"The token buffer overflowed"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_Custom":{"name":"SMCError_Custom","refLine":63,"docStart":2403,"docEnd":2442,"docs":{"brief":"A custom handler threw an error","tags":[{"tag":"","text":"A custom handler threw an error"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_InvalidProperty1":{"name":"SMCError_InvalidProperty1","refLine":71,"docStart":3052,"docEnd":3106,"docs":{"brief":"A property was declared outside of any section","tags":[{"tag":"","text":"A property was declared outside of any section"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null},"SMCError_InvalidSection3":{"name":"SMCError_InvalidSection3","refLine":66,"docStart":2645,"docEnd":2711,"docs":{"brief":"A section ending was declared with too many unknown tokens","tags":[{"tag":"","text":"A section ending was declared with too many unknown tokens"}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894}},"value":null}}}},"typesets":{},"typedefs":{"SMC_ParseStart":{"name":"SMC_ParseStart","refLine":77,"docStart":3131,"docEnd":3214,"docs":{"brief":"Called when parsing is started.","tags":[{"tag":"","text":"Called when parsing is started."},{"tag":"param:smc","text":"The SMC Parse Handle."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"function void(SMCParser smc)","parsedSignature":{"returnType":"void","arguments":[{"type":"SMCParser","name":"smc","decl":"SMCParser smc","default":null}]}},"SMC_NewSection":{"name":"SMC_NewSection","refLine":87,"docStart":3275,"docEnd":3632,"docs":{"brief":"Called when the parser is entering a new section or sub-section.\n\nNote: Enclosing quotes are always stripped.","tags":[{"tag":"","text":"Called when the parser is entering a new section or sub-section.\n\nNote: Enclosing quotes are always stripped."},{"tag":"param:smc","text":"The SMC Parser."},{"tag":"param:name","text":"String containing section name."},{"tag":"param:opt_quotes","text":"True if the section name was quote-enclosed in the file."},{"tag":"return","text":"An SMCResult action to take."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"function SMCResult(SMCParser smc, const char[] name, bool opt_quotes)","parsedSignature":{"returnType":"SMCResult","arguments":[{"type":"SMCParser","name":"smc","decl":"SMCParser smc","default":null},{"type":"const char[]","name":"name","decl":"const char[] name","default":null},{"type":"bool","name":"opt_quotes","decl":"bool opt_quotes","default":null}]}},"SMC_EndSection":{"name":"SMC_EndSection","refLine":105,"docStart":4329,"docEnd":4486,"docs":{"brief":"Called when the parser finds the end of the current section.","tags":[{"tag":"","text":"Called when the parser finds the end of the current section."},{"tag":"param:smc","text":"The SMCParser."},{"tag":"return","text":"An SMCResult action to take."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"function SMCResult(SMCParser smc)","parsedSignature":{"returnType":"SMCResult","arguments":[{"type":"SMCParser","name":"smc","decl":"SMCParser smc","default":null}]}},"SMC_ParseEnd":{"name":"SMC_ParseEnd","refLine":113,"docStart":4552,"docEnd":4758,"docs":{"brief":"Called when parsing is halted.","tags":[{"tag":"","text":"Called when parsing is halted."},{"tag":"param:smc","text":"The SMCParser."},{"tag":"param:halted","text":"True if abnormally halted, false otherwise."},{"tag":"param:failed","text":"True if parsing failed, false otherwise."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"function void(SMCParser smc, bool halted, bool failed)","parsedSignature":{"returnType":"void","arguments":[{"type":"SMCParser","name":"smc","decl":"SMCParser smc","default":null},{"type":"bool","name":"halted","decl":"bool halted","default":null},{"type":"bool","name":"failed","decl":"bool failed","default":null}]}},"SMC_RawLine":{"name":"SMC_RawLine","refLine":121,"docStart":4843,"docEnd":5127,"docs":{"brief":"Callback for whenever a new line of text is about to be parsed.","tags":[{"tag":"","text":"Callback for whenever a new line of text is about to be parsed."},{"tag":"param:smc","text":"The SMCParser."},{"tag":"param:line","text":"A string containing the raw line from the file."},{"tag":"param:lineno","text":"The line number it occurs on."},{"tag":"return","text":"An SMCResult action to take."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"function SMCResult(SMCParser smc, const char[] line, int lineno)","parsedSignature":{"returnType":"SMCResult","arguments":[{"type":"SMCParser","name":"smc","decl":"SMCParser smc","default":null},{"type":"const char[]","name":"line","decl":"const char[] line","default":null},{"type":"int","name":"lineno","decl":"int lineno","default":null}]}},"SMC_KeyValue":{"name":"SMC_KeyValue","refLine":99,"docStart":3734,"docEnd":4191,"docs":{"brief":"Called when the parser finds a new key/value pair.\n\nNote: Enclosing quotes are always stripped.","tags":[{"tag":"","text":"Called when the parser finds a new key/value pair.\n\nNote: Enclosing quotes are always stripped."},{"tag":"param:smc","text":"The SMCParser."},{"tag":"param:key","text":"String containing key name."},{"tag":"param:value","text":"String containing value name."},{"tag":"param:key_quotes","text":"Whether or not the key was enclosed in quotes."},{"tag":"param:value_quotes","text":"Whether or not the value was enclosed in quotes."},{"tag":"return","text":"An SMCResult action to take."}]},"metadata":{"created":{"hash":"ad376ff0b8d46637b924ed3b3f09e158afd1c4ea","count":4729,"time":1407127894},"last_updated":{"hash":"8479c2f067188c5cade70eee1563e722d1ce73b6","count":5001,"time":1415565187}},"type":"function SMCResult(SMCParser smc, const char[] key, const char[] value, bool key_quotes, bool value_quotes)","parsedSignature":{"returnType":"SMCResult","arguments":[{"type":"SMCParser","name":"smc","decl":"SMCParser smc","default":null},{"type":"const char[]","name":"key","decl":"const char[] key","default":null},{"type":"const char[]","name":"value","decl":"const char[] value","default":null},{"type":"bool","name":"key_quotes","decl":"bool key_quotes","default":null},{"type":"bool","name":"value_quotes","decl":"bool value_quotes","default":null}]}}}},"adt_stack":{"functions":{"PopStack":{"name":"PopStack","refLine":222,"docStart":8211,"docEnd":8402,"docs":{"brief":"Pops a value off a stack, ignoring it completely.","tags":[{"tag":"","text":"Pops a value off a stack, ignoring it completely."},{"tag":"param:stack","text":"Stack Handle."},{"tag":"return","text":"True if something was popped, false otherwise."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"046ce18e8b0c3dce7d972ede102a89daa53b8980","count":2000,"time":1208066787},"last_updated":{"hash":"4cb29eb0541405db43c202fcf769dcc1ebf2011c","count":5035,"time":1416084377}},"kind":"stock","returnType":"bool","arguments":[{"type":"Handle","name":"stack","decl":"Handle stack","default":null}]},"CreateStack":{"name":"CreateStack","refLine":132,"docStart":4762,"docEnd":5464,"docs":{"brief":"Creates a stack structure. A stack is a LIFO (last in, first out)\nvector (array) of items. It has O(1) insertion and O(1) removal.\n\nStacks have two operations: Push (adding an item) and Pop (removes\nitems in reverse-push order).\n\nThe contents of the stack are uniform; i.e. storing a string and then\nretrieving it as an integer is NOT the same as StringToInt()!\n\nThe \"blocksize\" determines how many cells each slot has; it cannot\nbe changed after creation.","tags":[{"tag":"","text":"Creates a stack structure. A stack is a LIFO (last in, first out)\nvector (array) of items. It has O(1) insertion and O(1) removal.\n\nStacks have two operations: Push (adding an item) and Pop (removes\nitems in reverse-push order).\n\nThe contents of the stack are uniform; i.e. storing a string and then\nretrieving it as an integer is NOT the same as StringToInt()!\n\nThe \"blocksize\" determines how many cells each slot has; it cannot\nbe changed after creation."},{"tag":"param:blocksize","text":"The number of cells each entry in the stack can\nhold. For example, 32 cells is equivalent to:\nnew Array[X][32]"},{"tag":"return","text":"New stack Handle."}]},"metadata":{"created":{"hash":"046ce18e8b0c3dce7d972ede102a89daa53b8980","count":2000,"time":1208066787},"last_updated":{"hash":"4cb29eb0541405db43c202fcf769dcc1ebf2011c","count":5035,"time":1416084377}},"kind":"native","returnType":"ArrayStack","arguments":[{"type":"int","name":"blocksize","decl":"int blocksize","default":"1"}]},"PopStackString":{"name":"PopStackString","refLine":119,"docStart":4096,"docEnd":4363,"docs":{"brief":"Pops a string value from a stack.","tags":[{"tag":"","text":"Pops a string value from a stack."},{"tag":"param:stack","text":"Stack Handle."},{"tag":"param:buffer","text":"Buffer to store string."},{"tag":"param:maxlength","text":"Maximum size of the buffer."},{"tag":"return","text":"True on success, false if the stack is empty."},{"tag":"error","text":"Invalid Handle."}]},"metadata":{"created":{"hash":"046ce18e8b0c3dce7d972ede102a89daa53b8980","count":2000,"time":1208066787},"last_updated":{"hash":"046ce18e8b0c3dce7d972ede102a89daa53b8980","count":2000,"time":1208066787}},"kind":"native","returnType":"bool","arguments":[{"type":"Handle","name":"stack","decl":"Handle stack",& |