Commit graph

351 commits

Author SHA1 Message Date
6208825aa6 Mass: fix a bug that prevented global styles from being read. 2022-03-02 14:10:13 +01:00
572585e648 SaveTool: optimise code readability.
...mostly for Clang/CLion. :D
2022-03-02 11:46:31 +01:00
de2ba9ce7f Mass(Manager),SaveTool: improve error handling. 2022-02-26 14:48:45 +01:00
d0ddc73852 Profile: fix a compile error. 2022-02-25 21:00:32 +01:00
a1c17b7138 Profile(Manager),SaveTool: improve error handling and fix bugs. 2022-02-24 14:00:47 +01:00
350ad59f8e SaveTool: add a convenience wrapper over ImGui stuff. 2022-02-23 21:59:00 +01:00
883d5d3f41 Mass,SaveTool: improve error handling. 2022-02-23 15:47:34 +01:00
77d7eaefad SaveTool: fix a condition. 2022-02-23 10:18:58 +01:00
82170b3078 Mass,SaveTool: optimise the effect colour mode. 2022-02-17 20:22:33 +01:00
88abf91047 Mass,SaveTool: add some future-proofing. 2022-02-17 20:01:59 +01:00
955ec010b8 Crc32: make the polynomial literal explicitly unsigned. 2022-02-16 11:48:39 +01:00
7cb9ea28b2 BinaryReader: add a way to read arbitrary types. 2022-02-16 11:47:49 +01:00
975f471a68 BinaryReader: add a way to seek into the file. 2022-02-14 09:31:20 +01:00
76210e147a BinaryWriter: add a way to access the temp array.
That way, I'll be able to easily compute the CRC32 of it.
2022-02-13 15:09:07 +01:00
5e06c48492 BinaryWriter: fix an issue with writeValueToArray().
The view needs to be of type T, not U (which can potentially be T&).
2022-02-13 15:03:45 +01:00
2ff32c4c78 Add a CRC32 algorithm. 2022-02-13 15:02:08 +01:00
4000421a8c Mass,SaveTool: refactor even more code. 2022-02-13 10:31:55 +01:00
8f1e3668a3 BinaryWriter: allow writing string literals. 2022-02-12 11:21:23 +01:00
a6c0614979 BinaryWriter: make non-copyable. 2022-02-11 19:44:16 +01:00
2cabe6a3ba MassManager: adapt to Mass changes.
Should have caught it earlier. Ugh.
2022-02-11 18:31:45 +01:00
afc163f344 Mass: rename a member.
SteamIDs aren't used anymore in 0.8+ save files.
2022-02-09 20:16:14 +01:00
353a71d8ab Weapon: remove an unneeded blank line. 2022-02-09 18:28:23 +01:00
bbc40d7c93 Weapon: update formatting. 2022-02-09 18:12:11 +01:00
28db82c8a9 Weapon,Mass,SaveTool: refactor some more code. 2022-02-09 14:17:05 +01:00
9f324c30fd Delete WeaponTypes.h.
It's not needed anymore.
2022-02-09 13:54:44 +01:00
41cd92352d Mass: refactor and optimise some parts. 2022-02-09 13:41:55 +01:00
940fe3feee SaveTool: implement weapon copying. 2022-01-30 14:04:22 +01:00
d74a7bc219 Mass: make Weapon copyable.
This is necessary to add weapon copying.
2022-01-30 14:02:30 +01:00
51faed7210 Update copyright years.
I should have done that earlier... and of course I forgot a few files...
2022-01-30 11:38:22 +01:00
8fb837bfc0 SaveTool: finish implementing weapon reordering. 2022-01-30 09:48:14 +01:00
0ac1e759ca Profile(Manager),SaveTool: prepare for legacy/normal distinction. 2022-01-20 19:42:27 +01:00
a4045e8e9b Add a few IDs to maps. 2022-01-20 11:39:36 +01:00
1ec4522baf SaveTool: make the clickthrough hint have priority. 2022-01-15 13:26:12 +01:00
13d09e4aa0 SaveTool: prepare for the better import/export system. 2022-01-15 11:31:33 +01:00
ed0c4a73bb SaveTool: mark profiles as "legacy" in the manager.
I'll probably have to redesign that whole part of the UI anyway, so...
2022-01-15 11:31:06 +01:00
8102d1d83a SaveTool: improve the ShellExecuteW call. 2022-01-15 11:30:12 +01:00
9a9c08391a SaveTool: change how story progress is handled. 2022-01-15 11:01:11 +01:00
51602c713a SaveTool: update layout. 2022-01-14 13:42:09 +01:00
1621a4dbd5 SaveTool: move M.A.S.S. viewer state tracking.
That way, it's easier to reset. Some states, such as the current tab or
which headers are open/collapsed, are internal to ImGui, though, so I
can't do much there. Well, I could use the internal ImGui API, but, it's
still a pain in the ass.
2022-01-14 13:22:51 +01:00
7fb269f862 SaveTool: change viewer window ID. 2022-01-07 09:35:32 +01:00
1378676bbc SaveTool: fix old code. 2022-01-03 12:46:13 +01:00
96768c1aab SaveTool: add a conversion operator. 2022-01-03 12:10:20 +01:00
bd05a98820 SaveTool: make pre-releases considered up-to-date if they're more recent than the latest stable. 2022-01-03 11:56:34 +01:00
7059295cb3 Strip the release executable.
For *some* reason, there's debug info in one of the MinGW-w64 libs,
which account for roughly half the bloat of the release exe.
2021-12-03 00:14:22 +01:00
065e63f27c SaveTool: skip prereleases in update check. 2021-12-02 20:37:47 +01:00
a05f3eeed0 Prepare the pre-release. 2021-12-02 20:12:54 +01:00
321e8feed0 SaveTool: change how versions are evaluated.
This allows pre-releases and beta versions to be considered out of date
once complete versions are released.
2021-12-02 19:52:26 +01:00
c6de9c1940 SaveTool: finish most of the M.A.S.S. viewer.
Some parts are very unfinished, but do work.
2021-12-02 19:23:28 +01:00
fe0db983ce Mass: add tuning reading support.
Writing support SOON™.
2021-12-02 15:27:00 +01:00
bd8ff47f1e Mass: fix data ordering issue with joint sliders. 2021-11-01 11:19:34 +01:00
83fa5822bf MassManager: fix bugs in path handling. 2021-11-01 09:40:33 +01:00
8d87cdd619 Mass: fix a check. 2021-10-29 14:41:52 +02:00
0900f92b9f Mass: finish implementing the saving feature.
Oh, and also remove a blank line, but that's not important.
2021-10-29 10:23:34 +02:00
af71806e13 Mass: finish getWeaponType(). 2021-10-18 14:54:28 +02:00
247578a386 Mass: add getDecals() and getAccessories(). 2021-10-18 14:54:04 +02:00
4ca6f62d9b Mass: remove as many hardcoded values as possible. 2021-10-17 15:29:16 +02:00
e461d5a505 Mass: add getCustomStyles(); 2021-10-17 15:28:54 +02:00
d79debe69f Mass: change how setCustomStyle() works.
This'll allow usage with weapon styles.
2021-10-17 10:52:57 +02:00
83fe02a8dc Mass: improve readability and reliability. 2021-10-17 09:24:44 +02:00
7e452db3a4 Mass: improve readability. 2021-10-17 08:44:23 +02:00
80bb85c0d8 Mass: add weapon reading.
Writing will come SOON™.
2021-10-17 08:37:12 +02:00
4df90efd67 Mass: rename a field. 2021-10-16 11:36:31 +02:00
b92c37e4b6 Mass: fix another bug with importing. 2021-10-14 15:06:03 +02:00
dd460b4313 MassManager: fix a bug with importing. 2021-10-13 14:49:31 +02:00
05a2b1cfb0 SaveTool: change a drag widget to a slider. 2021-10-12 16:53:19 +02:00
8fedbdd4e5 Add armour sets and slots maps. 2021-10-12 16:52:40 +02:00
3ac5288f12 Mass: prepare decals for edition. 2021-10-12 16:35:49 +02:00
8bae723018 Mass: finish implementing armour part support. 2021-10-11 17:17:14 +02:00
3714162b50 UnrealPropertyBase: initialise valueLength. 2021-10-05 10:31:06 +02:00
a22aa6f7ae Mass: update CustomStyle default values to match game. 2021-10-05 10:10:18 +02:00
d03e75a8e9 Mass: not all parts can have 8 decals in the demo.
For now, at least. Just like the code that treats a lack of global
styles as a demo thing, I'll remove it in due time.
2021-10-05 10:03:52 +02:00
4429e581f3 Mass: reorganise a whole chunk of code. 2021-10-04 18:18:53 +02:00
2d0d5817f2 SaveTool: add a basic guide to the help menu. 2021-10-04 18:18:20 +02:00
bfe9a2c3a8 Profile: fix a crash that happens when restoring a backup. 2021-10-04 18:17:51 +02:00
8c81b7811b Mass: add support for reading armour parts. 2021-10-03 16:32:47 +02:00
0904384e0d SaveTool: fixed a condition for drag and dropping builds. 2021-10-03 00:14:07 +02:00
6f3da0b4a7 Mass: add some sanity checks. 2021-10-02 19:23:35 +02:00
19c00a3ce3 Mass: rename Armour to ArmourPart.
This is more consistent with WeaponPart, which designates a part of the
full weapon.
2021-10-02 19:22:52 +02:00
79762e176e Mass: add (partial) support for custom style edition. 2021-10-02 14:52:48 +02:00
b5b5b3b38c Mass: rename some members. 2021-10-02 14:51:39 +02:00
e4cfd3834a Mass: update CustomStyle. 2021-09-29 11:07:10 +02:00
e77cce5b42 Mass: add missing value to CustomStyle. 2021-09-27 21:55:05 +02:00
18aa7f659e SaveTool: move the tw macro so all SaveTool files can use it. 2021-09-27 20:51:48 +02:00
1612e4372b SaveTool: make the file watcher less aggressive. 2021-09-27 20:50:37 +02:00
b377e0de6c Mass: add a missing variable to CustomStyle. 2021-09-27 20:50:03 +02:00
0a438a4d72 MassManager: adapt to Mass changes. 2021-09-27 17:54:42 +02:00
e839d1c19b SaveTool: adapt to Mass changes. 2021-09-27 17:54:30 +02:00
5689ec6c1a SaveTool: adapt to Profile changes. 2021-09-27 17:53:56 +02:00
c2d0fbd941 Mass: adapt to UESaveFile. 2021-09-27 17:52:47 +02:00
2b2320ae0a UESaveFile: clear properties when reloading data. 2021-09-27 16:21:39 +02:00
10368e09db Profile: add default values for some members. 2021-09-27 16:18:03 +02:00
bd255ef8d5 Profile: ensure (in)validity. 2021-09-27 16:17:32 +02:00
911e18fc0a UESaveFile: add a few sanity things. 2021-09-27 16:16:47 +02:00
0c257bcfa6 GenericStructProperty: remove a redundant function. 2021-09-25 15:46:01 +02:00
9bc4aaf66b Profile: add data caching.
Querying the properties each frame isn't performant because of all the
casts and pointer indirections.
2021-09-24 21:51:06 +02:00
79e3193309 ArrayProperty: update at() to cast as well. 2021-09-23 21:54:59 +02:00
76e36791d7 Profile: remove Locators.h.
It's not needed anymore.
2021-09-23 19:11:08 +02:00
50a7b1d7f0 Profile: adapt to UESaveFile.
Also change ProfileManager to use growable arrays instead of vectors.
2021-09-23 19:01:42 +02:00
1caa472833 UESaveFile: add more error messages. 2021-09-23 18:25:28 +02:00
d3d065c945 StructSerialiser: fix serialisation of array'd structs.
Not all of them are generic structs, after all.
2021-09-23 18:24:55 +02:00
b8b156a724 Add a serialiser for struct sttResourceItemValue. 2021-09-23 15:09:18 +02:00
9c1aeb753e UESaveFile: add API to append a property. 2021-09-23 15:08:20 +02:00
0006c90a21 UESaveFile: add sanity check when reading files. 2021-09-23 15:07:29 +02:00
0826d4aede UESaveFile: close the file after we're done writing to it. 2021-09-22 21:50:39 +02:00
b3220ca8e1 MapPropertySerialiser: fix serialisation of demo saves. 2021-09-22 21:50:08 +02:00
48210c7186 UESaveFile: prevent reloading data on save. 2021-09-22 19:46:41 +02:00
f500e982e6 MapPropertySerialiser: add support for demo props. 2021-09-22 19:35:16 +02:00
2e1949ed5d BytePropertySerialiser: add support for demo props. 2021-09-22 19:16:33 +02:00
10becfdc31 PropertySerialiser: add an explicit cast. 2021-09-22 18:25:15 +02:00
f286ec0633 UESaveFile,GenericStructProperty: update at(). 2021-09-22 18:23:16 +02:00
ce29d6174c UESaveFile: allow the class to be moved. 2021-09-22 18:22:48 +02:00
de07b760d0 Add UESaveFile. 2021-09-22 17:37:50 +02:00
66d96bd893 SaveTool: update formatting. 2021-09-22 10:47:23 +02:00
918b26ab5e SaveTool: add some frame info display. 2021-09-10 16:16:21 +02:00
32bc179120 SaveTool: change an include.
The old one works on my setup, but might not work on others.
2021-09-10 16:15:27 +02:00
c64684b34c StyleNames: add placeholders for custom/global style names. 2021-09-10 16:14:31 +02:00
40840e3128 Mass: add support for reading joint sliders. 2021-09-10 16:13:29 +02:00
c7c379c419 SaveTool: adapt main manager to Mass changes. 2021-08-29 19:39:29 +02:00
a9a5bfb2af SaveTool: add basic skeleton for the M.A.S.S. viewer. 2021-08-28 21:03:06 +02:00
5f4576a2bc SaveTool: improve readability of the header. 2021-08-28 20:57:06 +02:00
f3318e0ed1 SaveTool: add safety measures in drawMassViewer(). 2021-08-28 20:22:04 +02:00
7fcf8b518e Mass: add functions to read/write frame styles. 2021-08-28 20:21:13 +02:00
69021eacdf Mass: change how the name is obtained, and move the state enum. 2021-08-28 20:20:09 +02:00
bd6e55826d Add StyleNames.h. 2021-08-28 20:16:19 +02:00
597e9dfe98 SaveTool: initial work for the viewer UI. 2021-08-19 20:35:00 +02:00
4cdd1b35ec Mass(Manager): rework to prepare for the viewer. 2021-08-19 20:34:37 +02:00
f323215844 SaveTool: improve a button. 2021-08-19 14:31:17 +02:00
e580736ac6 SaveTool: improve the M.A.S.S. manager UI. 2021-08-19 14:11:18 +02:00
2644a73fc9 SaveTool: change the look of the research inv table. 2021-08-19 14:02:21 +02:00
927da387ea CMakeLists: bump version number. 2021-08-18 20:27:43 +02:00
a244e468d2 SaveTool: add a way to skip the disclaimer. 2021-08-18 20:09:22 +02:00
6d4bafcc2d SaveTool: suppress Nvidia debug message.
I probably won't need it, but if someone has a rendering issue, being
able to debug it using GPU validation will be useful, and avoiding log
pollution will be even better.
2021-08-18 17:16:10 +02:00
d52b381426 SaveTool: improve the settings menu layout. 2021-08-18 16:59:16 +02:00
52f5e8eb0a SaveTool: add a frame limiter.
The FPS slider isn't the most accurate, but it just works™.
Closes #10.
2021-08-18 16:53:29 +02:00
c4fc910ab0 SaveTool: add tier display to the research inventory.
Closes #11.
2021-08-18 15:37:03 +02:00
ded5e9bcb7 Bump version up. 2021-08-01 18:50:53 +02:00
ee639bcdf8 SaveTool: move a PushID call in the profile manager.
Fixes #9.
2021-08-01 18:48:14 +02:00
406349bbe8 Increase version number. 2021-07-28 15:33:54 +02:00
22c9627b84 Main: add single-instance checking. 2021-07-28 15:17:46 +02:00
e99ff14749 SaveTool: add a "cheat mode" toggle. 2021-07-28 15:00:15 +02:00
d0716d6242 SaveTool: add credits for cpr and json.hpp. 2021-07-28 14:27:44 +02:00
512fa4088b SaveTool: remove testing code. 2021-07-28 14:27:19 +02:00
ab124174b0 SaveTool: add rest of response handling. 2021-07-28 14:18:39 +02:00
51127241ef Add json.hpp as the JSON lib. 2021-07-28 14:17:47 +02:00
ee384843e9 SaveTool: launch the thread, and add basic response handling. 2021-07-28 14:17:21 +02:00
7f32166ab0 SaveTool: implement the request thread. 2021-07-28 14:15:39 +02:00
017900afe2 SaveTool: add ToastQueue.
Might be useful for warnings and non-fatal errors, to replace standard
SDL message boxes.
2021-07-28 14:14:12 +02:00
52b60ff2a5 ToastQueue: fix formatting a bit. 2021-07-28 14:12:43 +02:00
14c5a76891 SaveTool: update window flags.
This will prevent them from being drawn over toasts.
2021-07-25 10:52:54 +02:00
d9efe8191e Add ToastQueue for in-app notifications. 2021-07-25 10:52:01 +02:00
445d7323b3 SaveTool: add configuration system. 2021-07-23 14:17:42 +02:00
d0eee0caeb SaveTool: add skeleton for update checking. 2021-07-22 11:39:53 +02:00
4dd2064aae Add cpr. 2021-07-22 11:36:37 +02:00
e2d473da44 SaveTool: change some conditions. 2021-07-22 09:19:59 +02:00
688e61b9ae MassManager: move some fields to SaveTool. 2021-07-21 20:57:39 +02:00
241f5b754d ProfileManager: move some fields to SaveTool. 2021-07-21 20:38:33 +02:00
2a617b3359 MassBuilderManager: move functionality to SaveTool.
And also improve the main menu too.
2021-07-21 14:36:49 +02:00
ec8a6b0c46 MassManager: move initialisation of fields. 2021-07-21 13:41:30 +02:00
a16383183e SaveTool: replace varargs with templates in drawUnsafeText(). 2021-07-21 13:40:55 +02:00
fa78ca2a8a MassManager: remove a redundant initialisation. 2021-07-21 12:38:27 +02:00
3f3166691d SaveTool: make a submenu name clearer. 2021-07-21 12:37:58 +02:00
f7aa89325f CMakeLists: change the exe name in release mode. 2021-07-13 19:00:45 +02:00
935d291a8b SaveTool: change repo link. 2021-07-13 19:00:27 +02:00
ff1782ca9d main: change the name of the log file. 2021-07-13 18:50:38 +02:00
7531dc88ac CMakeLists: use macros for stuff like app version. 2021-07-13 18:46:21 +02:00
e0647b907a CMakeLists: change the name of the debug macro. 2021-07-13 18:35:23 +02:00
ea6bf5b582 Locators: add inventory locators for later use. 2021-07-13 18:12:20 +02:00
1c673f3fa3 SaveTool: rename the tweakable macro. 2021-07-13 18:08:33 +02:00
c5d0d6e089 SaveTool: reduce max materials to 9999.
For some reason, the game clamps them to that after a mission.
2021-07-10 16:52:11 +02:00
d7f991cd2e SaveTool: bump MB version. 2021-07-10 16:50:30 +02:00
898873157f SaveTool: deleting a profile is an unsafe action. 2021-07-10 16:49:47 +02:00
9e7b6a4153 SaveTool: fix alignment. 2021-07-10 16:48:58 +02:00
69d4484c91 SaveTool: bump max credits for editor. 2021-07-10 16:47:18 +02:00
476eb2b1e6 SaveTool: improve readability. 2021-07-10 16:46:45 +02:00
ed25f7f5fa SaveTool: remove a redundant initialisation. 2021-07-10 16:46:03 +02:00
14feadc401 SaveTool: add menu items to open the backup and staging folders. 2021-07-10 16:45:25 +02:00
f9a3088094 SaveTool: improve drawUnsafeWidget(). 2021-07-10 16:44:39 +02:00
031b7a1c9a SaveTool: lack of timer should be a failure. 2021-07-10 16:44:09 +02:00
f2fc8e1f44 Profile: no need for a redundant initilisation. 2021-07-10 16:43:34 +02:00
ab84b84d72 Profile/Locators.h: improve readability. 2021-07-10 16:37:48 +02:00
0bb3be13fe MassManager: shorten this if. 2021-07-10 16:36:49 +02:00
045aaa8dad MassBuilderManager: use the Known Folders WinAPI.
According to the MS docs, it's supposedly better, so even though CSIDLs
are probably not gonna go away because of Microsoft's strong stance on
backwards compatibility, might as well use the "better" stuff.
2021-06-24 21:44:29 +02:00
92cab050ad SaveTool: reorganise the UI again. 2021-06-21 00:28:16 +02:00
13b4785a43 SaveTool: remove those commented LoCs.
Since the research tree might be made in pure ImGui (attempts to do it
in normal GL didn't really pan out), we won't need state changes.
2021-06-21 00:26:56 +02:00
fdb39e1d1d CMakeLists: we won't need those libraries, in the end.
The ImGui integration needs the Flat shader in Magnum::Shaders, so that
one stays on.
2021-06-20 23:56:46 +02:00
441e0c2d1a SaveTool: replace a chain of ifs with a switch. 2021-06-20 23:49:30 +02:00
057185cb65 SaveTool: reorganise some code. 2021-06-20 23:48:23 +02:00
9fb654c89d SaveTool: change how the game state is displayed. 2021-06-20 19:36:42 +02:00
d23095f662 SaveTool: remove an unused argument in handleFileAction. 2021-06-20 14:14:10 +02:00
e77f46ecc4 SaveTool: use Magnum types. 2021-06-20 14:13:30 +02:00
3172939b53 SaveTool: add a {Push,Pop}ID pair.
There were issues with the buttons in the backup list.
2021-06-20 14:11:18 +02:00
6842b3d3f3 SaveTool: add a fallback if there are no profile backups.
The table formatting was messed up when there were no backups, so I'm
working around it by... not displaying the table.
2021-06-20 14:10:09 +02:00
5dc7fbc06c ProfileManager: use Magnum types. 2021-06-20 14:08:17 +02:00
5bdb710356 Profile: use Magnum types. 2021-06-20 14:07:43 +02:00
6886334d61 MassBuilderManager: use Magnum types. 2021-06-20 14:06:55 +02:00
445c8873ae Mass: use Magnum types. 2021-06-20 14:06:36 +02:00
a91546d8a5 Mass: make the constructor explicit.
Implicit initialisation from a std::string could be dangerous, so, let's
avoid that.
2021-06-20 13:54:35 +02:00
e9d509fd36 StoryProgress: update formatting, and use Magnum types.
While I could keep using std::int32_t, as Magnum's Int type maps to it,
I want to be consistent with the rest of Magnum. Also, lots of
whitespace there, but readability is improved.
2021-06-20 13:53:38 +02:00
19262ae05e LastMissionId: update formatting, and use Magnum types.
While I could keep using std::int32_t, as Magnum's Int type maps to it,
I want to be consistent with the rest of Magnum.
2021-06-20 13:43:30 +02:00
b0affadd9a Add output redirection in release mode.
Debug mode gets outputted to std{out,err}. While most IDEs are sane
enough to capture the streams by default (hello, Qt Creator!), others
aren't (such as CLion, but there's a workaround there), and you can
forget about CMD output as well. Ugh, I hate Windows...
2021-06-20 13:39:43 +02:00