From d1f96ebe7e67288fc19d84b7d2e7d3ead02973af Mon Sep 17 00:00:00 2001 From: Dunbaratu Date: Sun, 6 Mar 2016 12:33:41 -0600 Subject: [PATCH 1/8] Fixes #1513 terminal font fails on low texture setting. --- src/kOS/Screen/TermWindow.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/kOS/Screen/TermWindow.cs b/src/kOS/Screen/TermWindow.cs index 4a2ec26d4..9c7b08ab7 100644 --- a/src/kOS/Screen/TermWindow.cs +++ b/src/kOS/Screen/TermWindow.cs @@ -14,9 +14,9 @@ namespace kOS.Screen public class TermWindow : KOSManagedWindow , ITermWindow { /// - /// Pixel size of one square section of the font template image file holding one character: + /// Pixel size of one square section of the font template image file holding one character. /// - private const int CHAR_SOURCE_SIZE = 8; + private int charSourceSize; private const string CONTROL_LOCKOUT = "kOSTerminal"; private const int FONTIMAGE_CHARS_PER_ROW = 16; @@ -146,6 +146,12 @@ public void OnDestroy() private void LoadFontArray() { + // For example, if the image is 128 pixels wide, and there are 16 chars per row, + // then each character must be 8 pixels in size. This allows us to use different + // sized font image files as drop-in replacements without recompiling the code + // because this value is determined by whatever the file happens to be like: + charSourceSize = fontImage.width / FONTIMAGE_CHARS_PER_ROW; + // Make it hold all possible ASCII values even though many will be blank pictures: fontArray = new Texture2D[128]; @@ -155,7 +161,7 @@ private void LoadFontArray() // SetPixel on the texture (which we do). So we start it off as a ARGB32 // first, long enough to perform the SetPixel call, then compress it // afterward into a DXT5: - Texture2D charImage = new Texture2D(CHAR_SOURCE_SIZE, CHAR_SOURCE_SIZE, TextureFormat.ARGB32, true); + Texture2D charImage = new Texture2D(charSourceSize, charSourceSize, TextureFormat.ARGB32, false); int tx = i % FONTIMAGE_CHARS_PER_ROW; int ty = i / FONTIMAGE_CHARS_PER_ROW; @@ -164,7 +170,7 @@ private void LoadFontArray() // 3D (2D images put orgin at upper-left, 3D uses lower-left), it doesn't seem // to apply this rule to textures loaded from files like the fontImage. // Thus the difference requiring the upside-down Y coord below. - charImage.SetPixels(fontImage.GetPixels(tx * CHAR_SOURCE_SIZE, fontImage.height - (ty+1) * CHAR_SOURCE_SIZE, CHAR_SOURCE_SIZE, CHAR_SOURCE_SIZE)); + charImage.SetPixels(fontImage.GetPixels(tx * charSourceSize, fontImage.height - (ty+1) * charSourceSize, charSourceSize, charSourceSize)); charImage.Compress(false); charImage.Apply(); From af672dd301985d082001fa488da3601d0a17328b Mon Sep 17 00:00:00 2001 From: Dunbaratu Date: Sun, 6 Mar 2016 16:35:25 -0600 Subject: [PATCH 2/8] Made font image reading even more generic about sizes. --- src/kOS/Screen/TermWindow.cs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/kOS/Screen/TermWindow.cs b/src/kOS/Screen/TermWindow.cs index 9c7b08ab7..be2f7b20f 100644 --- a/src/kOS/Screen/TermWindow.cs +++ b/src/kOS/Screen/TermWindow.cs @@ -13,11 +13,6 @@ namespace kOS.Screen // Blockotronix 550 Computor Monitor public class TermWindow : KOSManagedWindow , ITermWindow { - /// - /// Pixel size of one square section of the font template image file holding one character. - /// - private int charSourceSize; - private const string CONTROL_LOCKOUT = "kOSTerminal"; private const int FONTIMAGE_CHARS_PER_ROW = 16; @@ -146,16 +141,19 @@ public void OnDestroy() private void LoadFontArray() { - // For example, if the image is 128 pixels wide, and there are 16 chars per row, - // then each character must be 8 pixels in size. This allows us to use different - // sized font image files as drop-in replacements without recompiling the code - // because this value is determined by whatever the file happens to be like: - charSourceSize = fontImage.width / FONTIMAGE_CHARS_PER_ROW; + // Calculate image size from the presumption that it is a hardcoded number of char + // pictures wide and that each image is square. + // Then calculate everything else dynamically from that so that + // you can experiment with swapping in different font image files and the code + // will still work without a recompile: + int charSourceSize = fontImage.width / FONTIMAGE_CHARS_PER_ROW; + int numRows = fontImage.width / charSourceSize; + int numCharImages = numRows * FONTIMAGE_CHARS_PER_ROW; // Make it hold all possible ASCII values even though many will be blank pictures: - fontArray = new Texture2D[128]; + fontArray = new Texture2D[numCharImages]; - for (int i = 0 ; i < 128 ; ++i) + for (int i = 0 ; i < numCharImages ; ++i) { // TextureFormat cannot be DXT1 or DXT5 if you want to ever perform a // SetPixel on the texture (which we do). So we start it off as a ARGB32 From 3494285cf4fa2c75b21eefb3c5ee5a38ac3ad67c Mon Sep 17 00:00:00 2001 From: hvacengi Date: Mon, 7 Mar 2016 08:35:03 -0500 Subject: [PATCH 3/8] Add alias to FORCESETACTIVEVESSEL KUniverseValu.cs * Add FORCEACTIVE as an alias to FORCESETACTIVEVESSEL kuniverse.rst * Fix documentation to properly reference FORCESETACTIVEVESSEL * Add FORCEACTIVE alias * Fix various references that didn't point to their descriptions correctly * Remove "Members and Methods" caption from table as it didn't format correctly --- doc/source/structures/misc/kuniverse.rst | 35 ++++++++++++++++-------- src/kOS/Suffixed/KUniverseValue.cs | 2 +- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/doc/source/structures/misc/kuniverse.rst b/doc/source/structures/misc/kuniverse.rst index c82224e04..0fb3074ff 100644 --- a/doc/source/structures/misc/kuniverse.rst +++ b/doc/source/structures/misc/kuniverse.rst @@ -8,7 +8,7 @@ KUniverse 4th wall methods :struct:`KUniverse` is a special structure that allows your Kerboscript programs to access some of the functions that break the "4th Wall". It serves as a place to access object directly connected to the KSP game itself, rather than the interaction with the KSP world (vessels, planets, orbits, etc.). - .. list-table:: Members and Methods + .. list-table:: :header-rows: 1 :widths: 3 1 1 4 @@ -29,15 +29,15 @@ KUniverse 4th wall methods - :ref:`boolean ` - Get - Is revert to editor possible? - * - :attr:`REVERTTOLAUNCH` + * - :meth:`REVERTTOLAUNCH` - none - Method - Invoke revert to launch - * - :attr:`REVERTTOEDITOR` + * - :meth:`REVERTTOEDITOR` - none - Method - Invoke revert to editor - * - :attr:`REVERTTO(name)` + * - :meth:`REVERTTO(name)` - :ref:`string ` - Method - Invoke revert to the named editor @@ -49,7 +49,7 @@ KUniverse 4th wall methods - :ref:`scalar ` - Get - Number of hours per day (6 or 24) according to your game settings. - * - :attr:`DEBUGLOG(message)` + * - :meth:`DEBUGLOG(message)` - none - Method - Causes a :ref:`string ` to append to the Unity debug log file. @@ -57,14 +57,18 @@ KUniverse 4th wall methods - :struct:`LoadDistance` - Get - Returns the set of default load and pack distances for the game. - * - :attr:`ACTIVEVESEL` + * - :attr:`ACTIVEVESSEL` - :struct:`Vessel` - Get/Set - Returns the active vessel, or lets you set the active vessel. - * - :attr:`FORCEACTIVE(vessel)` + * - :meth:`FORCESETACTIVEVESSEL(vessel)` - n/a - - Set + - Method - Lets you switch active vessels even when the game refuses to allow it. + * - :meth:`FORCEACTIVE(vessel)` + - n/a + - Method + - Same as :meth:`FORCESETACTIVEVESSEL` .. attribute:: KUniverse:CANREVERT @@ -90,14 +94,14 @@ KUniverse 4th wall methods to be false after reloading from a saved game where the vessel was already in existence in the saved file when you loaded the game. -.. attribute:: KUniverse:REVERTTOLAUNCH +.. method:: KUniverse:REVERTTOLAUNCH() :access: Method :type: None. Initiate the KSP game's revert to launch function. All progress so far will be lost, and the vessel will be returned to the launch pad or runway at the time it was initially launched. -.. attribute:: KUniverse:REVERTTOEDITOR +.. method:: KUniverse:REVERTTOEDITOR() :access: Method :type: None. @@ -146,13 +150,20 @@ KUniverse 4th wall methods Returns the active vessel object and allows you to set the active vessel. Note: KSP will not allow you to change vessels by default when the current active vessel is in the atmosphere or under acceleration. Use :meth:`FORCEACTIVE` under those circumstances. -.. method:: KUniverse:FORCEACTIVE(vessel) +.. method:: KUniverse:FORCESETACTIVEVESSEL(vessel) :parameter vessel: :struct:`Vessel` to switch to. :return: none Force KSP to change the active vessel to the one specified. Note: Switching the active vessel under conditions that KSP normally disallows may cause unexpected results on the initial vessel. It is possible that the vessel will be treated as if it is re-entering the atmosphere and deleted. +.. method:: KUniverse:FORCEACTIVE(vessel) + + :parameter vessel: :struct:`Vessel` to switch to. + :return: none + + Same as :meth:`FORCESETACTIVEVESSEL`. + .. attribute:: KUniverse:HOURSPERDAY :access: Get @@ -225,7 +236,7 @@ KUniverse 4th wall methods - Windows 32-bit: [install_dir]\KSP_Data\output_log.txt - Windows 64-bit: [install_dir]\KSP_x64_Data\output_log.txt (not officially supported) - - Mac OS X: ~/Library/Logs/Unity/Player.log + - Mac OS X: ~/Library/Logs/Unity/Player.log - Linux: ~/.config/unity3d/Squad/"Kerbal Space Program"/Player.log For an example of what it looks like in the log, this:: diff --git a/src/kOS/Suffixed/KUniverseValue.cs b/src/kOS/Suffixed/KUniverseValue.cs index 7479f3aea..957461098 100644 --- a/src/kOS/Suffixed/KUniverseValue.cs +++ b/src/kOS/Suffixed/KUniverseValue.cs @@ -28,7 +28,7 @@ public void InitializeSuffixes() AddSuffix("ORIGINEDITOR", new Suffix(OriginatingEditor)); AddSuffix("DEFAULTLOADDISTANCE", new Suffix(() => new LoadDistanceValue(PhysicsGlobals.Instance.VesselRangesDefault))); AddSuffix("ACTIVEVESSEL", new SetSuffix(() => new VesselTarget(FlightGlobals.ActiveVessel, shared), SetActiveVessel)); - AddSuffix("FORCESETACTIVEVESSEL", new OneArgsSuffix(ForceSetActiveVessel)); + AddSuffix(new string[] { "FORCESETACTIVEVESSEL", "FORCEACTIVE" }, new OneArgsSuffix(ForceSetActiveVessel)); AddSuffix("HOURSPERDAY", new Suffix(GetHoursPerDay)); AddSuffix("DEBUGLOG", new OneArgsSuffix(DebugLog)); } From 0898fe1b9213ab904047aa35c554ee61fe48f6c6 Mon Sep 17 00:00:00 2001 From: Dunbaratu Date: Mon, 7 Mar 2016 17:51:00 -0600 Subject: [PATCH 4/8] Fixes #1525 by paying attention to current color agian. --- src/kOS/Screen/TermWindow.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/kOS/Screen/TermWindow.cs b/src/kOS/Screen/TermWindow.cs index be2f7b20f..0f7ab0f0e 100644 --- a/src/kOS/Screen/TermWindow.cs +++ b/src/kOS/Screen/TermWindow.cs @@ -52,6 +52,7 @@ public class TermWindow : KOSManagedWindow , ITermWindow private readonly TimeSpan blinkCoolDownDuration = TimeSpan.FromMilliseconds(50); /// At what milliseconds-from-epoch timestamp will the current blink be over. private DateTime blinkEndTime; + /// text color that changes depending on if the computer is on private Color currentTextColor; /// Telnet repaints happen less often than Update()s. Not every Update() has a telnet repaint happening. @@ -780,7 +781,7 @@ void TerminalGui(int windowId) { char c = lineBuffer[column]; if (c != 0 && c != 9 && c != 32) - ShowCharacterByAscii(c, column, row, currentTextColor, reversingScreen, + ShowCharacterByAscii(c, column, row, reversingScreen, charWidth, charHeight, screen.Brightness); } } @@ -792,7 +793,7 @@ void TerminalGui(int windowId) if (blinkOn) { - ShowCharacterByAscii((char)1, screen.CursorColumnShow, screen.CursorRowShow, currentTextColor, reversingScreen, + ShowCharacterByAscii((char)1, screen.CursorColumnShow, screen.CursorRowShow, reversingScreen, charWidth, charHeight, screen.Brightness); } @@ -862,10 +863,10 @@ protected void CheckResizeDrag() } } - void ShowCharacterByAscii(char ch, int x, int y, Color charTextColor, bool reversingScreen, int charWidth, int charHeight, float brightness) + void ShowCharacterByAscii(char ch, int x, int y, bool reversingScreen, int charWidth, int charHeight, float brightness) { GUI.BeginGroup(new Rect((x * charWidth), (y * charHeight), charWidth, charHeight)); - GUI.color = AdjustColor(reversingScreen ? bgColor : textColor, brightness); + GUI.color = AdjustColor(reversingScreen ? bgColor : currentTextColor, brightness); GUI.DrawTexture(new Rect(0, 0, charWidth, charHeight), fontArray[ch], ScaleMode.StretchToFill, true); GUI.EndGroup(); } From 5f891adc64b1b593da724f831b5d4044d91e0419 Mon Sep 17 00:00:00 2001 From: Dunbaratu Date: Mon, 7 Mar 2016 19:09:21 -0600 Subject: [PATCH 5/8] Added documentation URL to terminal boot msg. --- src/kOS.Safe/Execution/CPU.cs | 3 ++- src/kOS.Safe/Utilities/SafeHouse.cs | 4 +++- src/kOS/Module/Bootstrapper.cs | 1 + src/kOS/Screen/KOSToolBarWindow.cs | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/kOS.Safe/Execution/CPU.cs b/src/kOS.Safe/Execution/CPU.cs index 721402806..4522f891a 100644 --- a/src/kOS.Safe/Execution/CPU.cs +++ b/src/kOS.Safe/Execution/CPU.cs @@ -91,7 +91,8 @@ public void Boot() if (shared.Screen != null) { shared.Screen.ClearScreen(); - string bootMessage = string.Format("kOS Operating System\n" + "KerboScript v{0}\n \n" + "Proceed.\n", SafeHouse.Version); + string bootMessage = string.Format("kOS Operating System\n" + "KerboScript v{0}\n(manual at {1})\n \n" + "Proceed.\n", + SafeHouse.Version, SafeHouse.DocumentationURL); List nags = Debug.GetPendingNags(); if (nags.Count > 0) { diff --git a/src/kOS.Safe/Utilities/SafeHouse.cs b/src/kOS.Safe/Utilities/SafeHouse.cs index 6cd9223db..f3237411f 100644 --- a/src/kOS.Safe/Utilities/SafeHouse.cs +++ b/src/kOS.Safe/Utilities/SafeHouse.cs @@ -8,13 +8,15 @@ public static class SafeHouse public static bool IsWindows { get; private set; } public static string ArchiveFolder { get; private set; } public static VersionInfo Version { get; private set; } + public static string DocumentationURL { get; private set; } - public static void Init(IConfig config, VersionInfo versionInfo, bool isWindows, string archiveFolder) + public static void Init(IConfig config, VersionInfo versionInfo, string docURL, bool isWindows, string archiveFolder) { Config = config; IsWindows = isWindows; ArchiveFolder = archiveFolder; Version = versionInfo; + DocumentationURL = docURL; } public static ILogger Logger { get; set; } diff --git a/src/kOS/Module/Bootstrapper.cs b/src/kOS/Module/Bootstrapper.cs index 50b112df0..b6c1da0b0 100644 --- a/src/kOS/Module/Bootstrapper.cs +++ b/src/kOS/Module/Bootstrapper.cs @@ -32,6 +32,7 @@ private void BuildEnvironment() SafeHouse.Init( Config.Instance, Core.VersionInfo, + "http://ksp-kos.github.io/KOS_DOC/", Application.platform == RuntimePlatform.WindowsPlayer, GameDatabase.Instance.PluginDataFolder + "/Ships/Script/" ); diff --git a/src/kOS/Screen/KOSToolBarWindow.cs b/src/kOS/Screen/KOSToolBarWindow.cs index 7826cfeba..a7b0709f4 100644 --- a/src/kOS/Screen/KOSToolBarWindow.cs +++ b/src/kOS/Screen/KOSToolBarWindow.cs @@ -413,6 +413,7 @@ public void DrawWindow(int windowID) // Unity doesn't do hovering tooltips and you have to specify a zone for them to appear like this: string whichMessage = (GUI.tooltip.Length > 0 ? GUI.tooltip : TelnetStatusMessage()); // when tooltip isn't showing, show telnet status instead. GUILayout.Label(whichMessage, tooltipLabelStyle); + CountEndVertical(); EndHoverHousekeeping(); From 8a58855c7e27e5c6862766e6bc98055b869ae497 Mon Sep 17 00:00:00 2001 From: hvacengi Date: Mon, 7 Mar 2016 14:26:10 -0500 Subject: [PATCH 6/8] Fix recursion CalculatorStructure.cs * Fixed the root of the recursion issue. Some types (specifically Vector) have implicit conversions that caused TryCoerceImplicit to continue to call over and over until running out of memory. --- src/kOS.Safe/Compilation/CalculatorStructure.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/kOS.Safe/Compilation/CalculatorStructure.cs b/src/kOS.Safe/Compilation/CalculatorStructure.cs index 8c9bca1a3..2c94b4b3f 100644 --- a/src/kOS.Safe/Compilation/CalculatorStructure.cs +++ b/src/kOS.Safe/Compilation/CalculatorStructure.cs @@ -280,6 +280,14 @@ private bool TryCoerceImplicit(OperandPair pair, out OperandPair resultPair) bool couldCoerce = false; object newLeft; object newRight; + if (pair.LeftType == pair.RightType) + { + resultPair = null; + // Since the types are already the same, we can't coerce them to be the same. + // Otherwise, some types will act as if they have been coerced because of + // other implict conversions. + return false; + } MethodInfo convert2 = pair.LeftType.GetMethod("op_Implicit", FLAGS | BindingFlags.ExactBinding, null, new[] { pair.RightType }, null); if (convert2 != null) { From 963cf1c665027ab8a92dbf7cb18a93b45c6682cb Mon Sep 17 00:00:00 2001 From: Dunbaratu Date: Mon, 7 Mar 2016 22:00:58 -0600 Subject: [PATCH 7/8] Fixed the TODO comment in Compiler.cs. --- src/kOS.Safe/Compilation/KS/Compiler.cs | 51 ++++++++----------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/src/kOS.Safe/Compilation/KS/Compiler.cs b/src/kOS.Safe/Compilation/KS/Compiler.cs index 96944f72f..22f3867f7 100644 --- a/src/kOS.Safe/Compilation/KS/Compiler.cs +++ b/src/kOS.Safe/Compilation/KS/Compiler.cs @@ -1192,9 +1192,13 @@ private void VisitNode(ParseNode node) case TokenType.varidentifier: VisitVarIdentifier(node); break; - case TokenType.suffixterm: // TODO: If the exception in VisitSuffixTerm never gets - VisitSuffixTerm(node); // thrown during our testing, we can then safely remove - break; // this clause from the switch. + // This never gets called anymore, but it's left here as + // a comment so future programmers who search for it will + // find this comment and realized that it's not an error + // for it to be missing. It's missing-ness is deliberate: + // case TokenType.suffixterm: + // VisitSuffixTerm(node); + // break; case TokenType.IDENTIFIER: VisitIdentifier(node); break; @@ -1846,40 +1850,15 @@ private string GetIdentifierText(ParseNode node) return string.Empty; } - - private void VisitSuffixTerm(ParseNode node) - { - // TODO: DELETE THIS METHOD BEFORE RELEASE OF 0.19.0 - // - // NOTE: I suspect this method never ever gets called anymore, - // having been superceeded by the work in VisitSuffix() quite a few - // months ago. But with the tree walk of the compiler and its frequent - // use of the open-ended VisitNode(), it's quite hard to prove by - // eyeball that this is never called. - // - // Therefore I added this exception to complain loudly if any test - // program happens to make the compiler walk a path that uses this - // method. - - throw new KOSCompileException(node.Token, - "TESTING TESTING TESTING. TELL @dunbaratu IMMEDIATELY IF YOU SEE THIS ERROR. " + - "THIS MESSAGE IS A CHECK TO ENSURE THAT VisitSuffixTerm IS NEVER REALLY GETTING CALLED. " + - "IF NONE OF THE KOS DEVS EVER SEE THIS DURING OUR TESTS OF 0.19.0, THEN VisitSuffixTerm " + - "SHOULD BE DELETED BEFORE RELEASING 0.19.0" ); - NodeStartHousekeeping(node); - - if (node.Nodes.Count > 1 && - node.Nodes[1].Token.Type == TokenType.function_trailer) - { - // if a bracket follows an identifier then its a function call - VisitActualFunction(node.Nodes[1], true, GetIdentifierText(node)); - } - else - { - VisitNode(node.Nodes[0]); // I'm not really a function call after all - just a wrapper around another node type. - } - } + // The fact that there is no VisitSuffixTerm method is not an omission or mistake. + // All the logic of this node of the parse tree is now handled by the parent nodes + // that come above this one instead. I'm leaving this comment here so that future programmers + // searching this code don't attempt to fix this "mistake" by adding this method back in: + // private void VisitSuffixTerm(ParseNode node) + // { + // // nothing here anymore. + // } private void VisitIdentifier(ParseNode node) { From be2e3f8263428fe765adf1585db7af67077536dd Mon Sep 17 00:00:00 2001 From: Dunbaratu Date: Mon, 7 Mar 2016 22:53:00 -0600 Subject: [PATCH 8/8] Fixes #1529 - final (?) edits for 0.19.2 zip. --- CHANGELOG.md | 30 ++++++++++++++++++++ Resources/GameData/kOS/kOS.version | 2 +- doc/source/changes.rst | 11 +++++++ doc/source/conf.py | 4 +-- src/kOS.Safe.Test/Properties/AssemblyInfo.cs | 4 +-- src/kOS.Safe/Properties/AssemblyInfo.cs | 4 +-- src/kOS/Properties/AssemblyInfo.cs | 4 +-- 7 files changed, 50 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a8f19306..c8596d132 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,36 @@ kOS Mod Changelog ================= +# v0.19.2 + +This release is here primarily to fix a problem that made +the new v0.19.1 terminal unusable for users who have to +use low resolution texture settings in the Unity graphics +configuration panel. + +### BREAKING +* Nothing new breaking in this version is known about. + +### NEW FEATURES +* New alias KUNIVERSE:FORCEACTIVE() can be used instead of the longer name KUNIVERSE:FORCESETACTIVEVESSEL(). +* More robust use of the font_sml.png file allows for replacement of font_sml.png by the end-user. + (However this may only be useful for a limited time, as Unity5 might make us implement the font differently + anyway.) + +### BUG FIXES +* New terminal now works again at low texture resolution settings + (https://github.com/KSP-KOS/KOS/issues/1513). +* New terminal shows grey color on power-off again + (https://github.com/KSP-KOS/KOS/issues/1525). +* Terminal now shows a boot message that mentions the documentation URL + (https://github.com/KSP-KOS/KOS/issues/1527). +* Fixed a situation that could make KSP itself crash if a script + attempted to perform an equality comparison on types that hadn't + had a meaningful implementation of equality defined. (Instead + of a proper error message about it from kOS, kOS got stuck in + recursion.) + + # v0.19.1 This release is a patch to v0.19.0, fixing some things diff --git a/Resources/GameData/kOS/kOS.version b/Resources/GameData/kOS/kOS.version index 2cbbf45ae..be8502eb8 100644 --- a/Resources/GameData/kOS/kOS.version +++ b/Resources/GameData/kOS/kOS.version @@ -11,7 +11,7 @@ "VERSION": { "MAJOR": 0, "MINOR": 19, - "PATCH": 1 + "PATCH": 2 }, "KSP_VERSION": { "MAJOR": 1, diff --git a/doc/source/changes.rst b/doc/source/changes.rst index de72b5df0..8eb7268ad 100644 --- a/doc/source/changes.rst +++ b/doc/source/changes.rst @@ -24,6 +24,17 @@ release. **** +Changes in 0.19.2 +----------------- + +This was mostly a bug fix release. Not much changed in the documentation. + +FORCEACTIVE +::::::::::: + +New alias ``KUNIVERSE:FORCEACTIVE()`` can be used instead of the +longer name ``KUNIVERSE:FORCESETACTIVEVESSEL()``. + Changes in 0.19.1 ----------------- diff --git a/doc/source/conf.py b/doc/source/conf.py index e9f8463eb..336b77c4b 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -59,9 +59,9 @@ # built documents. # # The short X.Y version. -version = '0.19.1' +version = '0.19.2' # The full version, including alpha/beta/rc tags. -release = '0.19.1' +release = '0.19.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/src/kOS.Safe.Test/Properties/AssemblyInfo.cs b/src/kOS.Safe.Test/Properties/AssemblyInfo.cs index 6150b846d..56afb697d 100644 --- a/src/kOS.Safe.Test/Properties/AssemblyInfo.cs +++ b/src/kOS.Safe.Test/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.19.1.0")] -[assembly: AssemblyFileVersion("1.19.1.0")] +[assembly: AssemblyVersion("1.19.2.0")] +[assembly: AssemblyFileVersion("1.19.2.0")] diff --git a/src/kOS.Safe/Properties/AssemblyInfo.cs b/src/kOS.Safe/Properties/AssemblyInfo.cs index 55e7eea00..b2e54bdb3 100644 --- a/src/kOS.Safe/Properties/AssemblyInfo.cs +++ b/src/kOS.Safe/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.19.1.0")] -[assembly: AssemblyFileVersion("1.19.1.0")] +[assembly: AssemblyVersion("1.19.2.0")] +[assembly: AssemblyFileVersion("1.19.2.0")] diff --git a/src/kOS/Properties/AssemblyInfo.cs b/src/kOS/Properties/AssemblyInfo.cs index 9ddc47f92..acdef6fc8 100644 --- a/src/kOS/Properties/AssemblyInfo.cs +++ b/src/kOS/Properties/AssemblyInfo.cs @@ -31,6 +31,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyFileVersion("0.19.1.0")] -[assembly: AssemblyVersion("0.19.1.0")] +[assembly: AssemblyFileVersion("0.19.2.0")] +[assembly: AssemblyVersion("0.19.2.0")] [assembly: KSPAssembly("kOS", 0, 19)]