mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Merge branch 'master' into api-changes
This commit is contained in:
@@ -49,7 +49,7 @@ h3{
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012–2013 WrinklyNinja
|
||||
Copyright (C) 2012–2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
@@ -105,7 +105,7 @@ h3{
|
||||
</ul>
|
||||
<p>Some important points that are more specific to how BOSS uses YAML:
|
||||
<ul>
|
||||
<li>BOSS's support for YAML syntax is incomplete. A list of known limitations can be found <a href="https://github.com/WrinklyNinja/yaml-cpp/issues?labels=bug&state=open">here</a>. The only major missing piece is support for merge keys (<code><<:</code>).
|
||||
<li>BOSS's support for YAML syntax is incomplete. A list of known limitations can be found <a href="https://github.com/WrinklyNinja/yaml-cpp/issues?labels=bug&state=open">here</a>. The only major missing piece is support for merge keys (<code><<:</code>).
|
||||
<li>Strings are case-sensitive, apart from file paths, regular expressions and checksums.
|
||||
</ul>
|
||||
<p>Some properties of file paths as used by BOSS:
|
||||
@@ -337,11 +337,11 @@ msg:
|
||||
<p>Examples:
|
||||
<code class="box">'This [string](https://en.wikipedia.org/wiki/String_(computer_science)) contains a labelled hyperlink.'</code>
|
||||
would be displayed as
|
||||
<blockquote>This <a href="https://en.wikipedia.org/wiki/String_(computer_science)">string</a> contains a labelled hyperlink.</code></blockquote>
|
||||
<blockquote>This <a href="https://en.wikipedia.org/wiki/String_(computer_science)">string</a> contains a labelled hyperlink.</blockquote>
|
||||
<p>While
|
||||
<code class="box">'This string (see: <https://en.wikipedia.org/wiki/String_(computer_science)>) contains an unlabelled hyperlink.'</code>
|
||||
both get displayed as
|
||||
<blockquote>This string (see: <a href="https://en.wikipedia.org/wiki/String_(computer_science)">https://en.wikipedia.org/wiki/String_(computer_science)</a>) contains an unlabelled hyperlink.</code></blockquote>
|
||||
<blockquote>This string (see: <a href="https://en.wikipedia.org/wiki/String_(computer_science)">https://en.wikipedia.org/wiki/String_(computer_science)</a>) contains an unlabelled hyperlink.</blockquote>
|
||||
|
||||
<h2 id="cond">Condition Strings</h2>
|
||||
<p>Condition strings can be used to ensure that data is only acted on by BOSS under certain circumstances. They are very similar to boolean conditional expressions in programming languages such as Python, though more limited. Their <a href="https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form">EBNF</a> grammar is:
|
||||
@@ -442,5 +442,5 @@ both get displayed as
|
||||
|
||||
<h2 id="license">License</h2>
|
||||
<p>This document is part of the BOSS documentation.<br>
|
||||
Copyright (C) 2012–2013 WrinklyNinja<br>
|
||||
Copyright (C) 2012—2014 WrinklyNinja<br>
|
||||
See the file <q>BOSS ReadMe.html</q> for copying conditions.
|
||||
|
||||
+20
-16
@@ -63,7 +63,7 @@ h3{
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012–2013 WrinklyNinja
|
||||
Copyright (C) 2012–2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
@@ -160,10 +160,10 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. BOSS can be install
|
||||
</figure>
|
||||
<p>Clicking the <q>Sort Plugins</q> button in the main window will begin the sorting process.
|
||||
|
||||
<p>Provided that masterlist updating <a href="#settingsUpdateMasterlist">is enabled</a> and that an online masterlist URL <a href="#settingsMasterlistURL">is set</a>, BOSS checks for updates to its masterlist and downloads any that are available. If there are any syntax errors in the latest masterlist (due to human error by its maintainers), the updater rolls back one version at a time until it finds a version that works. If any other errors are encountered, updating is cancelled.
|
||||
<p>Provided that masterlist updating <a href="#settingsUpdateMasterlist">is enabled</a> and that a masterlist repository URL <a href="#settingsMasterlistURL">is set</a>, BOSS checks for updates to its masterlist and downloads any that are available. If there are any syntax errors in the latest masterlist (due to human error by its maintainers), the updater rolls back one version at a time until it finds a version that works. If any other errors are encountered, updating is cancelled.
|
||||
|
||||
<p>During the sorting process, BOSS extracts information from each of the plugins installed in the game's Data folder and combines this information with any relevant metadata provided by the masterlist and userlist. It then uses the combined data to build a directed graph of all the interactions between all the installed plugins. A topological sort is then carried out on the graph to produce a list of plugins in their optimal load order, according to BOSS's criteria. If a cycle is detected (eg. A depends on B depends on A), then sorting is cancelled as it becomes impossible to generate a load order that satisfies all conditions.
|
||||
<p>If successful, the calculated load order is then displayed in the dialog shown above, which allows the user to edit the load order before it is applied. Multiple plugins may be selected and moved at once. Plugins which are empty (ie. only contain a header record) are displayed in grey text, and plugins that are not empty and load BSAs are displayed in blue text. If <q>OK</q> button is clicked, it is then applied, and any edits made are recorded in the userlist for re-application when BOSS next sorts the game's plugins. If the <q>Cancel</q> button is clicked, then the load order and any edits made are discarded.
|
||||
<p>If successful, the calculated load order is then displayed in the dialog shown above, which allows the user to edit the load order before it is applied. Multiple plugins may be selected and moved at once. Plugins which are empty (ie. only contain a header record) are displayed in <span style="color: #7A7A7A;">grey text</span>, and plugins that are not empty and load BSAs are displayed in <span style="color: #008EDB;">blue text</span>. If <q>OK</q> button is clicked, it is then applied, and any edits made are recorded in the userlist for re-application when BOSS next sorts the game's plugins. If the <q>Cancel</q> button is clicked, then the load order and any edits made are discarded.
|
||||
<p>BOSS then generates a report and displays it either in a new window or in your default browser, according to the value of the <a href="#settingsViewReports">relevant setting</a>. Any errors encountered during the sorting process will be displayed in this report, including those due to graph cycles, missing dependencies or installed incompatible plugins. See the next section for more information on the report.
|
||||
<p>BOSS is able to sort plugins ghosted by <abbr title="Wrye Bash, Wrye Flash or Wrye Flash NV">Wrye *ash</abbr>, and can extract Bash Tags and version numbers from plugin descriptions. Provided that they have the <code>Filter</code> Bash Tag present in their description, BOSS can recognise filter patches and so avoid displaying unnecessary error messages for any of their masters that may be missing.
|
||||
<p>While reading very large plugins, such as the game's main master file, BOSS may appear to stop responding: this is not an issue. The time it takes for BOSS to sort your load order depends primarily on the size of the masterlist being used, the total size of the files in your load order, and the number of plugins in your load order. The first run is likely to be longer than subsequent runs as BOSS needs to download the full masterlist, rather than just the changes made by updates. In testing, it was found that sorting ~90 plugins with a total size of ~350 MB and a 5 MB masterlist takes around 15 seconds, though performance will vary with computer hardware.
|
||||
@@ -180,7 +180,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. BOSS can be install
|
||||
<p>The report is comprised of three main sections:
|
||||
<ul>
|
||||
<li>The <q>Summary</q> tab gives information on the versions of BOSS and the masterlist used, whether masterlist updating is enabled, and breaks down the numbers of each message type in the Summary and Details tabs. It also notifies you if there have been no changes in the <q>Details</q> tab since you last ran BOSS for the same game. Finally, the <q>Summary</q> tab is also where any global messages supplied in the masterlist and any errors encountered during sorting are displayed.
|
||||
<li>The <q>Details</q> tab lists the plugins BOSS sorted in their new load order, along with any messages BOSS has provided for them. BOSS will also display the plugin's <abbr title="Cyclic Redundancy Check">CRC</abbr> value and extract its version if found in the plugin's description field.
|
||||
<li>The <q>Details</q> tab lists the plugins BOSS sorted in their new load order, along with any messages BOSS has provided for them. BOSS will also display the plugin's <abbr title="Cyclic Redundancy Check">CRC</abbr> value and extract its version if found in the plugin's description field. If BOSS suggests any Bash Tags to be added, they will be displayed in <span style="color:green;">green text</span>, while any Bash Tags to be removed will be displayed in <span style="color:red;">red text</span>.
|
||||
</ul>
|
||||
<p>In addition, there are a few filters that can be used to selectively hide items in the <q>Details</q> tab. These filters are:
|
||||
<ul>
|
||||
@@ -279,10 +279,13 @@ Visual C++ Redistributable for Visual Studio 2013 (x86)</a>. BOSS can be install
|
||||
<li>TES V: Skyrim
|
||||
<li>Fallout 3
|
||||
<li>Fallout: New Vegas
|
||||
<ul>
|
||||
</ul>
|
||||
<tr><td>BOSS Folder Name<td>The sub-folder which BOSS uses to store the game's files in. Each game must be given a unique sub-folder.
|
||||
<tr><td>Master File<td>The game's main master file. This is specified as it must load before all other plugins. Note that Skyrim-based games will always load Skyrim.esm first, so this column must always be set to <q>Skyrim.esm</q> for such games.
|
||||
<tr><td id="settingsMasterlistURL">Online Masterlist URL<td>The URL of the online masterlist that BOSS uses to update its local copy. If set to an empty string, masterlist updating will be skipped.
|
||||
<tr><td id="settingsMasterlistURL">Masterlist Repository URL<td>The URL of the repository that BOSS uses to update its local copy of the masterlist. If set to an empty string, masterlist updating will be skipped.
|
||||
<br><br>
|
||||
Masterlist repositories are <a href="http://git-scm.com/">Git</a> repositories that are configured to allow unauthenticated read access and contain a masterlist file named <code>masterlist.yaml</code> in their root directory. The BOSS team maintains a set of official repositories for the games that BOSS supports by default.
|
||||
<tr><td>Masterlist Repository Branch<td>The branch of the masterlist repository that BOSS should get masterlist updates from.
|
||||
<tr><td>Install Path<td>The path to the game's folder, in which the Data folder lies. Either this or a registry key must be supplied.
|
||||
<tr><td>Install Path Registry Key<td>The registry key, in <code>HKEY_LOCAL_MACHINE</code>, that contains the install path of the game. This is used to obtain the install path if BOSS has no previous record of the game's install path, or BOSS's stored install path is invalid. Either this or an install path must be supplied.
|
||||
</table>
|
||||
@@ -362,7 +365,7 @@ To translate the BOSS application:
|
||||
|
||||
|
||||
<h2 id="credits">Credits</h2>
|
||||
<p>As BOSS is very much a community project, credit is due to a very large number of sources and people outside of the BOSS Development Team. Some people have gone out of their way and provided continuing, expert and detailed help - <b>thank you very much</b>!
|
||||
<p>As BOSS is very much a community project, credit is due to a very large number of sources and people outside of the BOSS Team. Some people have gone out of their way and provided continuing, expert and detailed help - <b>thank you very much</b>!
|
||||
<p>In addition to the above data-related support, the following are credited with application-related support:
|
||||
<ul>
|
||||
<li><a href="http://www.darkcreations.org">Dark Creations</a>: For hosting BOSS's Bugzilla bug tracker that was used by v2 to collect anonymous unrecognised plugin reports. Particular thanks to its administrators Andalaybay and Xae for offering to host the tracker and helping to work around Firefox and Bugzilla bugs encountered.
|
||||
@@ -372,9 +375,8 @@ To translate the BOSS application:
|
||||
<li>Scharesoft: For the installer/uninstaller German translation.
|
||||
<li>Ysne58: For testing and keeping the thread links on BOSS's Nexus site pages up to date.
|
||||
<li>For testing and feedback prior to releases: The Beta Testing & Analysis Guild at <a href="http://tesalliance.org/forums/">TES Alliance</a>, AndalayBay, dAb, dj2005, Dubiousness, hyno111, Invader, matter2003, NightStar, olminator, saebel, Telyn, wiz0floyd, wormheart, Zanderat and zone22.
|
||||
</ul>
|
||||
</ul>
|
||||
<p>BOSS is written in C++ and makes use of the <a href="http://www.davekoelle.com/alphanum.html">Alphanum</a>, <a href="http://www.boost.org/">Boost</a>, <a href="http://github.com/WrinklyNinja/libespm">libespm</a>, <a href="http://github.com/libgit2/libgit2">libgit2</a>, <a href="http://github.com/WrinklyNinja/libloadorder">libloadorder</a>, <a href="http://code.google.com/p/pugixml/">PugiXML</a>, <a href="http://www.wxwidgets.org/">wxWidgets</a> and <a href="http://code.google.com/p/yaml-cpp/">yaml-cpp</a> libraries. BOSS's reports are written in XHTML/CSS/Javascript and make use of <a href="http://github.com/inexorabletash/polyfill">Polyfill.js</a> to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found <a href="licenses/Licenses.txt">here</a>.
|
||||
<p>BOSS is written in C++ and makes use of the <a href="http://www.davekoelle.com/alphanum.html">Alphanum</a>, <a href="http://www.boost.org/">Boost</a>, <a href="http://github.com/WrinklyNinja/libespm">libespm</a>, <a href="http://github.com/libgit2/libgit2">libgit2</a>, <a href="http://github.com/WrinklyNinja/libloadorder">libloadorder</a>, <a href="http://code.google.com/p/pugixml/">PugiXML</a>, <a href="http://www.wxwidgets.org/">wxWidgets</a> and <a href="http://code.google.com/p/yaml-cpp/">yaml-cpp</a> libraries. BOSS's reports are written in HTML5/CSS3/Javascript and make use of <a href="http://github.com/inexorabletash/polyfill">Polyfill.js</a> to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found <a href="licenses/Licenses.txt">here</a>.
|
||||
|
||||
|
||||
<h2 id="project">Project Members</h2>
|
||||
@@ -403,7 +405,7 @@ To translate the BOSS application:
|
||||
<p>Members who have since left the project are credited below:
|
||||
|
||||
<table>
|
||||
<thead><tr><th rowspan="2">Ex-Member<th rowspan="2">Admin<th rowspan="2">Code<th colspan="5">Contributed To Masterlist
|
||||
<thead><tr><th rowspan="2">Ex-Member<th rowspan="2">Admin<th rowspan="2">Code<th colspan="4">Contributed To Masterlist
|
||||
<tr><th>Oblivion<th>Skyrim<th>Fallout 3<th>Fallout: New Vegas
|
||||
<tbody class="teamTableBody">
|
||||
<tr><td>AliTheLord<td><td>✓<td>✓<td>✓<td>✓<td>
|
||||
@@ -437,10 +439,12 @@ To translate the BOSS application:
|
||||
<h2 id="license">License</h2>
|
||||
<p>BOSS is distributed under the <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License v3.0</a>, aside from the documentation, which is distributed under the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License v1.3</a>. The full texts of the licenses are included with BOSS in the accompanying <a href="licenses/GNU%20GPL%20v3.txt">GNU GPL v3.txt</a> and <a href="licenses/GNU%20FDL%20v1.3.txt">GNU FDL v1.3.txt</a> files.
|
||||
|
||||
<p>While the GPL license allows anyone to make derivative works of BOSS, the BOSS Development Team encourages those thinking of doing so to first discuss their reasoning for such an endevour with the Team. It may be that what the derivative work would do differently from BOSS itself is already planned for a future version of BOSS or would be happily integrated into BOSS by the Team, thus avoiding any extra effort by others.
|
||||
<p>The BOSS Team also appeals to the community to avoid the distribution and development of alternative masterlists, as this would only hamper the community effort to create one set of stores for load order information. Any issues with a masterlist are best brought to the attention of the BOSS Team so that we may remedy them ourselves.
|
||||
<p>While the GPL license allows anyone to make derivative works of BOSS, the BOSS Team encourages those thinking of doing so to first discuss their reasoning for such an endeavour with the Team. It may be that what the derivative work would do differently is already planned for a future version of BOSS or would be happily integrated into BOSS, thus avoiding any extra effort by others.
|
||||
|
||||
<p>BOSS has been specifically designed to prevent it being locked into the BOSS Team's official masterlist repositories. Nevertheless, the BOSS Team appeals to the community to avoid the distribution of unofficial masterlists, as this would only hamper the effort to create one set of stores for load order information. Any issues with a masterlist are best brought to the attention of the BOSS Team so that they may be remedied.
|
||||
|
||||
<p>GNU Free Documentation License Version 1.3 Notice:
|
||||
<blockquote>Copyright (C) 2012-2013 WrinklyNinja<br />
|
||||
<blockquote>Copyright (C) 2012—2014 WrinklyNinja<br />
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
@@ -515,7 +519,7 @@ There are three key pieces of information that are used to accurately describe a
|
||||
<tr><td>Masterlist updating<td>BOSS downloads a masterlist and inserts into it version information that is scraped from Google Code.<td>BOSS uses Git to update masterlists, benefiting from a more robust mechanism with support for differential updates (reducing the amount of data that needs to be downloaded) and rolling back revisions in case of parsing errors.
|
||||
<tr><td>Masterlist structure & syntax<td>Uses a custom file format.<td>Uses YAML 1.2, with custom condition string syntax modelled after Python's condition expressions.
|
||||
<tr><td>Userlist structure & syntax<td>Uses a custom file format, different from the masterlist format.<td>Uses the same format and syntax as the masterlist.
|
||||
<tr><td>Morrowind support<td>Technically supports Morrowind, though its masterlist is near-empty.<td>Does not support Morrowind.
|
||||
<tr><td>Morrowind support<td>Technically supports Morrowind, though its masterlist is near-empty.<td>Does not support Morrowind. Morrowind mod users are advised to use <a href="https://code.google.com/p/mlox/wiki/Mlox">mlox</a>.
|
||||
<tr><td>BOSS file locations<td>All BOSS's files are stored in the BOSS folder first installed.<td>BOSS stores any files it creates (reports, masterlists, userlists, settings) in the <code>%LOCALAPPDATA%\BOSS</code> folder.
|
||||
<tr><td>Game selection on first run.<td>BOSS asks the user to select a game from a list.<td>BOSS selects the first game detected.
|
||||
<tr><td>File CRC calculation<td>File CRC calculation is optional.<td>File CRC calculation is always-on, as it no longer presents any significant additional performance impact.
|
||||
@@ -554,13 +558,13 @@ There are three key pieces of information that are used to accurately describe a
|
||||
</ul>
|
||||
<tr><td>BOSS Log plugin submission<td>BOSS allows users to submit unrecognised plugins from the HTML BOSS Log.<td>As there is no longer any such thing as an unrecognised plugin, the submission system has been removed.
|
||||
<tr><td>BOSS Log display customisation<td>BOSS allows users to customise the colour scheme used by the BOSS Log.<td>BOSS does not allow customisation of the colour scheme used by the BOSS report. However, the styling is now provided by a static stylesheet instead of being dynamically generated within the report every time BOSS is run, so this static stylesheet can be edited to achieve the same effect.
|
||||
<tr><td>Command line interface<td>BOSS provides a command line interface.<td>BOSS does not provide a command line interface, as the greater need for user interaction makes it unweildy.
|
||||
<tr><td>Command line interface<td>BOSS provides a command line interface.<td>BOSS does not provide a command line interface, as the greater need for user interaction makes it unwieldy.
|
||||
</table>
|
||||
|
||||
<h2 id="history">Version History</h2>
|
||||
<p>Only the history of version 3 is given, as changes prior to version 3 are irrelevant due to the complete redesign that occurred. The masterlists are updated far too frequently for their changes to be concisely recorded here, but a full history of changes to them may be viewed by browsing the GitHub repositories.
|
||||
|
||||
<h3>3.0.0 - <i>Day Month 2013</i></h3>
|
||||
<h3>3.0.0 - <i>Day Month 2014</i></h3>
|
||||
<ul>
|
||||
<li>BOSS completely redesigned from scratch and almost completely rewritten. See <a href="#appendix-diff">Differences between BOSS v2 and v3</a> for an overview of the changes.
|
||||
</ul>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 29 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 25 KiB |
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: BOSS v3.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-26 11:41-0000\n"
|
||||
"PO-Revision-Date: 2014-01-27 15:05+0600\n"
|
||||
"PO-Revision-Date: 2014-02-01 23:09+0600\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -273,7 +273,7 @@ msgstr "BOSS: Добавить сообщение"
|
||||
|
||||
#: gui/editor.cpp:443
|
||||
msgid "Error: No content specified. Row will not be added."
|
||||
msgstr "Ошибка: Не указано содержимое. Строка не будет добавлена."
|
||||
msgstr "Ошибка: Не указано содержимое. Строка не будет добавлена."
|
||||
|
||||
#: gui/editor.cpp:444 gui/editor.cpp:526 gui/editor.cpp:1122
|
||||
#: gui/editor.cpp:1137 gui/main.cpp:164 gui/main.cpp:181 gui/main.cpp:194
|
||||
@@ -573,10 +573,10 @@ msgid ""
|
||||
"load order it uses. A side-effect is that any subscribed Steam Workshop mods "
|
||||
"will be re-downloaded by Steam. Do you wish to continue?"
|
||||
msgstr ""
|
||||
"Эта возможность предоставлена для того, чтобы моддеры, использующие Creation "
|
||||
"Kit, могли установить там используемый ими порядок загрузки. Обратная "
|
||||
"сторона этого то, что любые подписанные в Steam Workshop моды могут быть "
|
||||
"заново загружены с помощью Steam. Вы желаете продолжить?"
|
||||
"Эта возможность предоставлена для того, чтобы авторы модов, использующие "
|
||||
"Creation Kit, могли установить там используемый ими порядок загрузки. "
|
||||
"Обратная сторона этого то, что любые, подписанные в Steam Workshop моды, "
|
||||
"могут быть заново загружены с помощью Steam. Вы желаете продолжить?"
|
||||
|
||||
#: gui/main.cpp:961
|
||||
msgid "BOSS: Warning"
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2013 WrinklyNinja
|
||||
Copyright (C) 2013-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2013 WrinklyNinja
|
||||
Copyright (C) 2013-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
@@ -18,6 +18,28 @@
|
||||
# docs/BOSS Metadata Syntax.html
|
||||
# docs/BOSS Readme.html
|
||||
|
||||
# BOSS
|
||||
#
|
||||
# A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
#
|
||||
# Copyright (C) 2013-2014 WrinklyNinja
|
||||
#
|
||||
# This file is part of BOSS.
|
||||
#
|
||||
# BOSS is free software: you can redistribute
|
||||
# it and/or modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation, either version 3 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# BOSS is distributed in the hope that it will
|
||||
# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with BOSS. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
import sys
|
||||
import os
|
||||
import shutil
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
+21
-10
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
@@ -67,28 +67,32 @@ namespace boss {
|
||||
bossFolderName = "Oblivion";
|
||||
_masterFile = "Oblivion.esm";
|
||||
espm_settings = espm::Settings("tes4");
|
||||
_masterlistURL = "https://github.com/boss-developers/boss-oblivion.git";
|
||||
_repositoryURL = "https://github.com/boss-developers/boss-oblivion.git";
|
||||
_repositoryBranch = "gh-pages";
|
||||
} else if (Id() == g_game_tes5) {
|
||||
_name = "TES V: Skyrim";
|
||||
registryKey = "Software\\Bethesda Softworks\\Skyrim\\Installed Path";
|
||||
bossFolderName = "Skyrim";
|
||||
_masterFile = "Skyrim.esm";
|
||||
espm_settings = espm::Settings("tes5");
|
||||
_masterlistURL = "https://github.com/boss-developers/boss-skyrim.git";
|
||||
_repositoryURL = "https://github.com/boss-developers/boss-skyrim.git";
|
||||
_repositoryBranch = "gh-pages";
|
||||
} else if (Id() == g_game_fo3) {
|
||||
_name = "Fallout 3";
|
||||
registryKey = "Software\\Bethesda Softworks\\Fallout3\\Installed Path";
|
||||
bossFolderName = "Fallout3";
|
||||
_masterFile = "Fallout3.esm";
|
||||
espm_settings = espm::Settings("fo3");
|
||||
_masterlistURL = "https://github.com/boss-developers/boss-fallout3.git";
|
||||
_repositoryURL = "https://github.com/boss-developers/boss-fallout3.git";
|
||||
_repositoryBranch = "gh-pages";
|
||||
} else if (Id() == g_game_fonv) {
|
||||
_name = "Fallout: New Vegas";
|
||||
registryKey = "Software\\Bethesda Softworks\\FalloutNV\\Installed Path";
|
||||
bossFolderName = "FalloutNV";
|
||||
_masterFile = "FalloutNV.esm";
|
||||
espm_settings = espm::Settings("fonv");
|
||||
_masterlistURL = "https://github.com/boss-developers/boss-fallout-new-vegas.git";
|
||||
_repositoryURL = "https://github.com/boss-developers/boss-fallout-new-vegas.git";
|
||||
_repositoryBranch = "gh-pages";
|
||||
} else {
|
||||
BOOST_LOG_TRIVIAL(error) << "Invalid game ID supplied.";
|
||||
throw error(error::invalid_args, lc::translate("Invalid game ID supplied.").str());
|
||||
@@ -99,7 +103,7 @@ namespace boss {
|
||||
}
|
||||
|
||||
Game& Game::SetDetails(const std::string& name, const std::string& masterFile,
|
||||
const std::string& url, const std::string& path, const std::string& registry) {
|
||||
const std::string& repositoryURL, const std::string& repositoryBranch, const std::string& path, const std::string& registry) {
|
||||
|
||||
BOOST_LOG_TRIVIAL(trace) << "Setting new details for game: " << _name;
|
||||
|
||||
@@ -109,8 +113,11 @@ namespace boss {
|
||||
if (!masterFile.empty())
|
||||
_masterFile = masterFile;
|
||||
|
||||
if (!url.empty())
|
||||
_masterlistURL = url;
|
||||
if (!repositoryURL.empty())
|
||||
_repositoryURL = repositoryURL;
|
||||
|
||||
if (!repositoryBranch.empty())
|
||||
_repositoryBranch = repositoryBranch;
|
||||
|
||||
if (!path.empty())
|
||||
gamePath = path;
|
||||
@@ -201,8 +208,12 @@ namespace boss {
|
||||
return registryKey;
|
||||
}
|
||||
|
||||
std::string Game::URL() const {
|
||||
return _masterlistURL;
|
||||
std::string Game::RepoURL() const {
|
||||
return _repositoryURL;
|
||||
}
|
||||
|
||||
std::string Game::RepoBranch() const {
|
||||
return _repositoryBranch;
|
||||
}
|
||||
|
||||
fs::path Game::GamePath() const {
|
||||
|
||||
+7
-4
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
@@ -47,7 +47,8 @@ namespace boss {
|
||||
Game(const unsigned int baseGameCode, const std::string& bossFolder = "");
|
||||
|
||||
Game& SetDetails(const std::string& name, const std::string& masterFile,
|
||||
const std::string& url, const std::string& path, const std::string& registry);
|
||||
const std::string& repositoryURL, const std::string& repositoryBranch,
|
||||
const std::string& path, const std::string& registry);
|
||||
Game& SetPath(const std::string& path); //Used by API.
|
||||
Game& Init();
|
||||
|
||||
@@ -60,7 +61,8 @@ namespace boss {
|
||||
std::string FolderName() const;
|
||||
std::string Master() const;
|
||||
std::string RegistryKey() const;
|
||||
std::string URL() const;
|
||||
std::string RepoURL() const;
|
||||
std::string RepoBranch() const;
|
||||
|
||||
|
||||
boost::filesystem::path GamePath() const;
|
||||
@@ -89,7 +91,8 @@ namespace boss {
|
||||
std::string registryKey;
|
||||
|
||||
std::string bossFolderName;
|
||||
std::string _masterlistURL;
|
||||
std::string _repositoryURL;
|
||||
std::string _repositoryBranch;
|
||||
|
||||
boost::filesystem::path gamePath; //Path to the game's folder.
|
||||
boost::unordered_set<std::string> activePlugins; //Holds lowercased strings.
|
||||
|
||||
+19
-22
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2013 WrinklyNinja
|
||||
Copyright (C) 2013-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace boss {
|
||||
node = head.append_child();
|
||||
node.set_name("meta");
|
||||
node.append_attribute("http-equiv").set_value("X-UA-Compatible");
|
||||
node.append_attribute("content").set_value("IE=9");
|
||||
node.append_attribute("content").set_value("IE=edge");
|
||||
|
||||
node = head.append_child();
|
||||
node.set_name("meta");
|
||||
@@ -202,7 +202,7 @@ namespace boss {
|
||||
int messageNo,
|
||||
int warnNo,
|
||||
int errorNo,
|
||||
const std::list<Message>& messages) {
|
||||
std::list<Message>& messages) {
|
||||
|
||||
BOOST_LOG_TRIVIAL(trace) << "Appending summary tab to BOSS report.";
|
||||
|
||||
@@ -256,10 +256,12 @@ namespace boss {
|
||||
|
||||
if (!hasChanged) {
|
||||
BOOST_LOG_TRIVIAL(info) << "No changes in the BOSS report details tab since the last run.";
|
||||
pugi::xml_node note = summary.append_child();
|
||||
/*pugi::xml_node note = summary.append_child();
|
||||
note.set_name("div");
|
||||
note.append_attribute("id").set_value("noChanges");
|
||||
note.text().set(boost::locale::translate("No change in details since last run.").str().c_str());
|
||||
*/
|
||||
messages.push_front(boss::Message(boss::g_message_say, "There have been no changes in the Details tab since BOSS was last run."));
|
||||
}
|
||||
|
||||
if (!messages.empty()) {
|
||||
@@ -400,7 +402,7 @@ namespace boss {
|
||||
}
|
||||
|
||||
xml_string_writer writer;
|
||||
details.print(writer, "\t", pugi::format_default | pugi::format_no_declaration);
|
||||
details.print(writer, "", pugi::format_default | pugi::format_no_declaration | pugi::format_raw);
|
||||
|
||||
return writer.result != oldDetails;
|
||||
}
|
||||
@@ -409,7 +411,7 @@ namespace boss {
|
||||
const std::string& oldDetails,
|
||||
const std::string& masterlistVersion,
|
||||
bool masterlistUpdateEnabled,
|
||||
const std::list<Message>& messages,
|
||||
std::list<Message>& messages,
|
||||
const std::list<Plugin>& plugins,
|
||||
int& pluginMessageNo
|
||||
) {
|
||||
@@ -453,7 +455,7 @@ namespace boss {
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideVersionNumbers");
|
||||
input.append_attribute("data-class").set_value("version");
|
||||
input.text().set(boost::locale::translate("Hide Version Numbers").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide Version Numbers").str().c_str());
|
||||
|
||||
label = filters.append_child();
|
||||
label.set_name("label");
|
||||
@@ -462,7 +464,7 @@ namespace boss {
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideCRCs");
|
||||
input.append_attribute("data-class").set_value("crc");
|
||||
input.text().set(boost::locale::translate("Hide CRCs").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide CRCs").str().c_str());
|
||||
|
||||
label = filters.append_child();
|
||||
label.set_name("label");
|
||||
@@ -471,7 +473,7 @@ namespace boss {
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideBashTags");
|
||||
input.append_attribute("data-class").set_value("tag");
|
||||
input.text().set(boost::locale::translate("Hide Bash Tag Suggestions").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide Bash Tag Suggestions").str().c_str());
|
||||
|
||||
label = filters.append_child();
|
||||
label.set_name("label");
|
||||
@@ -479,7 +481,7 @@ namespace boss {
|
||||
input.set_name("input");
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideNotes");
|
||||
input.text().set(boost::locale::translate("Hide Notes").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide Notes").str().c_str());
|
||||
|
||||
label = filters.append_child();
|
||||
label.set_name("label");
|
||||
@@ -487,7 +489,7 @@ namespace boss {
|
||||
input.set_name("input");
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideDoNotCleanMessages");
|
||||
input.text().set(boost::locale::translate("Hide 'Do Not Clean' Messages").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide 'Do Not Clean' Messages").str().c_str());
|
||||
|
||||
label = filters.append_child();
|
||||
label.set_name("label");
|
||||
@@ -495,7 +497,7 @@ namespace boss {
|
||||
input.set_name("input");
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideAllPluginMessages");
|
||||
input.text().set(boost::locale::translate("Hide All Plugin Messages").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide All Plugin Messages").str().c_str());
|
||||
|
||||
label = filters.append_child();
|
||||
label.set_name("label");
|
||||
@@ -503,7 +505,7 @@ namespace boss {
|
||||
input.set_name("input");
|
||||
input.append_attribute("type").set_value("checkbox");
|
||||
input.append_attribute("id").set_value("hideMessagelessPlugins");
|
||||
input.text().set(boost::locale::translate("Hide Messageless Plugins").str().c_str());
|
||||
label.text().set(boost::locale::translate("Hide Messageless Plugins").str().c_str());
|
||||
|
||||
pugi::xml_node span;
|
||||
|
||||
@@ -538,7 +540,7 @@ namespace boss {
|
||||
}
|
||||
|
||||
inline void GenerateReport(const boost::filesystem::path& file,
|
||||
const std::list<Message>& messages,
|
||||
std::list<Message>& messages,
|
||||
const std::list<Plugin>& plugins,
|
||||
const std::string& oldDetails,
|
||||
const std::string& masterlistVersion,
|
||||
@@ -560,12 +562,6 @@ namespace boss {
|
||||
|
||||
AppendScripts(body);
|
||||
//PugiXML's save_file doesn't handle Unicode paths right (it can't open them right), so use a stream instead.
|
||||
/*
|
||||
if (!doc.save_file(file.c_str(), "\t", pugi::format_default | pugi::format_no_declaration | pugi::format_raw)) {
|
||||
BOOST_LOG_TRIVIAL(error) << "Could not write BOSS report to: " << file;
|
||||
throw boss::error(boss::error::path_write_fail, boost::locale::translate("Could not write BOSS report.").str());
|
||||
}
|
||||
*/
|
||||
boost::filesystem::path outpath(file);
|
||||
boss::ofstream out(outpath);
|
||||
doc.save(out, "\t", pugi::format_default | pugi::format_no_declaration | pugi::format_raw);
|
||||
@@ -593,7 +589,7 @@ namespace boss {
|
||||
games.push_back(Game(g_game_tes5));
|
||||
games.push_back(Game(g_game_fo3));
|
||||
games.push_back(Game(g_game_fonv));
|
||||
games.push_back(Game(g_game_tes4, "Nehrim").SetDetails("Nehrim - At Fate's Edge", "Nehrim.esm", "https://github.com/boss-developers/boss-oblivion.git", "", "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Nehrim - At Fate's Edge_is1"));
|
||||
games.push_back(Game(g_game_tes4, "Nehrim").SetDetails("Nehrim - At Fate's Edge", "Nehrim.esm", "https://github.com/boss-developers/boss-oblivion.git", "gh-pages", "", "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Nehrim - At Fate's Edge_is1"));
|
||||
|
||||
root["Games"] = games;
|
||||
|
||||
@@ -643,7 +639,8 @@ namespace YAML {
|
||||
<< Key << "folder" << Value << rhs.FolderName()
|
||||
<< Key << "name" << Value << rhs.Name()
|
||||
<< Key << "master" << Value << rhs.Master()
|
||||
<< Key << "url" << Value << rhs.URL()
|
||||
<< Key << "repo" << Value << rhs.RepoURL()
|
||||
<< Key << "branch" << Value << rhs.RepoBranch()
|
||||
<< Key << "path" << Value << rhs.GamePath().string()
|
||||
<< Key << "registry" << Value << rhs.RegistryKey();
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A plugin load order optimiser for games that use the esp/esm plugin system.
|
||||
|
||||
Copyright (C) 2012-2013 WrinklyNinja
|
||||
Copyright (C) 2012-2014 WrinklyNinja
|
||||
|
||||
This file is part of BOSS.
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user