From 9d313619a50553953807622429ff7f72316f8a10 Mon Sep 17 00:00:00 2001 From: Mark Ludwig Date: Tue, 14 Jun 2016 10:10:04 -0700 Subject: [PATCH 1/5] Use Nuget for FastColoredTextBox. --- .../GTA V Script Decompiler.csproj | 6 +- GTA V Script Decompiler/packages.config | 4 + packages/FCTB.2.16.11.0/FCTB.2.16.11.0.nupkg | Bin 0 -> 143186 bytes .../FCTB.2.16.11.0/lib/FastColoredTextBox.xml | 3188 +++++++++++++++++ 4 files changed, 3196 insertions(+), 2 deletions(-) create mode 100644 GTA V Script Decompiler/packages.config create mode 100644 packages/FCTB.2.16.11.0/FCTB.2.16.11.0.nupkg create mode 100644 packages/FCTB.2.16.11.0/lib/FastColoredTextBox.xml diff --git a/GTA V Script Decompiler/GTA V Script Decompiler.csproj b/GTA V Script Decompiler/GTA V Script Decompiler.csproj index 0c15660..b2fadf3 100644 --- a/GTA V Script Decompiler/GTA V Script Decompiler.csproj +++ b/GTA V Script Decompiler/GTA V Script Decompiler.csproj @@ -78,8 +78,9 @@ Off - - ..\FastColoredTextBox.dll + + ..\packages\FCTB.2.16.11.0\lib\FastColoredTextBox.dll + True @@ -132,6 +133,7 @@ True + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/GTA V Script Decompiler/packages.config b/GTA V Script Decompiler/packages.config new file mode 100644 index 0000000..5311823 --- /dev/null +++ b/GTA V Script Decompiler/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/packages/FCTB.2.16.11.0/FCTB.2.16.11.0.nupkg b/packages/FCTB.2.16.11.0/FCTB.2.16.11.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..00c68d22c0e5be8c1bf68d0179f8f9672a5bf699 GIT binary patch literal 143186 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�b*+II?8gt(&V+3!Mn_MV{e*dl8_4Qly>#@#uk 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 literal 0 HcmV?d00001 diff --git a/packages/FCTB.2.16.11.0/lib/FastColoredTextBox.xml b/packages/FCTB.2.16.11.0/lib/FastColoredTextBox.xml new file mode 100644 index 0000000..85ff5c8 --- /dev/null +++ b/packages/FCTB.2.16.11.0/lib/FastColoredTextBox.xml @@ -0,0 +1,3188 @@ + + + + FastColoredTextBox + + + +

+ Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Highlights syntax for given language + + + + + Highlights syntax for given XML description file + + + + + Highlights C# code + + + + + + Highlights VB code + + + + + + Highlights HTML code + + + + + + Highlights XML code + + + + + + Highlights SQL code + + + + + + Highlights PHP code + + + + + + Highlights JavaScript code + + + + + + Highlights Lua code + + + + + + String style + + + + + Comment style + + + + + Number style + + + + + C# attribute style + + + + + Class name style + + + + + Keyword style + + + + + Style of tags in comments of C# + + + + + HTML attribute value style + + + + + HTML tag brackets style + + + + + HTML tag name style + + + + + HTML Entity style + + + + + XML attribute style + + + + + XML attribute value style + + + + + XML tag brackets style + + + + + XML tag name style + + + + + XML Entity style + + + + + XML CData style + + + + + Variable style + + + + + Specific PHP keyword style + + + + + Specific PHP keyword style + + + + + SQL Statements style + + + + + SQL Functions style + + + + + SQL Types style + + + + + Language + + + + + Item of autocomplete menu + + + + + Returns text for inserting into Textbox + + + + + Compares fragment text with this item + + + + + Returns text for display into popup menu + + + + + This method is called after item inserted into text + + + + + Title for tooltip. + + Return null for disable tooltip for this item + + + + Tooltip text. + + For display tooltip text, ToolTipTitle must be not null + + + + Menu text. This text is displayed in the drop-down menu. + + + + + Fore color of text of item + + + + + Back color of item + + + + + Item do not appears + + + + + Item appears + + + + + Item appears and will selected + + + + + Autocomplete item for code snippets + + Snippet can contain special char ^ for caret position. + + + + Compares fragment text with this item + + + + + This autocomplete item appears after dot + + + + + This Item does not check correspondence to current text fragment. + SuggestItem is intended for dynamic menus. + + + + + Style of chars + + This is base class for all text and design renderers + + + + Constructor + + + + + Renders given range of text + + Graphics object + Position of the range in absolute control coordinates + Rendering range of text + + + + Occurs when user click on StyleVisualMarker joined to this style + + + + + Shows VisualMarker + Call this method in Draw method, when you need to show VisualMarker for your style + + + + + Returns CSS for export to HTML + + + + + + Returns RTF descriptor for export to RTF + + + + + + This style is exported to outer formats (HTML for example) + + + + + Occurs when user click on StyleVisualMarker joined to this style + + + + + Style for chars rendering + This renderer can draws chars, with defined fore and back colors + + + + + Renderer for folded block + + + + + Renderer for selected area + + + + + Marker style + Draws background color for text + + + + + Draws small rectangle for popup menu + + + + + This style draws a wavy line below a given text range. + + Thanks for Yallie + + + + This style is used to mark range of text as ReadOnly block + + You can inherite this style to add visual effects of readonly text + + + + Popup menu for autocomplete + + + + + Shows popup menu immediately + + If True - MinFragmentLength will be ignored + + + + Regex pattern for serach fragment around caret + + + + + Minimum fragment length for popup + + + + + User selects item + + + + + It fires after item inserting + + + + + Occurs when popup menu is opening + + + + + Allow TAB for select menu item + + + + + Interval of menu appear (ms) + + + + + Back color of selected item + + + + + Border color of hovered item + + + + + Minimal size of menu + + + + + Image list of menu + + + + + Tooltip duration (ms) + + + + + Tooltip + + + + + This class contains the source text (chars and styles). + It stores a text lines, the manager of commands, undo/redo stack, styles. + + + + + This class contains the source text (chars and styles). + It stores a text lines, the manager of commands, undo/redo stack, styles. + + + + + Styles + + + + + Text lines + + + + + Occurs when line was inserted/added + + + + + Occurs when line was removed + + + + + Occurs when text was changed + + + + + Occurs when recalc is needed + + + + + Occurs when recalc wordwrap is needed + + + + + Occurs before text changing + + + + + Occurs after CurrentTB was changed + + + + + Current focused FastColoredTextBox + + + + + Default text style + This style is using when no one other TextStyle is not defined in Char.style + + + + + Lines count + + + + + Occurs when need to display line in the textbox + + + + + Occurs when need to save line in the file + + + + + End Of Line characters used for saving + + + + + This text will be displayed in textbox + + + + + This property contains only changed text. + If text of line is not changed, this property contains null. + + + + + This text will be saved in the file + + + + + This class records, stores and executes the macros. + + + + + Executes recorded macro + + + + + + Adds the char to current macro + + + + + Adds keyboard key to current macro + + + + + Clears last recorded macro + + + + + Allows to user to record macros + + + + + Returns current recording state. Set to True/False to start/stop recording programmatically. + + + + + FCTB + + + + + Returns True if last macro is empty + + + + + Macros as string. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + These classes are required for correct data binding to Text property of FastColoredTextbox + + + + + Diapason of text chars + + + + + Constructor + + + + + Constructor + + + + + Constructor + + + + + Constructor. Creates range of the line + + + + + Returns intersection with other range, + empty range returned otherwise + + + + + + + Returns union with other range. + + + + + + + Select all chars of control + + + + + Returns required char's number before start of the Range + + + + + Returns required char's number after start of the Range + + + + + Clone range + + + + + + Move range right + + This method jump over folded blocks + + + + Move range left + + This method can to go inside folded blocks + + + + Move range left + + This method jump over folded blocks + + + + Move range left + + This method can to go inside folded blocks + + + + Set style for range + + + + + Set style for given regex pattern + + + + + Set style for given regex + + + + + Set style for given regex pattern + + + + + Set style for given regex pattern + + + + + Set style for given regex pattern + + + + + Appends style to chars of range + + + + + Sets folding markers + + Pattern for start folding line + Pattern for finish folding line + + + + Sets folding markers + + Pattern for start folding line + Pattern for finish folding line + + + + Sets folding markers + + Pattern for start and end folding line + + + + Finds ranges for given regex pattern + + Regex pattern + Enumeration of ranges + + + + Finds ranges for given regex pattern + + Regex pattern + Enumeration of ranges + + + + Finds ranges for given regex pattern. + Search is separately in each line. + This method requires less memory than GetRanges(). + + Regex pattern + Enumeration of ranges + + + + Finds ranges for given regex. + Search is separately in each line. + This method requires less memory than GetRanges(). + + Regex + Enumeration of ranges + + + + Finds ranges for given regex pattern. + Search is separately in each line (order of lines is reversed). + This method requires less memory than GetRanges(). + + Regex pattern + Enumeration of ranges + + + + Finds ranges for given regex + + Enumeration of ranges + + + + Clear styles of range + + + + + Clear styles of range + + + + + Clear folding markers of all lines of range + + + + + Starts selection position updating + + + + + Ends selection position updating + + + + + Exchanges Start and End if End appears before Start + + + + + Exchanges Start and End + + + + + Expands range from first char of Start line to last char of End line + + + + + Get fragment of text around Start place. Returns maximal matched to pattern fragment. + + Allowed chars pattern for fragment + Range of found fragment + + + + Get fragment of text around Start place. Returns maximal matched to given Style. + + Allowed style for fragment + Range of found fragment + + + + Get fragment of text around Start place. Returns maximal mathed to pattern fragment. + + Allowed chars pattern for fragment + Range of found fragment + + + + Is char before range readonly + + + + + + Is char after range readonly + + + + + + Return true if no selected text + + + + + Column selection mode + + + + + Start line and char position + + + + + Finish line and char position + + + + + Text of range + + This property has not 'set' accessor because undo/redo stack works only with + FastColoredTextBox.Selection range. So, if you want to set text, you need to use FastColoredTextBox.Selection + and FastColoredTextBox.InsertText() mehtod. + + + + + Returns first char after Start place + + + + + Returns first char before Start place + + + + + Return minimum of end.X and start.X + + + + + Return maximum of end.X and start.X + + + + + Chars of range (exclude \n) + + + + + Range is readonly? + This property return True if any char of the range contains ReadOnlyStyle. + Set this property to True/False to mark chars of the range as Readonly/Writable. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Returns edited hotkey map + + + + + + Fast colored textbox + + + + + Constructor + + + + + Removes all hints + + + + + Add and shows the hint + + Linked range + Inner control + Scrolls textbox to the hint + Inlining. If True then hint will moves apart text + Docking. If True then hint will fill whole line + + + + Add and shows the hint + + Linked range + Inner control + + + + Add and shows simple text hint + + Linked range + Text of simple hint + Scrolls textbox to the hint + Inlining. If True then hint will moves apart text + Docking. If True then hint will fill whole line + + + + Add and shows simple text hint + + Linked range + Text of simple hint + + + + Occurs when user click on the hint + + + + + + Occurs when VisibleRange is changed + + + + + Invalidates the entire surface of the control and causes the control to be redrawn. + This method is thread safe and does not require Invoke. + + + + + Returns list of styles of given place + + + + + Call this method if the recalc of the position of lines is needed. + + + + + Call this method if the recalc of the position of lines is needed. + + + + + Call this method if the recalc of the position of lines is needed. + + + + + Navigates forward (by Line.LastVisit property) + + + + + Navigates backward (by Line.LastVisit property) + + + + + Navigates to defined line, without Line.LastVisit reseting + + + + + Add new style + + Layer index of this style + + + + Shows find dialog + + + + + Shows find dialog + + + + + Shows replace dialog + + + + + Shows replace dialog + + + + + Gets length of given line + + Line index + Length of line + + + + Get range of line + + Line index + + + + Copy selected text into Clipboard + + + + + Cut selected text into Clipboard + + + + + Paste text from clipboard into selected position + + + + + Select all chars of text + + + + + Move caret to end of text + + + + + Move caret to first position + + + + + Clear text, styles, history, caches + + + + + Clear buffer of styles + + + + + Clear style of all text + + + + + Clears undo and redo stacks + + + + + Insert text into current selected position + + + + + Insert text into current selected position + + + + + + Insert text into current selection position (with predefined style) + + + + + + Insert text into current selection position (with predefined style) + + + + + Append string to end of the Text + + + + + Append string to end of the Text + + + + + Returns index of the style in Styles + -1 otherwise + + + Index of the style in Styles + + + + Returns StyleIndex mask of given styles + + + StyleIndex mask of given styles + + + + Deletes selected chars + + + + + Deletes current line(s) + + + + + Calculates wordwrap cutoffs + + + + + Scroll control for display defined rectangle + + + + + + Updates scrollbar position after Value changed + + + + + Scroll control for display caret + + + + + Scroll control left + + + + + Scroll control for display selection area + + + + + Scroll control for display given range + + + + + Scroll control for display given range + + + + + Process control keys + + + + + Scrolls to nearest bookmark or to first bookmark + + Current bookmark line index + + + + Scrolls to nearest previous bookmark or to last bookmark + + Current bookmark line index + + + + Bookmarks line + + + + + Unbookmarks current line + + + + + Moves selected lines down + + + + + Moves selected lines up + + + + + Convert selected text to upper case + + + + + Convert selected text to lower case + + + + + Convert selected text to title case + + + + + Insert/remove comment prefix into selected lines + + + + + Insert/remove comment prefix into selected lines + + + + + Process "real" keys (no control) + + + + + Do AutoIndentChars + + + + + Finds given char after current caret position, moves the caret to found pos. + + + + + + Inserts autoindent's spaces in the line + + + + + Returns needed start space count for the line + + + + + Undo last operation + + + + + Redo + + + + + Draws text to given Graphics + + + Start place of drawing text + Size of drawing + + + + Draw control + + + + + Gets the value for the system control panel mouse wheel scroll settings. + The value returns the number of lines that shall be scolled if the user turns the mouse wheet one step. + + + This methods gets the "WheelScrollLines" value our from the registry key "HKEY_CURRENT_USER\Control Panel\Desktop". + If the value of this option is 0, the screen will not scroll when the mouse wheel is turned. + If the value of this option is -1 or is greater than the number of lines visible in the window, + the screen will scroll up or down by one page. + + + Number of lines to scrol l when the mouse wheel is turned + + + + + Gets nearest line and char position from coordinates + + Point + Line and char position + + + + Gets nearest absolute text position for given point + + Point + Position + + + + Fires TextChanging event + + + + + Fires TextChanged event + + + + + Fires TextChanged event + + + + + Fires TextChanged event + + + + + Call this method before multiple text changing + + + + + Call this method after multiple text changing + + + + + Fires TextChanged event + + + + + Clears folding state for range of text + + + + + Fires SelectionChanged event + + + + + Gets absolute text position from line and char position + + Line and char position + Point of char + + + + Gets line and char position from absolute text position + + + + + Gets absolute char position from char position + + + + + Gets point for given line and char position + + Line and char position + Coordiantes + + + + Get range of text + + Absolute start position + Absolute finish position + Range + + + + Get range of text + + Line and char position + Line and char position + Range + + + + Finds ranges for given regex pattern + + Regex pattern + Enumeration of ranges + + + + Finds ranges for given regex pattern + + Regex pattern + Enumeration of ranges + + + + Get text of given line + + Line index + Text + + + + Exapnds folded block + + Start line + + + + Collapse folding blocks using FoldedBlocks dictionary. + + + + + Expand collapsed block + + + + + Expand collapsed block + + Any line inside collapsed block + + + + Collapses all folding blocks + + + + + Exapnds all folded blocks + + + + + + Collapses folding block + + Start folding line + + + + Start foilding marker for the line + + + + + End foilding marker for the line + + + + + Collapse text block + + + + + Insert TAB into front of seletcted lines. + + + + + Remove TAB from front of seletcted lines. + + + + + Remove TAB in front of the caret ot the selected line. + + + + + Insert autoindents into selected lines + + + + + Insert prefix into front of seletcted lines + + + + + Remove prefix from front of selected lines + This method ignores forward spaces of the line + + + + + Begins AutoUndo block. + All changes of text between BeginAutoUndo() and EndAutoUndo() will be canceled in one operation Undo. + + + + + Ends AutoUndo block. + All changes of text between BeginAutoUndo() and EndAutoUndo() will be canceled in one operation Undo. + + + + + Highlights brackets around caret + + + + + Returns range between brackets (or null if not found) + + + + + Selectes next fragment for given regex. + + + + + Prints range of text + + + + + Prints all text + + + + + Prints all text, without any dialog windows + + + + + Open text file + + + + + Open text file (with automatic encoding detector) + + + + + Open file binding mode + + + + + + + Close file binding mode + + + + + Save text to the file + + + + + + + Set VisibleState of line + + + + + Returns VisibleState of the line + + + + + Shows Goto dialog form + + + + + Occurs when undo/redo stack is changed + + + + + Search lines by regex pattern + + + + + Removes given lines + + + + + Activates the scrolling mode (middle click button). + + MouseEventArgs + + + + Deactivates the scrolling mode (middle click button). + + + + + Restore scrolls + + + + + AutoComplete brackets + + + + + Colors of some service visual markers + + + + + Contains UniqueId of start lines of folded blocks + + This dictionary remembers folding state of blocks. + It is needed to restore child folding after user collapsed/expanded top-level folding block. + + + + Strategy of search of brackets to highlighting + + + + + Automatically shifts secondary wordwrap lines on the shift amount of the first line + + + + + Indent of secondary wordwrap lines (in chars) + + + + + MacrosManager records, stores and executes the macroses + + + + + Allows drag and drop + + + + + Collection of Hints. + This is temporary buffer for currently displayed hints. + + You can asynchronously add, remove and clear hints. Appropriate hints will be shown or hidden from the screen. + + + + Delay (ms) of ToolTip + + + + + ToolTip component + + + + + Color of bookmarks + + + + + Bookmarks + + + + + Enables virtual spaces + + + + + Strategy of search of end of folding block + + + + + Indicates if tab characters are accepted as input + + + + + Indicates if return characters are accepted as input + + + + + Shows or hides the caret + + + + + Enables caret blinking + + + + + Color of border of text area + + + + + Type of border of text area + + + + + Background color for current line + + + + + Background color for highlighting of changed lines + + + + + Fore color (default style color) + + + + + Height of char in pixels (includes LineInterval) + + + + + Interval between lines (in pixels) + + + + + Width of char in pixels + + + + + Spaces count for tab + + + + + Text was changed + + + + + Text version + + This counter is incremented each time changes the text + + + + Read only + + + + + Shows line numbers. + + + + + Shows vertical lines between folding start line and folding end line. + + + + + Rectangle where located text + + + + + Color of line numbers. + + + + + Start value of first line number. + + + + + Background color of indent area + + + + + Background color of padding area + + + + + Color of disabled component + + + + + Color of caret + + + + + Wide caret + + + + + Color of service lines (folding lines, borders of blocks etc.) + + + + + Padings of text area + + + + + --Do not use this property-- + + + + + Color of folding area indicator + + + + + Enables folding indicator (left vertical line between folding bounds) + + + + + Left distance to text beginning + + + + + Left padding in pixels + + + + + This property draws vertical line after defined char position. + Set to 0 for disable drawing of vertical line. + + + + + Styles + + + + + Hotkeys. Do not use this property in your code, use HotkeysMapping property. + + + + + Hotkeys mapping + + + + + Default text style + This style is using when no one other TextStyle is not defined in Char.style + + + + + Style for rendering Selection area + + + + + Style for folded block rendering + + + + + Style for brackets highlighting + + + + + Style for alternative brackets highlighting + + + + + Opening bracket for brackets highlighting. + Set to '\x0' for disable brackets highlighting. + + + + + Closing bracket for brackets highlighting. + Set to '\x0' for disable brackets highlighting. + + + + + Alternative opening bracket for brackets highlighting. + Set to '\x0' for disable brackets highlighting. + + + + + Alternative closing bracket for brackets highlighting. + Set to '\x0' for disable brackets highlighting. + + + + + Comment line prefix. + + + + + This property specifies which part of the text will be highlighted as you type (by built-in highlighter). + + When a user enters text, a component refreshes highlighting (because the text was changed). + This property specifies exactly which section of the text will be re-highlighted. + This can be useful to highlight multi-line comments, for example. + + + + Is keyboard in replace mode (wide caret) ? + + + + + Allows text rendering several styles same time. + + + + + Allows to record macros. + + + + + Allows AutoIndent. Inserts spaces before new line. + + + + + Does autoindenting in existing lines. It works only if AutoIndent is True. + + + + + Minimal delay(ms) for delayed events (except TextChangedDelayed). + + + + + Minimal delay(ms) for TextChangedDelayed event. + + + + + Language for highlighting by built-in highlighter. + + + + + Syntax Highlighter + + + + + XML file with description of syntax highlighting. + This property works only with Language == Language.Custom. + + + + + Position of left highlighted bracket. + + + + + Position of right highlighted bracket. + + + + + Position of left highlighted alternative bracket. + + + + + Position of right highlighted alternative bracket. + + + + + Start line index of current highlighted folding area. Return -1 if start of area is not found. + + + + + End line index of current highlighted folding area. Return -1 if end of area is not found. + + + + + TextSource + + + + + The source of the text. + Allows to get text from other FastColoredTextBox. + + + + + Returns current visible range of text + + + + + Current selection range + + + + + Background color. + It is used if BackBrush is null. + + + + + Background brush. + If Null then BackColor is used. + + + + + Multiline + + + + + WordWrap. + + + + + WordWrap mode. + + + + + If true then line breaks included into the selection will be selected too. + Then line breaks will be shown as selected blank character. + + + + + Do not change this property + + + + + Count of lines + + + + + Gets or sets char and styleId for given place + This property does not fire OnTextChanged event + + + + + Gets Line + + + + + Text of control + + + + + Text lines + + + + + Gets colored text as HTML + + For more flexibility you can use ExportToHTML class also + + + + Gets colored text as RTF + + For more flexibility you can use ExportToRTF class also + + + + Text of current selection + + + + + Start position of selection + + + + + Length of selected text + + + + + Font + + Use only monospaced font + + + + Font + + Use only monospaced font + + + + Indicates that IME is allowed (for CJK language entering) + + + + + Is undo enabled? + + + + + Is redo enabled? + + + + + Range of all text + + + + + Color of selected area + + + + + Reserved space for line number characters. + If smaller than needed (e. g. line count >= 10 and this value set to 1) this value will have no impact. + If you want to reserve space, e. g. for line numbers >= 10 or >= 100 than you can set this value to 2 or 3 or higher. + + + + + Occurs when mouse is moving over text and tooltip is needed + + + + + HintClick event. + It occurs if user click on the hint. + + + + + TextChanged event. + It occurs after insert, delete, clear, undo and redo operations. + + + + + Fake event for correct data binding + + + + + Occurs when user paste text from clipboard + + + + + TextChanging event. + It occurs before insert, delete, clear, undo and redo operations. + + + + + SelectionChanged event. + It occurs after changing of selection. + + + + + VisibleRangeChanged event. + It occurs after changing of visible range. + + + + + TextChangedDelayed event. + It occurs after insert, delete, clear, undo and redo operations. + This event occurs with a delay relative to TextChanged, and fires only once. + + + + + SelectionChangedDelayed event. + It occurs after changing of selection. + This event occurs with a delay relative to SelectionChanged, and fires only once. + + + + + VisibleRangeChangedDelayed event. + It occurs after changing of visible range. + This event occurs with a delay relative to VisibleRangeChanged, and fires only once. + + + + + It occurs when user click on VisualMarker. + + + + + It occurs when visible char is enetering (alphabetic, digit, punctuation, DEL, BACKSPACE) + + Set Handle to True for cancel key + + + + It occurs when visible char is enetered (alphabetic, digit, punctuation, DEL, BACKSPACE) + + + + + It occurs when calculates AutoIndent for new line + + + + + It occurs when line background is painting + + + + + Occurs when line was inserted/added + + + + + Occurs when line was removed + + + + + Occurs when current highlighted folding area is changed. + Current folding area see in StartFoldingLine and EndFoldingLine. + + + + + + Occurs when undo/redo stack is changed + + + + + + Occurs when component was zoomed + + + + + Occurs when user pressed key, that specified as CustomAction + + + + + Occurs when scroolbars are updated + + + + + Occurs when custom wordwrap is needed + + + + + Enables AutoIndentChars mode + + + + + Regex patterns for AutoIndentChars (one regex per line) + + + + + Zooming (in percentages) + + + + + Inserted line index + + + + + Count of inserted lines + + + + + Removed line index + + + + + Count of removed lines + + + + + UniqueIds of removed lines + + + + + TextChanged event argument + + + + + Constructor + + + + + This range contains changed area of text + + + + + Set to true if you want to cancel text inserting + + + + + Word wrapping by control width + + + + + Word wrapping by preferred line width (PreferredLineWidth) + + + + + Char wrapping by control width + + + + + Char wrapping by preferred line width (PreferredLineWidth) + + + + + Custom wrap (by event WordWrapNeeded) + + + + + Title of page. If you want to print Title on the page, insert code &w in Footer or Header. + + + + + Footer of page. + Here you can use special codes: &w (Window title), &D, &d (Date), &t(), &4 (Time), &p (Current page number), &P (Total number of pages), && (A single ampersand), &b (Right justify text, Center text. If &b occurs once, then anything after the &b is right justified. If &b occurs twice, then anything between the two &b is centered, and anything after the second &b is right justified). + More detailed see here + + + + + Header of page + Here you can use special codes: &w (Window title), &D, &d (Date), &t(), &4 (Time), &p (Current page number), &P (Total number of pages), && (A single ampersand), &b (Right justify text, Center text. If &b occurs once, then anything after the &b is right justified. If &b occurs twice, then anything between the two &b is centered, and anything after the second &b is right justified). + More detailed see here + + + + + Prints line numbers + + + + + Additional spaces count for this line, relative to previous line + + + + + Additional spaces count for next line, relative to previous line + + + + + Absolute indentation of current line. You can change this property if you want to set absolute indentation. + + + + + Type of highlighting + + + + + Highlight only changed range of text. Highest performance. + + + + + Highlight visible range of text. Middle performance. + + + + + Highlight all (visible and invisible) text. Lowest performance. + + + + + Strategy of search of end of folding block + + + + + Strategy of search of brackets to highlighting + + + + + ToolTipNeeded event args + + + + + HintClick event args + + + + + CustomAction event args + + + + + Style index mask (16 styles) + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Shows document map of FCTB + + + + + Scale + + + + + Scrollbar visibility + + + + + Base class for bookmark collection + + + + + Collection of bookmarks + + + + + Removes bookmark by line index + + + + + Returns Bookmark by index. + + + + + Bookmark of FastColoredTextbox + + + + + Scroll textbox to the bookmark + + + + + Name of bookmark + + + + + Line index + + + + + Color of bookmark sign + + + + + Line index and char index + + + + + Line of text + + + + + Clears style of chars, delete folding markers + + + + + Clears folding markers + + + + + Text of line was changed + + + + + Time of last visit of caret in this line + + This property can be used for forward/backward navigating + + + + Background brush. + + + + + Unique ID + + + + + Count of needed start spaces for AutoIndent + + + + + Text of the line + + + + + Count of start spaces + + + + + Chars count + + + + + Visible state + + + + + Gets index of wordwrap string for given char position + + + + + Positions for wordwrap cutoffs + + + + + Count of wordwrap string count for this line + + + + + Limited stack + + + + + Constructor + + Maximum length of stack + + + + Pop item + + + + + Peek item + + + + + Push item + + + + + Clear stack + + + + + Max stack length + + + + + Current length of stack + + + + + Char and style + + + + + Unicode character + + + + + Style bit mask + + Bit 1 in position n means that this char will rendering by FastColoredTextBox.Styles[n] + + + + Insert single char + + This operation includes also insertion of new line and removing char by backspace + + + + Constructor + + Underlaying textbox + Inserting char + + + + Undo operation + + + + + Execute operation + + + + + Merge lines i and i+1 + + + + + Insert text + + + + + Constructor + + Underlaying textbox + Text for inserting + + + + Undo operation + + + + + Execute operation + + + + + Insert text into given ranges + + + + + Constructor + + Underlaying textbox + List of ranges for replace + Text for inserting + + + + Undo operation + + + + + Execute operation + + + + + Clear selected text + + + + + Construstor + + Underlaying textbox + + + + Undo operation + + + + + Execute operation + + + + + Replaces text + + + + + Constructor + + Underlaying textsource + List of ranges for replace + + + + Undo operation + + + + + Execute operation + + + + + Removes lines + + + + + Constructor + + Underlaying textbox + List of ranges for replace + Text for inserting + + + + Undo operation + + + + + Execute operation + + + + + Wrapper for multirange commands + + + + + Remembers current selection and restore it after Undo + + + + + Exports colored text as RTF + + At this time only TextStyle renderer is supported. Other styles is not exported. + + + + Includes line numbers + + + + + Use original font + + + + + Dictionary of shortcuts for FCTB + + + + + Actions for shortcuts + + + + + Collection of Hints. + This is temporary buffer for currently displayed hints. + + + + + Clears all displayed hints + + + + + Add and shows the hint + + + + + + Is collection contains the hint? + + + + + Count of hints + + + + + Hint of FastColoredTextbox + + + + + Scroll textbox to the hint + + + + + Creates Hint + + Linked range + Text for simple hint + Inlining. If True then hint will moves apart text + Docking. If True then hint will fill whole line + + + + Creates Hint + + Linked range + Text for simple hint + + + + Creates Hint + + Linked range + Inner control + Inlining. If True then hint will moves apart text + Docking. If True then hint will fill whole line + + + + Creates Hint + + Linked range + Inner control + + + + Text of simple hint + + + + + Linked range + + + + + Backcolor + + + + + Second backcolor + + + + + Border color + + + + + Fore color + + + + + Text alignment + + + + + Font + + + + + Occurs when user click on simple hint + + + + + Inner control + + + + + Docking (allows None and Fill only) + + + + + Width of hint (if Dock is None) + + + + + Height of hint + + + + + Host panel + + + + + Tag + + + + + Cursor + + + + + Inlining. If True then hint will moves apart text. + + + + + Exports colored text as HTML + + At this time only TextStyle renderer is supported. Other styles is not exported. + + + + Use nbsp; instead space + + + + + Use nbsp; instead space in beginning of line + + + + + Use original font + + + + + Use style tag instead style attribute + + + + + Use 'br' tag instead of '\n' + + + + + Includes line numbers + + + + From d7489e9c035701108dd8db028a93fe2e49064b23 Mon Sep 17 00:00:00 2001 From: Mark Ludwig Date: Tue, 14 Jun 2016 15:48:33 -0700 Subject: [PATCH 2/5] Update utilities --- GTA V Script Decompiler/Function.cs | 16 +++---- GTA V Script Decompiler/MainForm.cs | 4 +- GTA V Script Decompiler/Stack.cs | 16 +++---- GTA V Script Decompiler/Utils.cs | 73 +++++++++++++++++++++-------- 4 files changed, 72 insertions(+), 37 deletions(-) diff --git a/GTA V Script Decompiler/Function.cs b/GTA V Script Decompiler/Function.cs index a85ac6a..86f2a6f 100644 --- a/GTA V Script Decompiler/Function.cs +++ b/GTA V Script Decompiler/Function.cs @@ -1093,7 +1093,7 @@ public void decodeinstruction() case Instruction.PushString: tempstring = Stack.PopLit(); - if (!Utils.intparse(tempstring, out tempint)) + if (!Utils.IntParse(tempstring, out tempint)) Stack.Push("StringTable(" + tempstring + ")", Stack.DataType.StringPtr); else if (!this.Scriptfile.StringTable.ContainsKey(tempint)) Stack.Push("StringTable(" + tempstring + ")", Stack.DataType.StringPtr); @@ -1253,7 +1253,7 @@ public void returncheck(string temp) return; } int tempint; - if (Utils.intparse(temp, out tempint)) + if (Utils.IntParse(temp, out tempint)) { ReturnType = Types.gettype(Stack.DataType.Int); return; @@ -1383,7 +1383,7 @@ public void decodeinsructionsforvarinfo() if (Stack.TopType == Stack.DataType.Int) { tempstring = Stack.PopLit(); - if (Utils.intparse(tempstring, out tempint)) + if (Utils.IntParse(tempstring, out tempint)) { Stack.PeekVar(0).Value = tempint; } @@ -1400,7 +1400,7 @@ public void decodeinsructionsforvarinfo() if (Stack.TopType == Stack.DataType.Int) { tempstring = Stack.PopLit(); - if (Utils.intparse(tempstring, out tempint)) + if (Utils.IntParse(tempstring, out tempint)) { Stack.PeekVar(0).Value = tempint; } @@ -1427,7 +1427,7 @@ public void decodeinsructionsforvarinfo() case Instruction.pArray1: case Instruction.pArray2: - if (!Utils.intparse(Stack.PeekItem(1), out tempint)) + if (!Utils.IntParse(Stack.PeekItem(1), out tempint)) { tempint = -1; } @@ -1436,14 +1436,14 @@ public void decodeinsructionsforvarinfo() Stack.Op_ArrayGetP(ins.GetOperandsAsUInt); break; case Instruction.ArrayGet1: case Instruction.ArrayGet2: - if (!Utils.intparse(Stack.PeekItem(1), out tempint)) + if (!Utils.IntParse(Stack.PeekItem(1), out tempint)) { tempint = -1; } CheckArray(ins.GetOperandsAsUInt, tempint); Stack.Op_ArrayGet(ins.GetOperandsAsUInt); break; case Instruction.ArraySet1: case Instruction.ArraySet2: - if (!Utils.intparse(Stack.PeekItem(1), out tempint)) + if (!Utils.IntParse(Stack.PeekItem(1), out tempint)) { tempint = -1; } @@ -1482,7 +1482,7 @@ public void decodeinsructionsforvarinfo() { tempstring = Stack.PopLit(); if (ins.GetOperandsAsUInt > Pcount) - if (Utils.intparse(tempstring, out tempint)) + if (Utils.IntParse(tempstring, out tempint)) { GetFrameVar(ins.GetOperandsAsUInt).Value = tempint; } diff --git a/GTA V Script Decompiler/MainForm.cs b/GTA V Script Decompiler/MainForm.cs index 21620ba..5988a44 100644 --- a/GTA V Script Decompiler/MainForm.cs +++ b/GTA V Script Decompiler/MainForm.cs @@ -921,13 +921,13 @@ private void findHashFromStringsToolStripMenuItem_Click(object sender, EventArgs updatestatus($"No Strings Found, Time taken: {DateTime.Now - Start}"); else { - updatestatus($"Founs {FoundStrings.Count} strings, Time taken: {DateTime.Now - Start}"); + updatestatus($"Found {FoundStrings.Count} strings, Time taken: {DateTime.Now - Start}"); FoundStrings.Sort((x, y) => x.Item1.CompareTo(y.Item1)); using (StreamWriter oFile = File.CreateText(Path.Combine(fsd.SelectedPath, "STRINGS.txt"))) { foreach (Tuple Item in FoundStrings) { - oFile.WriteLine($"0x{Utils.formathexhash(Item.Item1)} : \"{Item.Item2}\""); + oFile.WriteLine($"{Utils.FormatHexHash(Item.Item1)} : \"{Item.Item2}\""); } } } diff --git a/GTA V Script Decompiler/Stack.cs b/GTA V Script Decompiler/Stack.cs index a9bc2d3..aadbef9 100644 --- a/GTA V Script Decompiler/Stack.cs +++ b/GTA V Script Decompiler/Stack.cs @@ -63,7 +63,7 @@ public void Push(params int[] values) } public void PushHexInt(uint value) { - _stack.Add(new StackValue(StackValue.Type.Literal, Utils.formathexhash(value), DataType.Int)); + _stack.Add(new StackValue(StackValue.Type.Literal, Utils.FormatHexHash(value), DataType.Int)); } public void PushVar(string value, Vars_Info.Var Variable) { @@ -815,7 +815,7 @@ public void Op_And() throw new Exception("Not a literal item recieved"); if (s1.Datatype == DataType.Bool || s2.Datatype == DataType.Bool) PushCond("(" + s2.Value + " && " + s1.Value + ")"); - else if (Utils.intparse(s1.Value, out temp) || Utils.intparse(s2.Value, out temp)) + else if (Utils.IntParse(s1.Value, out temp) || Utils.IntParse(s2.Value, out temp)) Push(s2.Value + " & " + s1.Value, DataType.Int); else Push("(" + s2.Value + " && " + s1.Value + ")"); @@ -829,7 +829,7 @@ public void Op_Or() throw new Exception("Not a literal item recieved"); if (s1.Datatype == DataType.Bool || s2.Datatype == DataType.Bool) PushCond("(" + s2.Value + " || " + s1.Value + ")"); - else if (Utils.intparse(s1.Value, out temp) || Utils.intparse(s2.Value, out temp)) + else if (Utils.IntParse(s1.Value, out temp) || Utils.IntParse(s2.Value, out temp)) Push(s2.Value + " | " + s1.Value, DataType.Int); else Push("(" + s2.Value + " || " + s1.Value + ")"); @@ -888,7 +888,7 @@ public void Op_GetImmP() { string immediate = PopLit(); int temp; - if (Utils.intparse(immediate, out temp)) + if (Utils.IntParse(immediate, out temp)) { if (Peek().ItemType == StackValue.Type.Pointer) Push(new StackValue(StackValue.Type.Pointer, PopPointerRef() + ".f_" + (Program.Hex_Index ? temp.ToString("X") : temp.ToString()))); @@ -965,7 +965,7 @@ public void Op_ToStack() pointer = PopPointerRef(); count = PopLit(); - if (!Utils.intparse(count, out amount)) + if (!Utils.IntParse(count, out amount)) throw new Exception("Expecting the amount to push"); PushString(pointer, amount); } @@ -974,7 +974,7 @@ public void Op_ToStack() pointer = PopPointerRef(); count = PopLit(); - if (!Utils.intparse(count, out amount)) + if (!Utils.IntParse(count, out amount)) throw new Exception("Expecting the amount to push"); PushStruct(pointer, amount); } @@ -1098,7 +1098,7 @@ public string Op_FromStack() pointer = PopPointerRef(); count = PopLit(); int amount; - if (!Utils.intparse(count, out amount)) + if (!Utils.IntParse(count, out amount)) throw new Exception("Expecting the amount to push"); string res = pointer + " = {"; foreach (StackValue val in PopList(amount)) @@ -1175,7 +1175,7 @@ public string op_sncopy() string value = PopLit(); string count = PopLit(); int amount; - if (!Utils.intparse(count, out amount)) + if (!Utils.IntParse(count, out amount)) throw new Exception("Int Stack value expected"); return "MemCopy(" + pointer + ", " + "{" + PopListForCall(amount) + "}, " + value + ");"; } diff --git a/GTA V Script Decompiler/Utils.cs b/GTA V Script Decompiler/Utils.cs index df9a90e..0fe77bc 100644 --- a/GTA V Script Decompiler/Utils.cs +++ b/GTA V Script Decompiler/Utils.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -23,63 +24,97 @@ public static uint jenkins_one_at_a_time_hash(string str) hash += (hash << 15); return hash; } - public static string formathexhash(uint hash) + public static string FormatHexHash(uint hash) { - string hashres = hash.ToString("X"); - while (hashres.Length < 8) - hashres = "0" + hashres; - return hashres; + return $"0x{hash:X8}"; } public static float SwapEndian(float num) { + var b = BitConverter.GetBytes(num); + + return (float)((b[3] << 0) | (b[2] << 8) | (b[1] << 16) | (b[0] << 24)); + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToSingle(data, 0); - } + */ + } public static uint SwapEndian(uint num) { + var b = BitConverter.GetBytes(num); + + return (uint)((b[3] << 0) | (b[2] << 8) | (b[1] << 16) | (b[0] << 24)); + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToUInt32(data, 0); - } + */ + } public static int SwapEndian(int num) { + var b = BitConverter.GetBytes(num); + + return (int)((b[3] << 0) | (b[2] << 8) | (b[1] << 16) | (b[0] << 24)); + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToInt32(data, 0); - } + */ + } public static ulong SwapEndian(ulong num) { + var b = BitConverter.GetBytes(num); + + return (ulong)((b[7] << 0) | (b[6] << 8) | (b[5] << 16) | (b[4] << 24) | + (b[3] << 32) | (b[2] << 40) | (b[1] << 48) | (b[0] << 56)); + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToUInt64(data, 0); - } + */ + } public static long SwapEndian(long num) { + var b = BitConverter.GetBytes(num); + + return (long)((b[7] << 0) | (b[6] << 8) | (b[5] << 16) | (b[4] << 24) | + (b[3] << 32) | (b[2] << 40) | (b[1] << 48) | (b[0] << 56)); + + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToInt64(data, 0); - } + */ + } public static ushort SwapEndian(ushort num) { + var b = BitConverter.GetBytes(num); + + return (ushort)((b[1] << 0) | (b[0] << 8)); + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToUInt16(data, 0); - } + */ + } public static short SwapEndian(short num) { + var b = BitConverter.GetBytes(num); + + return (short)((b[1] << 0) | (b[0] << 8)); + /* byte[] data = BitConverter.GetBytes(num); Array.Reverse(data); return BitConverter.ToInt16(data, 0); - } - public static bool intparse(string temp, out int value) + */ + } + public static bool IntParse(string temp, out int value) { - if (Program.getIntType == Program.IntType._hex) - { - return int.TryParse(temp.Substring(2), System.Globalization.NumberStyles.HexNumber, new System.Globalization.CultureInfo("en-gb"), out value); - } - else - return int.TryParse(temp, out value); + var isHex = (Program.getIntType == Program.IntType._hex); + var numberStyle = (isHex) ? NumberStyles.HexNumber : NumberStyles.Integer; + var str = (isHex) ? temp.Substring(2) : temp; + + return int.TryParse(str, numberStyle, new CultureInfo("en-US"), out value); } } From ef9e4f33c2ce30d7a909afcc39e5f5a1c387e8be Mon Sep 17 00:00:00 2001 From: Mark Ludwig Date: Tue, 14 Jun 2016 15:48:49 -0700 Subject: [PATCH 3/5] Force uppercase natives --- GTA V Script Decompiler/NativeFiles.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/GTA V Script Decompiler/NativeFiles.cs b/GTA V Script Decompiler/NativeFiles.cs index 8e0c932..4fb353c 100644 --- a/GTA V Script Decompiler/NativeFiles.cs +++ b/GTA V Script Decompiler/NativeFiles.cs @@ -93,6 +93,10 @@ public x64NativeFile(Stream Nativefile) continue; string val = data[0]; string nat = (Program.Show_Nat_Namespace ? (data[1] + "::") : "") + data[2]; + + // force uppercase + nat = nat.ToUpper(); + ulong value; if (ulong.TryParse(val, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out value)) { From b758c7e842afc1cb45ba7ec8c3fab505fa28d1ef Mon Sep 17 00:00:00 2001 From: Mark Ludwig Date: Tue, 14 Jun 2016 15:49:26 -0700 Subject: [PATCH 4/5] Fix bug when reading RSC7 header for PC scripts --- GTA V Script Decompiler/ScriptHeaders.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GTA V Script Decompiler/ScriptHeaders.cs b/GTA V Script Decompiler/ScriptHeaders.cs index 31bf0ba..d545c24 100644 --- a/GTA V Script Decompiler/ScriptHeaders.cs +++ b/GTA V Script Decompiler/ScriptHeaders.cs @@ -94,7 +94,7 @@ static ScriptHeader GeneratePcHeader(Stream scriptStream) ScriptHeader header = new ScriptHeader(); IO.Reader reader = new IO.Reader(scriptStream, false); scriptStream.Seek(0, SeekOrigin.Begin); - header.RSC7Offset = (reader.ReadUInt32() == 0x52534337) ? 0x10 : 0x0; + header.RSC7Offset = (reader.SReadUInt32() == 0x52534337) ? 0x10 : 0x0; scriptStream.Seek(header.RSC7Offset, SeekOrigin.Begin); header.Magic = reader.ReadInt32(); //0x0 reader.Advance(); From 429d5864b9a140c07af72bbd2c9b6cee49348114 Mon Sep 17 00:00:00 2001 From: Mark Ludwig Date: Tue, 14 Jun 2016 15:52:15 -0700 Subject: [PATCH 5/5] Updated string decompilation - Added `PopString` method for popping strings - `StrConCat` uses `+=` operator instead - `StrIntConCat` now redirects to this - `StrCopy` uses `=` operator instead --- GTA V Script Decompiler/Stack.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/GTA V Script Decompiler/Stack.cs b/GTA V Script Decompiler/Stack.cs index aadbef9..d24e5a1 100644 --- a/GTA V Script Decompiler/Stack.cs +++ b/GTA V Script Decompiler/Stack.cs @@ -204,6 +204,13 @@ public void Dup() else Push(top); } + public string PopString() + { + StackValue val = Pop(); + if ((val.ItemType == StackValue.Type.Literal) || (val.ItemType == StackValue.Type.Pointer)) + return val.Value; + throw new Exception("Not a string item received"); + } public string PopLit() { StackValue val = Pop(); @@ -1147,21 +1154,33 @@ public void Op_Hash() } public string op_strcopy(int size) { + return $"{PopString()} /*{size}*/ = {PopString()};"; + + /* string pointer = PopPointer(); string pointer2 = PopPointer(); return "StringCopy(" + pointer + ", " + pointer2 + ", " + size.ToString() + ");"; + */ } public string op_stradd(int size) { + return $"{PopString()} /*{size}*/ += {PopString()};"; + + /* string pointer = PopPointer(); string pointer2 = PopPointer(); return "StringConCat(" + pointer + ", " + pointer2 + ", " + size.ToString() + ");"; + */ } public string op_straddi(int size) { + return op_stradd(size); + + /* string pointer = PopPointer(); string inttoadd = PopLit(); return "StringIntConCat(" + pointer + ", " + inttoadd + ", " + size.ToString() + ");"; + */ } public string op_itos(int size) {