Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
57bc9b3
Add missing bash tag settings
Aug 14, 2020
fe01ec9
Update to xedit 4.0.3
Aug 14, 2020
c3d439d
Fix handling of integers which hold flags
Aug 14, 2020
86b5587
Fix handling of arrays
Aug 14, 2020
46158ce
Fix up bash tag settings now that flags work
Aug 14, 2020
4b3440a
Delete hardcoded dat files
Aug 14, 2020
7e027ea
Increment to v1.1.0
Aug 14, 2020
1ea0e9b
Support for loading more than 255 plugins w/ESL
Aug 15, 2020
31d4793
Fix for Skyrim VR
Aug 16, 2020
620db2c
Load Creation Club mods before plugins.txt mods
Aug 16, 2020
842e478
Attempt to fix bug in smashing algo I introduced
Aug 16, 2020
26ed1e5
Improve limiting of masters
Aug 17, 2020
34eb8c6
Make changes suggested by mator
Aug 23, 2020
5d0cc89
Try to fix loadorder for VR
Aug 23, 2020
90a833f
Fix try/except/finally block
Aug 24, 2020
a962d5b
Turn off translation of localized strings
Aug 24, 2020
a196564
Log adding masters instead of printing to tracker
Aug 24, 2020
a626995
Load plugin BSAs ourselves
Aug 27, 2020
5516c8a
Add extra master for SkyrimVR
Aug 27, 2020
02ca789
Update msSmash.pas
Sandman534 Sep 1, 2020
9e7ab2a
Update mteBase.pas
Sandman534 Sep 1, 2020
c82f7fc
Regenerate Smash.All setting
Sep 3, 2020
23305ea
Update bash tag settings
Sep 3, 2020
c5d7a2a
Maybe fix the new Smash.All
Sep 27, 2020
465669a
Make original BSA loading code work
Sep 27, 2020
a6aba99
Add setting to ESL flag Smashed Patch
Sep 27, 2020
a78b004
Add option to use multiple threads to remove ITPOs
Sep 28, 2020
4267c2a
Further tweak new Smash.All
Oct 4, 2020
e5cb86c
Tweak new Smash.All
Dec 13, 2020
33bbaed
Attempt at updating Smash.All for FO4
Jan 7, 2021
c40b429
Mostly complete Russian translation?
Jan 7, 2021
45c80db
Credit Koriss_ for translation
Jan 7, 2021
8ced03c
Add support for Enderal (SE)
Jul 17, 2021
6990c59
Tweaks to processing/merging of arrays and flags
Jul 25, 2021
3f2ec78
Tweak to handling of masters
Jul 26, 2021
cce9309
Fix copying new elements from source to dest
Jul 28, 2021
be2f86b
Don't sort masters
Jul 28, 2021
feea1a0
New attempt and including parent elements?
Jul 28, 2021
96fedd1
Only try to update Count fields that are integers
Jul 28, 2021
7e36a6e
Better handling of unions?
Jul 28, 2021
f9fcfae
Tweaks to how elements are copied in
Jul 29, 2021
63fb19a
Start calling this v2
Jul 29, 2021
9c10cfd
Fix arrays maybe?
Jul 29, 2021
ec79b5b
Use FullPath instead of Path in debug messages
Jul 29, 2021
bb42cac
Tweak to picking record masters
Jul 30, 2021
6f3dede
Various tweaks to my Smash.All
Jul 30, 2021
b28e762
Fix for silently failing to rename smashed patch
Jul 30, 2021
d47d1a2
Better array alignment
Aug 1, 2021
e1b465b
Always compare array elements by SortKey?
Aug 1, 2021
77b4c1e
Fix for smashing parents before children
Aug 1, 2021
be6e223
Better solution for changing editorid
Aug 3, 2021
59c3a37
Look at "diffs" relative to all masters.
Aug 3, 2021
59dfdb6
Treat non-existent master arrays as empty
Aug 4, 2021
6619ecf
Fix for remove not always removing the element
Aug 4, 2021
1c7aaa2
Workaround for MasterOrSelf giving wrong master.
Aug 5, 2021
4ba9b2f
Fix message indentation
Aug 5, 2021
0866bfe
List myself as v2 author?
Aug 5, 2021
e9a227d
More tweaks to my Smash.All
Aug 5, 2021
3bacaff
v2.0.0-beta+2
Aug 5, 2021
ec28c9e
Fix for smashing the same masters repeatedly.
Aug 5, 2021
e11127c
Log format fix
Aug 5, 2021
de2d649
Switch to async logging for the tracker.
Aug 6, 2021
d189ee2
Support smashing record flags
Aug 8, 2021
024c27e
Decide overrides to smash before actually smashing
Aug 8, 2021
1d209f3
Skip if only override to smash is winning override
Aug 8, 2021
f52bd8e
Sort masters
Aug 8, 2021
2f2c2df
Logging tweaks
Aug 8, 2021
bfe6e50
Tell xedit to not build refs?
Aug 8, 2021
f6df915
Smash RACE records
Aug 8, 2021
cf197f6
Don't leave stuff in the recycle bin
Aug 10, 2021
bf9d2f8
Fix ITPO removal
Sep 6, 2021
e1036e9
Update Smash.All
Sep 6, 2021
0fa3e9c
Fix load ordering for "ghost"ed files
Sep 7, 2021
1a3f0cd
Most fixes for ghosted files
Sep 12, 2021
a9d3872
Add smashGhosts setting
Oct 3, 2021
c19b835
stuff
Oct 3, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "lib/xedit"]
path = lib/xedit
url = git@github.com:TES5Edit/TES5Edit.git
[submodule "lib/loggerpro"]
path = lib/loggerpro
url = git@github.com:danieleteti/loggerpro.git
Binary file not shown.
Binary file not shown.
Binary file not shown.
69 changes: 37 additions & 32 deletions frontend/MatorSmash.dpr
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
{*******************************************************************************
{ *******************************************************************************

The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/

Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/

*******************************************************************************}
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.

******************************************************************************* }

program MatorSmash;

Expand All @@ -21,7 +22,6 @@ uses
Dialogs,
Controls,
SysUtils,
// lib\mte
CRC32 in '..\lib\mte\CRC32.pas',
mteBase in '..\lib\mte\mteBase.pas',
mteChangeLogForm in '..\lib\mte\mteChangeLogForm.pas',
Expand All @@ -35,8 +35,7 @@ uses
RttiJson in '..\lib\mte\RttiJson.pas',
RttiTranslation in '..\lib\mte\RttiTranslation.pas',
W7Taskbar in '..\lib\mte\W7Taskbar.pas',
// lib\xedit
wbBSA in '..\lib\xedit\wbBSA.pas',
wbInit in '..\lib\xedit\wbInit.pas',
wbDefinitionsFNV in '..\lib\xedit\wbDefinitionsFNV.pas',
wbDefinitionsFO3 in '..\lib\xedit\wbDefinitionsFO3.pas',
wbDefinitionsFO4 in '..\lib\xedit\wbDefinitionsFO4.pas',
Expand All @@ -49,59 +48,63 @@ uses
wbLocalization in '..\lib\xedit\wbLocalization.pas',
wbSort in '..\lib\xedit\wbSort.pas',
wbStreams in '..\lib\xedit\wbStreams.pas',
// Smash
msConfiguration in 'msConfiguration.pas',
msCore in 'msCore.pas',
msLoader in 'msLoader.pas',
msConflict in 'msConflict.pas',
msChoicePanel in 'msChoicePanel.pas',
msSmash in 'msSmash.pas',
msAlgorithm in 'msAlgorithm.pas',
msProfileForm in 'msProfileForm.pas' {ProfileForm},
msProfileForm in 'msProfileForm.pas' {ProfileForm} ,
msProfilePanel in 'msProfilePanel.pas',
msSmashForm in 'msSmashForm.pas' {SmashForm},
msSmashForm in 'msSmashForm.pas' {SmashForm} ,
msThreads in 'msThreads.pas',
msOptionsForm in 'msOptionsForm.pas' {OptionsForm},
msSplashForm in 'msSplashForm.pas' {SplashForm},
msEditForm in 'msEditForm.pas' {EditForm},
msSettingsManager in 'msSettingsManager.pas' {SettingsManager},
msPluginSelectionForm in 'msPluginSelectionForm.pas' {MiniPluginSelectionForm},
msConflictForm in 'msConflictForm.pas' {ConflictForm},
msTagManager in 'msTagManager.pas' {TagManager},
msTagHelper in 'msTagHelper.pas' {TagHelper};
msOptionsForm in 'msOptionsForm.pas' {OptionsForm} ,
msSplashForm in 'msSplashForm.pas' {SplashForm} ,
msEditForm in 'msEditForm.pas' {EditForm} ,
msSettingsManager in 'msSettingsManager.pas' {SettingsManager} ,
msPluginSelectionForm
in 'msPluginSelectionForm.pas' {MiniPluginSelectionForm} ,
msConflictForm in 'msConflictForm.pas' {ConflictForm} ,
msTagManager in 'msTagManager.pas' {TagManager} ,
msTagHelper in 'msTagHelper.pas' {TagHelper} ,
Vcl.Themes,
Vcl.Styles;

{$R *.res}
{$MAXSTACKSIZE 2097152}

const
IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020;


{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
{$SETPEFLAGS IMAGE_FILE_LARGE_ADDRESS_AWARE}

var
bProfileProvided, bUseUTF8: boolean;
sParam, sProfile, sPath: string;
i: Integer;
aSettings: TSettings;

begin
// set important vars
SysUtils.FormatSettings.DecimalSeparator := '.';
Application.HintHidePause := 8000;
//ReportMemoryLeaksOnShutdown := true;
// ReportMemoryLeaksOnShutdown := true;
PathList.Values['ProgramPath'] := ExtractFilePath(ParamStr(0));

// get current profile if profile switch provided
for i := 1 to ParamCount do begin
for i := 1 to ParamCount do
begin
sParam := ParamStr(i);
if sParam = '-profile' then
sProfile := ParamStr(i + 1);
if sParam = '-utf8' then
wbStringEncoding := seUTF8;
wbEncoding := TEncoding.UTF8;
end;
bProfileProvided := sProfile <> '';
sPath := Format('%sprofiles\%s\settings.ini', [ProgramPath, sProfile]);
if bProfileProvided and FileExists(sPath) then begin
if bProfileProvided and FileExists(sPath) then
begin
aSettings := TSettings.Create;
TRttiIni.Load(sPath, aSettings);
CurrentProfile := TProfile.Create(aSettings.profile);
Expand All @@ -117,9 +120,10 @@ begin
LoadStatistics;

// have user select game mode
if not bProfileProvided then begin
if not bProfileProvided then
begin
ProfileForm := TProfileForm.Create(nil);
if not (ProfileForm.ShowModal = mrOk) then
if not(ProfileForm.ShowModal = mrOk) then
exit;
ProfileForm.Free;
end;
Expand All @@ -137,4 +141,5 @@ begin
Application.CreateForm(TTagManager, TagManager);
Application.CreateForm(TTagHelper, TagHelper);
Application.Run;

end.
Loading