Some fixes and optimisations.

Loading was getting a bit laggy, now back down to ~0.25s.
This commit is contained in:
WrinklyNinja
2014-07-12 15:22:08 +01:00
parent 6ce2752e15
commit dff7d65ca5
3 changed files with 122 additions and 116 deletions
+65 -60
View File
@@ -170,20 +170,20 @@ function showMessageDialog(title, text) {
clone.id = 'modalDialog';
clone.children[0].className += ' warn';
clone.getElementsByTagName('span')[0].className += ' warn';
clone.children[1].textContent = title;
clone.children[2].textContent = text;
clone.getElementsByTagName('h1')[0].textContent = title;
clone.getElementsByTagName('p')[0].textContent = text;
var overlay = document.getElementById('overlay');
overlay.removeEventListener('click', hideDialog, false);
showElement(overlay);
clone.children[3].children[0].setAttribute('data-dialog', clone.id);
clone.children[3].children[0].addEventListener('click', hideDialog, false);
clone.getElementsByClassName('accept')[0].setAttribute('data-dialog', clone.id);
clone.getElementsByClassName('accept')[0].addEventListener('click', hideDialog, false);
clone.children[3].children[1].setAttribute('data-dialog', clone.id);
clone.children[3].children[1].addEventListener('click', hideDialog, false);
clone.getElementsByClassName('cancel')[0].setAttribute('data-dialog', clone.id);
clone.getElementsByClassName('cancel')[0].addEventListener('click', hideDialog, false);
}
function showMessageBox(type, title, text) {
@@ -238,12 +238,11 @@ function processButtonClick(evt) {
} else if (action == 'redate-plugins') {
redatePlugins();
} else if (action == 'clear-metadata') {
clearMetadata(evt.target.parentNode.parentNode.parentNode.parentNode.children[0].textContent);
clearMetadata(evt.target.getAttribute('data-target'));
} else if (action == 'wipe-userlist') {
clearAllMetadata();
} else if (action == 'show-editor') {
var section = evt.target.parentElement.parentElement.parentElement.parentElement.parentElement;
section.classList.toggle('flip');
document.getElementById(evt.target.getAttribute('data-target')).classList.toggle('flip');
}
}
function toggleInputRO(evt) {
@@ -263,10 +262,10 @@ function addNewGameRow(evt) {
inputs[i].removeAttribute('readonly');
inputs[i].addEventListener('dblclick', toggleInputRO, false);
}
clone.querySelector('.name').placeholder = '';
showElement(clone.querySelector('.type'));
showElement(clone.querySelector('.fa-trash-o'));
clone.querySelector('.fa-trash-o').addEventListener('click', removeGameRow, false);
clone.getElementsByClassName('name')[0].placeholder = '';
showElement(clone.getElementsByClassName('type')[0]);
showElement(clone.getElementsByClassName('fa-trash-o')[0]);
clone.getElementsByClassName('fa-trash-o')[0].addEventListener('click', removeGameRow, false);
evt.currentTarget.parentElement.insertBefore(clone, evt.currentTarget);
}
function setupEventHandlers() {
@@ -292,13 +291,13 @@ function setupEventHandlers() {
elements[i].addEventListener('click', processButtonClick, false);
}
/* Set up handlers for game table. */
elements = document.getElementById('gameTable').querySelectorAll('tbody > tr');
elements = document.getElementById('gameTable').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for (var i = 0; i < elements.length - 1; ++i) {
var inputs = elements[i].getElementsByTagName('input');
for (var j = 0; j < inputs.length; ++j) {
inputs[j].addEventListener('dblclick', toggleInputRO, false);
}
elements[i].querySelector('.fa-trash-o').addEventListener('click', removeGameRow, false);
elements[i].getElementsByClassName('fa-trash-o')[0].addEventListener('click', removeGameRow, false);
}
elements[elements.length - 1].addEventListener('dblclick', addNewGameRow, false);
}
@@ -345,8 +344,8 @@ function processURLParams() {
pluginsNav.appendChild(clone);
clone = pluginsNav.lastElementChild;
clone.children[3].textContent = data.plugins[i].name;
clone.children[3].href = '#' + data.plugins[i].name.replace(/\s+/g, '');
clone.getElementsByTagName('a')[0].textContent = data.plugins[i].name;
clone.getElementsByTagName('a')[0].href = '#' + data.plugins[i].name.replace(/\s+/g, '');
if (data.plugins[i].isDummy) {
clone.getElementsByClassName('dummyPlugin')[0].className += ' fa fa-eye-slash';
@@ -365,10 +364,10 @@ function processURLParams() {
content = document.getElementById('pluginSection').content;
clone = document.importNode(content, true);
pluginsList.appendChild(clone);
var section = pluginsList.lastElementChild;
clone = pluginsList.lastElementChild;
section.setAttribute('data-active', data.plugins[i].isActive);
section.id = data.plugins[i].name.replace(/\s+/g, '');
clone.setAttribute('data-active', data.plugins[i].isActive);
clone.id = data.plugins[i].name.replace(/\s+/g, '');
if (data.plugins[i].isActive) {
++activePluginNo;
@@ -378,45 +377,48 @@ function processURLParams() {
++dirtyPluginNo;
}
section.getElementsByTagName('h1')[0].textContent = data.plugins[i].name;
section.getElementsByTagName('h1')[1].textContent = data.plugins[i].name;
clone.getElementsByTagName('h1')[0].textContent = data.plugins[i].name;
clone.getElementsByTagName('h1')[1].textContent = data.plugins[i].name;
section.getElementsByClassName('crc')[0].textContent = 'CRC: ' + data.plugins[i].crc;
section.getElementsByClassName('crc')[1].textContent = 'CRC: ' + data.plugins[i].crc;
clone.getElementsByClassName('crc')[0].textContent = 'CRC: ' + data.plugins[i].crc;
clone.getElementsByClassName('crc')[1].textContent = 'CRC: ' + data.plugins[i].crc;
if (data.plugins[i].isDummy) {
showElement(section.getElementsByClassName('dummyPlugin')[0]);
showElement(clone.getElementsByClassName('dummyPlugin')[0]);
}
if (data.plugins[i].loadsBSA) {
showElement(section.getElementsByClassName('loadsBSA')[0]);
showElement(clone.getElementsByClassName('loadsBSA')[0]);
}
if (data.plugins[i].hasUserEdits) {
/* This won't actually be handled anything like this in the real data implementation. */
showElement(section.getElementsByClassName('hasUserEdits')[0]);
showElement(clone.getElementsByClassName('hasUserEdits')[0]);
}
if (data.plugins[i].version) {
section.getElementsByClassName('crc')[0].textContent = data.plugins[i].version;
section.getElementsByClassName('crc')[1].textContent = data.plugins[i].version;
clone.getElementsByClassName('version')[0].textContent = 'Version: ' + data.plugins[i].version;
clone.getElementsByClassName('version')[1].textContent = 'Version: ' + data.plugins[i].version;
} else {
section.getElementsByClassName('version')[0].className += ' hidden';
section.getElementsByClassName('version')[1].className += ' hidden';
hideElement(clone.getElementsByClassName('version')[0]);
hideElement(clone.getElementsByClassName('version')[1]);
}
if (data.plugins[i].tagsAdd && data.plugins[i].tagsAdd.length != 0) {
section.querySelector('.tag.add').textContent = data.plugins[i].tagsAdd.join(', ');
clone.getElementsByClassName('tag add')[0].textContent = data.plugins[i].tagsAdd.join(', ');
} else {
section.querySelector('.tag.add').className += ' hidden';
hideElement(clone.getElementsByClassName('tag add')[0]);
}
if (data.plugins[i].tagRemove && data.plugins[i].tagRemove.length != 0) {
section.querySelector('.tag.remove').textContent = data.plugins[i].tagsRemove.join(', ');
clone.getElementsByClassName('tag remove')[0].textContent = data.plugins[i].tagsRemove.join(', ');
} else {
section.querySelector('.tag.remove').className += ' hidden';
hideElement(clone.getElementsByClassName('tag remove')[0]);
}
clone.getElementsByClassName('editMetadata')[0].setAttribute('data-target', data.plugins[i].name);
clone.getElementsByClassName('copyMetadata')[0].setAttribute('data-target', data.plugins[i].name);
clone.getElementsByClassName('clearMetadata')[0].setAttribute('data-target', clone.id);
if (data.plugins[i].messages && data.plugins[i].messages.length != 0) {
for (var j = 0; j < data.plugins[i].messages.length; ++j) {
@@ -424,7 +426,7 @@ function processURLParams() {
messageLi.className = data.plugins[i].messages[j].type;
/* innerHTML is open to abuse, but for hyperlinking it's too useful. */
messageLi.innerHTML = data.plugins[i].messages[j].content;
section.getElementsByTagName('ul')[0].appendChild(messageLi);
clone.getElementsByTagName('ul')[0].appendChild(messageLi);
if (messageLi.className == 'warn') {
warnMessageNo++;
@@ -434,7 +436,7 @@ function processURLParams() {
totalMessageNo++;
}
} else {
section.getElementsByTagName('ul')[0].className += ' hidden';
clone.getElementsByTagName('ul')[0].className += ' hidden';
}
}
document.getElementById('filterTotalMessageNo').textContent = totalMessageNo;
@@ -454,10 +456,19 @@ function processURLParams() {
}
}
/* Fill in game row template's game type options. */
var select = document.getElementById('gameRow').content.querySelector('.name');
for (var j = 0; j < data.gameTypes.length; ++j) {
var option = document.createElement('option');
option.value = data.gameTypes[j];
option.textContent = data.gameTypes[j];
select.appendChild(option);
}
/* Now fill game lists/table. */
var gameSelect = document.getElementById('defaultGameSelect');
var gameMenu = document.getElementById('gameMenu');
var gameTable = document.getElementById('gameTable');
var gameTableBody = document.getElementById('gameTable').getElementsByTagName('tbody')[0];
for (var i = 0; i < data.games.length; ++i) {
var option = document.createElement('option');
option.value = data.games[i].folder;
@@ -471,32 +482,26 @@ function processURLParams() {
gameMenu.appendChild(li);
var content = document.getElementById('gameRow').content;
for (var j = 0; j < data.gameTypes.length; ++j) {
var option = document.createElement('option');
option.value = data.gameTypes[j];
option.textContent = data.gameTypes[j];
content.querySelector('.type').appendChild(option);
}
var clone = document.importNode(content, true);
gameTable.appendChild(clone);
clone = gameTable.lastElementChild;
clone.querySelector('.name').value = data.games[i].name;
clone.querySelector('.type').value = data.games[i].type;
clone.querySelector('.folder').value = data.games[i].folder;
clone.querySelector('.masterFile').value = data.games[i].masterFile;
clone.querySelector('.url').value = data.games[i].url;
clone.querySelector('.branch').value = data.games[i].branch;
clone.querySelector('.path').value = data.games[i].path;
clone.querySelector('.registryKey').value = data.games[i].registryKey;
gameTableBody.appendChild(clone);
clone = gameTableBody.lastElementChild;
clone.getElementsByClassName('name')[0].value = data.games[i].name;
clone.getElementsByClassName('type')[0].value = data.games[i].type;
clone.getElementsByClassName('folder')[0].value = data.games[i].folder;
clone.getElementsByClassName('masterFile')[0].value = data.games[i].masterFile;
clone.getElementsByClassName('url')[0].value = data.games[i].url;
clone.getElementsByClassName('branch')[0].value = data.games[i].branch;
clone.getElementsByClassName('path')[0].value = data.games[i].path;
clone.getElementsByClassName('registryKey')[0].value = data.games[i].registryKey;
}
/* Add row for creating new rows. */
var content = document.getElementById('gameRow').content;
var clone = document.importNode(content, true);
gameTable.appendChild(clone);
clone = gameTable.lastElementChild;
clone.querySelector('.name').placeholder = 'Add new row...';
hideElement(clone.querySelector('.type'));
hideElement(clone.querySelector('.fa-trash-o'));
gameTableBody.appendChild(clone);
clone = gameTableBody.lastElementChild;
clone.getElementsByClassName('name')[0].placeholder = 'Add new row...';
hideElement(clone.getElementsByClassName('type')[0]);
hideElement(clone.getElementsByClassName('fa-trash-o')[0]);
/* Now fill in language options. */
var langSelect = document.getElementById('languageSelect');
+16 -15
View File
@@ -66,13 +66,13 @@
</template>
<template id="pluginNav">
<li>
<span class="dummyPlugin " title="Dummy Plugin"></span>
<span class="dummyPlugin" title="Dummy Plugin"></span>
<span class="loadsBSA" title="Loads BSA"></span>
<span class="hasUserEdits" title="Has User Metadata"></span>
<a href=""></a>
</template>
<template id="pluginSection">
<section>
<section id="" data-active="">
<div class="front">
<h1></h1>
<div class="crc"></div>
@@ -86,12 +86,12 @@
<li class="dummyPlugin fa fa-eye-slash hidden" title="Dummy Plugin">
<li class="loadsBSA fa fa-paperclip hidden" title="Loads BSA">
<li class="hasUserEdits fa fa-user hidden" title="Has User Metadata">
<li class=" fa fa-ellipsis-v fa-lg pluginMenu" data-action="show-menu">
<li class="fa fa-ellipsis-v fa-lg pluginMenu" data-action="show-menu">
<li class="hidden">
<ol class="menu">
<li data-action="show-editor"><span class="fa fa-pencil fa-fw"></span> Edit Metadata
<li data-action="copy-metadata"><span class="fa fa-copy fa-fw"></span> Copy Metadata As Text
<li data-action="clear-metadata"><span class="fa fa-trash-o fa-fw"></span> Clear User Metadata
<li class="editMetadata" data-action="show-editor" data-target=""><span class="fa fa-pencil fa-fw"></span> Edit Metadata
<li class="copyMetadata" data-action="copy-metadata" data-target=""><span class="fa fa-copy fa-fw"></span> Copy Metadata As Text
<li class="clearMetadata" data-action="clear-metadata" data-target=""><span class="fa fa-trash-o fa-fw"></span> Clear User Metadata
</ol>
</ol>
</div>
@@ -99,12 +99,12 @@
<h1></h1>
<div class="crc"></div>
<div class="version"></div>
<input type="checkbox" id="editorEnableEdits">
<input type="checkbox" class="editorEnableEdits">
<label for="editorEnableEdits">Enable Edits</label>
<label for="editorPriorityValue">Priority</label>
<input type="number" max="999999" min="-999999" step="1">
<label for="editorGlobalPriority">Compare priority against all other plugins</label>
<input type="checkbox" id="editorGlobalPriority">
<input type="checkbox" class="editorGlobalPriority">
<div class="tableTabs">
<span class="selected" data-for="loadAfterTable">Load After</span><span data-for="reqTable">Requirements</span><span data-for="incTable">Incompatibilities</span><span data-for="messageTable">Messages</span><span data-for="tagsTable">Bash Tags</span><span data-for="dirtyTable">Dirty Info</span>
<table class="loadAfterTable">
@@ -145,9 +145,9 @@
</table>
</div>
<label for="editorShowOnlyConflicts">Show Only Conflicts</label>
<input type="checkbox" id="editorShowOnlyConflicts">
<input type="checkbox" class="editorShowOnlyConflicts">
<label for="editorSimpleView">Simple View</label>
<input type="checkbox" id="editorSimpleView">
<input type="checkbox" class="editorSimpleView">
<button>Apply</button>
<button>Cancel</button>
</div>
@@ -155,11 +155,12 @@
</template>
<template id="messageDialog">
<div class="message dialog">
<span class="fa fa-exclamation-circle"></span><h1></h1>
<span class="fa fa-exclamation-circle"></span>
<h1></h1>
<p></p>
<div class="buttons">
<button>Yes</button>
<button>Cancel</button>
<button class="accept">Yes</button>
<button class="cancel">Cancel</button>
</div>
</div>
</template>
@@ -291,10 +292,10 @@ along with LOOT. If not, see &lt;http://www.gnu.org/licenses/&gt;.
<option value="3">High</option>
</select><br>
<!-- Need to add an editable multi-column game list here. -->
<table>
<table id="gameTable">
<thead>
<tr><th>Name<th>Base Game<th>LOOT Folder<th>Master File<th>Masterlist Repository URL<th>Masterlist Repository Branch<th>Install Path<th>Install Path Registry Key<th>
<tbody id="gameTable">
<tbody>
<!-- Game rows go here. -->
</table>
<p>Language and game changes will be applied after LOOT is restarted.
+41 -41
View File
@@ -25,7 +25,7 @@ var data = {
"loadsBSA": true,
"isActive": false,
"crc": "29D2C7DF",
"version": "Version: 2.0.0a",
"version": "2.0.0a",
"tagsAdd": ["Delev",
"Relev"]
},
@@ -33,7 +33,7 @@ var data = {
"name": "Unofficial Dawnguard Patch.esp",
"isActive": false,
"crc": "FF134167",
"version": "Version: 2.0.0b",
"version": "2.0.0b",
"tagsAdd": ["Delev",
"Relev"], "messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Dawnguard.esm\" to be installed, but it is missing."}]
@@ -42,7 +42,7 @@ var data = {
"name": "Unofficial Hearthfire Patch.esp",
"isActive": false,
"crc": "F913F25E",
"version": "Version: 2.0.0",
"version": "2.0.0",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"HearthFires.esm\" to be installed, but it is missing."}]
},
@@ -59,7 +59,7 @@ var data = {
"loadsBSA": true,
"isActive": true,
"crc": "DA46F3C8",
"version": "Version: 2.0.0",
"version": "2.0.0",
"tagsAdd": ["Delev"]
},
{
@@ -67,7 +67,7 @@ var data = {
"loadsBSA": true,
"isActive": false,
"crc": "6629BE21",
"version": "Version: 1.10",
"version": "1.10",
"messages": [{"type": "warn",
"content": "Warning: This plugin is incompatible with \"Dragonborn.esm\", but both are present."}]
},
@@ -75,7 +75,7 @@ var data = {
"name": "EnchantingAwakened.esp",
"isActive": false,
"crc": "4E2FE0C1",
"version": "Version: 1.60"
"version": "1.60"
},
{
"name": "SPIKE.esm",
@@ -97,7 +97,7 @@ var data = {
"name": "Cutting Room Floor.esp",
"isActive": false,
"crc": "1BA027FF",
"version": "Version: 1.0.2",
"version": "1.0.2",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Unofficial Skyrim Patch.esp\" to be active, but it is inactive."}]
},
@@ -105,13 +105,13 @@ var data = {
"name": "Run For Your Lives.esp",
"isActive": false,
"crc": "1931B1F5",
"version": "Version: 1.2.3"
"version": "1.2.3"
},
{
"name": "WATER DB.esp",
"isActive": false,
"crc": "1765B1A6",
"version": "Version: 1.87"
"version": "1.87"
},
{
"name": "MorePP.esp",
@@ -157,7 +157,7 @@ var data = {
"name": "BFSEffects.esp",
"isActive": false,
"crc": "543D56D4",
"version": "Version: 3.6",
"version": "3.6",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Dawnguard.esm\" to be installed, but it is missing."}]
},
@@ -172,7 +172,7 @@ var data = {
"name": "AMatterOftime.esp",
"isActive": false,
"crc": "75025A7E",
"version": "Version: 1.00"
"version": "1.00"
},
{
"name": "STEP-part5.esp",
@@ -287,7 +287,7 @@ var data = {
"name": "fFastTravelSpeedMult_4.esp",
"isActive": false,
"crc": "CC1A0B4E",
"version": "Version: 1.0"
"version": "1.0"
},
{
"name": "BarenziahQuestMarkers_Droppable.esp",
@@ -345,7 +345,7 @@ var data = {
"name": "Lightweight Potions and Poisons.esp",
"isActive": false,
"crc": "276314FF",
"version": "Version: 0.1."
"version": "0.1."
},
{
"name": "No Empty Tag on Containers.esp",
@@ -399,13 +399,13 @@ var data = {
"name": "Ars Metallica.esp",
"isActive": false,
"crc": "8D03ECC0",
"version": "Version: 1.2.1"
"version": "1.2.1"
},
{
"name": "Ars Metallica - Dawnguard.esp",
"isActive": false,
"crc": "FE8960A3",
"version": "Version: 1.2.1",
"version": "1.2.1",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Dawnguard.esm\" to be installed, but it is missing."
},
@@ -417,7 +417,7 @@ var data = {
"name": "Ars Metallica - Hearthfire.esp",
"isActive": false,
"crc": "18A5C66B",
"version": "Version: 1.2.1",
"version": "1.2.1",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"HearthFires.esm\" to be installed, but it is missing."
},
@@ -465,14 +465,14 @@ var data = {
"name": "Reduced Distance NPC Greetings.esp",
"isActive": false,
"crc": "24658104",
"version": "Version: 50"
"version": "50"
},
{
"name": "SkyUI.esp",
"loadsBSA": true,
"isActive": true,
"crc": "9330CAF7",
"version": "Version: 4.1"
"version": "4.1"
},
{
"name": "AnimeticaKobato.esp",
@@ -490,7 +490,7 @@ var data = {
"name": "SoS - The Wilds.esp",
"isActive": false,
"crc": "49F5E301",
"version": "Version: 1.13",
"version": "1.13",
"messages": [{"type": "say",
"content": "Note: Do not use the Crash Fix ESP for this mod. It is flagged as a master and is only meant as a last resort for fixing crashes."}]
},
@@ -517,7 +517,7 @@ var data = {
"name": "Bring Out Your Dead.esp",
"isActive": false,
"crc": "3ABC3315",
"version": "Version: 1.2.2",
"version": "1.2.2",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Unofficial Skyrim Patch.esp\" to be active, but it is inactive."}]
},
@@ -554,7 +554,7 @@ var data = {
"name": "SoS - The Dungeons.esp",
"isActive": false,
"crc": "79377267",
"version": "Version: 1.23",
"version": "1.23",
"messages": [{"type": "say",
"content": "Note: Do not use the Crash Fix ESP for this mod. It is flagged as a master and is only meant as a last resort for fixing crashes."}]
},
@@ -621,7 +621,7 @@ var data = {
"name": "SplashofRain.esp",
"isActive": false,
"crc": "363772B6",
"version": "Version: 1.04"
"version": "1.04"
},
{
"name": "Unique Grasses.esp",
@@ -632,13 +632,13 @@ var data = {
"name": "SPTDiverseMuscleTones.esp",
"isActive": false,
"crc": "2D5C68FE",
"version": "Version: 5.1"
"version": "5.1"
},
{
"name": "SPTDiverseMuscleTonesViljaPatch.esp",
"isActive": false,
"crc": "117758E3",
"version": "Version: 5.0",
"version": "5.0",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"EMCompViljaSkyrim.esp\" to be active, but it is inactive."
},
@@ -650,7 +650,7 @@ var data = {
"name": "SPTDiverseMuscleTonesDawnguardDragonborn.esp",
"isActive": false,
"crc": "F4927D22",
"version": "Version: 5.0",
"version": "5.0",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Dawnguard.esm\" to be installed, but it is missing."
},
@@ -662,7 +662,7 @@ var data = {
"name": "SPTDiverseMuscleTonesNPCs.esp",
"isActive": false,
"crc": "554F1CAB",
"version": "Version: 5.0",
"version": "5.0",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Unofficial Skyrim Patch.esp\" to be active, but it is inactive."
},
@@ -682,7 +682,7 @@ var data = {
"name": "SPTDiverseGuardsSkyrim.esp",
"isActive": false,
"crc": "682A3893",
"version": "Version: 4.6",
"version": "4.6",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"SPTDiverseMuscleTones.esp\" to be active, but it is inactive."}]
},
@@ -690,7 +690,7 @@ var data = {
"name": "SPTConsistentOlderPeople.esp",
"isActive": false,
"crc": "CAF3C1BE",
"version": "Version: 1.8",
"version": "1.8",
"messages": [{"type": "say",
"content": "Note: If this is not newer than v1.3, update to the latest version."
},
@@ -706,7 +706,7 @@ var data = {
"name": "EnchantingAwakenedAWEPatch.esp",
"isActive": false,
"crc": "DDDCC598",
"version": "Version: 1.50",
"version": "1.50",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Animated Weapon Enchants.esp\" to be installed, but it is missing."
},
@@ -733,7 +733,7 @@ var data = {
"name": "Ars Metallica - Dragonborn.esp",
"isActive": false,
"crc": "1091DB21",
"version": "Version: 1.2.1",
"version": "1.2.1",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Ars Metallica.esp\" to be active, but it is inactive."}]
},
@@ -780,13 +780,13 @@ var data = {
"name": "Point The Way.esp",
"isActive": false,
"crc": "F372CBC2",
"version": "Version: 1.0.2"
"version": "1.0.2"
},
{
"name": "SkyrimImprovedPuddles-DG-HF-DB.esp",
"isActive": false,
"crc": "D0427B6",
"version": "Version: 1.1",
"version": "1.1",
"messages": [{"type": "say",
"content": "Note: Use only one SkyrimImprovedPuddles esp."
},
@@ -802,7 +802,7 @@ var data = {
"name": "The Paarthurnax Dilemma.esp",
"isActive": false,
"crc": "9E446FBD",
"version": "Version: 1.2.5"
"version": "1.2.5"
},
{
"name": "TheTownIsSafe.esp",
@@ -827,26 +827,26 @@ var data = {
"name": "Tamriel Compendium - Skill Books.esp",
"isActive": false,
"crc": "1F348D90",
"version": "Version: 1.1",
"version": "1.1",
"tagsAdd": ["Relev"]
},
{
"name": "WATER.esp",
"isActive": false,
"crc": "AFE4A968",
"version": "Version: 1.87"
"version": "1.87"
},
{
"name": "WetandCold.esp",
"isActive": false,
"crc": "E034A81F",
"version": "Version: 1.321"
"version": "1.321"
},
{
"name": "WetandCold - Ashes.esp",
"isActive": false,
"crc": "8C003085",
"version": "Version: 1.06",
"version": "1.06",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"WetandCold.esp\" to be active, but it is inactive."}]
},
@@ -854,7 +854,7 @@ var data = {
"name": "When Vampires Attack.esp",
"isActive": false,
"crc": "4743D674",
"version": "Version: 1.1",
"version": "1.1",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Dawnguard.esm\" to be installed, but it is missing."
},
@@ -876,13 +876,13 @@ var data = {
"name": "Oblivion Gates in Cities.esp",
"isActive": false,
"crc": "E7D68506",
"version": "Version: 1.0"
"version": "1.0"
},
{
"name": "Gildergreen Regrown.esp",
"isActive": false,
"crc": "7AFAAD00",
"version": "Version: 1.2.5"
"version": "1.2.5"
},
{
"name": "TheChoiceIsYours_Dawnguard.esp",
@@ -907,7 +907,7 @@ var data = {
"name": "Bashed Patch, 0.esp",
"isActive": false,
"crc": "C2306BE5",
"version": "Version: 2013-12-13 13:55:02",
"version": "2013-12-13 13:55:02",
"messages": [{"type": "warn",
"content": "Warning: This plugin requires \"Dawnguard.esm\" to be installed, but it is missing."
},