Commit Graph

348 Commits

Author SHA1 Message Date
Guillaume Jacquemin 2c2e5ad936 SaveTool: remove the dependency on json.hpp. 2022-03-30 15:15:54 +02:00
Guillaume Jacquemin ef05c075ba main: improve logging. 2022-03-30 14:18:23 +02:00
Guillaume Jacquemin 14d75e0e83 Save Tool: improve logging and reorganise stuff. 2022-03-30 14:18:08 +02:00
Guillaume Jacquemin 63a8cf7075 SaveTool: fix another bug in the updater. 2022-03-28 09:58:22 +02:00
Guillaume Jacquemin bf3288772e SaveTool: ensure old_filename isn't SSO'd so it can be released. 2022-03-28 09:46:29 +02:00
Guillaume Jacquemin bde6fc41a0 Main: don't include <fstream> in debug builds. 2022-03-27 22:09:56 +02:00
Guillaume Jacquemin ac1276761e SaveTool: fix "external changes detected" on saving in the tool.
I hope.
2022-03-22 09:59:30 +01:00
Guillaume Jacquemin fd3306b175 CMakeLists: bump version number. 2022-03-21 16:47:44 +01:00
Guillaume Jacquemin cf72cbe2c6 SaveTool: fix a bug in the update checker. 2022-03-21 16:47:29 +01:00
Guillaume Jacquemin f4adb9e26a SaveTool: fix a few bugs. 2022-03-21 16:31:29 +01:00
Guillaume Jacquemin 592fd2ba3a SaveTool: what is that comment doing here ? 2022-03-21 15:37:06 +01:00
Guillaume Jacquemin 84b1e276a1 SaveTool: don't pass a StringView to ImGui, it doesn't like that. 2022-03-21 15:36:49 +01:00
Guillaume Jacquemin 0c8c2601ce CMakeLists: bump version number. 2022-03-21 15:22:46 +01:00
Guillaume Jacquemin 147c38669f StoryProgress: add missing story events as well as the "new" chapter 3. 2022-03-21 15:21:45 +01:00
Guillaume Jacquemin 1871440a7b UESaveFile: copy the temp file over the old one.
This is to prevent an issue where updating a profile save makes the app
think it's deleted.
2022-03-21 15:20:36 +01:00
Guillaume Jacquemin 133c34f5f7 SaveTool: make the tuning tab present only in debug builds. 2022-03-20 11:32:08 +01:00
Guillaume Jacquemin 47890f6939 ArmourSets: add Axial Core. 2022-03-20 11:31:37 +01:00
Guillaume Jacquemin 354c3ff3d9 LastMissionId: add missing IDs. 2022-03-20 11:31:15 +01:00
Guillaume Jacquemin 04beebbc1c SaveTool: implement the UI for BL placement editing. 2022-03-20 10:17:14 +01:00
Guillaume Jacquemin 47520b89e3 Mass: implement BL attachment writing.
Needs testing, though.
2022-03-20 10:16:39 +01:00
Guillaume Jacquemin ce0ca07afc SaveTool: various UI tweaks. 2022-03-20 09:14:46 +01:00
Guillaume Jacquemin e91c015c00 SaveTool,ProfileManager: make backups 0.8-ready. 2022-03-20 09:14:11 +01:00
Guillaume Jacquemin 75d77413f6 Mass: add a new value to BulletLauncherSockets.hpp. 2022-03-13 15:26:00 +01:00
Guillaume Jacquemin ddad6536c6 Mass: fix a condition. 2022-03-13 15:25:11 +01:00
Guillaume Jacquemin d9f6470dc6 Mass: make the code look in the right places.
Time to facepalm...
2022-03-13 11:02:43 +01:00
Guillaume Jacquemin f963ce31ad SaveTool: fix a condition that prevented armour accessories from being editable. 2022-03-13 10:48:32 +01:00
Guillaume Jacquemin be06c2d552 Mass: add reading support for 0.8 BL placement.
Then, it's UI design time, followed by writing support.
2022-03-12 09:34:19 +01:00
Guillaume Jacquemin d61977d758 Weapon: change how enums are built. 2022-03-11 15:39:49 +01:00
Guillaume Jacquemin f36782bff0 ArmourPart: auto-fill ArmourSlot using ArmourSlots.hpp. 2022-03-11 10:58:13 +01:00
Guillaume Jacquemin 76613c2ec5 Mass: add a few missing string views. 2022-03-11 10:57:16 +01:00
Guillaume Jacquemin e997312286 SaveTool: rename tabs in the build viewer. 2022-03-11 10:56:52 +01:00
Guillaume Jacquemin e2d31854b4 SaveTool: use ImGui's {Begin,End}Disabled API. 2022-03-11 09:20:24 +01:00
Guillaume Jacquemin ccf630c385 MassManager: fix a condition. 2022-03-09 14:03:08 +01:00
Guillaume Jacquemin 4ae9f83ab3 SaveTool: fix a segfault. 2022-03-09 14:02:56 +01:00
Guillaume Jacquemin dd9dcdb5f6 SaveTool: change how file update events are handled. 2022-03-09 13:27:45 +01:00
Guillaume Jacquemin f1a4b64219 SaveTool: use the shorthand getters added in the previous commit. 2022-03-09 13:27:21 +01:00
Guillaume Jacquemin 8f4708f518 Profile: provide shorthand getters. 2022-03-09 13:25:26 +01:00
Guillaume Jacquemin b859bf7ab5 Update Corrade/Magnum and adapt to changes.
Also a few misc things, but nothing really noteworthy.
2022-03-09 11:04:19 +01:00
Guillaume Jacquemin db6836ec33 Profile(Manager): add basic 0.8 profile support. 2022-03-06 14:42:24 +01:00
Guillaume Jacquemin 89bba618fb SaveTool: eliminate a few format warnings. 2022-03-06 14:30:04 +01:00
Guillaume Jacquemin 88afaaceec UESaveFile/Serialisers: make types() return an ArrayView of Strings.
It's the best way to avoid dangling views for now.
2022-03-06 14:29:09 +01:00
Guillaume Jacquemin fdb7567aea PropertySerialiser: make into a singleton.
Also update UESaveFile to match.
2022-03-06 13:21:56 +01:00
Guillaume Jacquemin 771e008e62 Mass: fragment into smaller files.
Should help navigation and maintenance.
2022-03-06 09:52:11 +01:00
Guillaume Jacquemin 4d9fc46003 SaveTool: fix a mistake in drawAbout. 2022-03-06 09:25:23 +01:00
Guillaume Jacquemin db3eba5b59 SaveTool: move some stuff into its own function. 2022-03-06 09:12:40 +01:00
Guillaume Jacquemin 8791eb32ac Use Corrade's String(View) types where possible.
Utility::Directory, efsw, cpr, and json.hpp are the only obstacles to a
complete removal of std::string usages.
2022-03-04 21:18:55 +01:00
Guillaume Jacquemin f522d20dd4 SaveTool: fragment SaveTool_MassViewer.cpp.
This will make maintenance easier. I hope.
2022-03-02 14:43:02 +01:00
Guillaume Jacquemin 6208825aa6 Mass: fix a bug that prevented global styles from being read. 2022-03-02 14:10:13 +01:00
Guillaume Jacquemin 572585e648 SaveTool: optimise code readability.
...mostly for Clang/CLion. :D
2022-03-02 11:46:31 +01:00
Guillaume Jacquemin de2ba9ce7f Mass(Manager),SaveTool: improve error handling. 2022-02-26 14:48:45 +01:00
Guillaume Jacquemin d0ddc73852 Profile: fix a compile error. 2022-02-25 21:00:32 +01:00
Guillaume Jacquemin a1c17b7138 Profile(Manager),SaveTool: improve error handling and fix bugs. 2022-02-24 14:00:47 +01:00
Guillaume Jacquemin 350ad59f8e SaveTool: add a convenience wrapper over ImGui stuff. 2022-02-23 21:59:00 +01:00
Guillaume Jacquemin 883d5d3f41 Mass,SaveTool: improve error handling. 2022-02-23 15:47:34 +01:00
Guillaume Jacquemin 77d7eaefad SaveTool: fix a condition. 2022-02-23 10:18:58 +01:00
Guillaume Jacquemin 82170b3078 Mass,SaveTool: optimise the effect colour mode. 2022-02-17 20:22:33 +01:00
Guillaume Jacquemin 88abf91047 Mass,SaveTool: add some future-proofing. 2022-02-17 20:01:59 +01:00
Guillaume Jacquemin 955ec010b8 Crc32: make the polynomial literal explicitly unsigned. 2022-02-16 11:48:39 +01:00
Guillaume Jacquemin 7cb9ea28b2 BinaryReader: add a way to read arbitrary types. 2022-02-16 11:47:49 +01:00
Guillaume Jacquemin 975f471a68 BinaryReader: add a way to seek into the file. 2022-02-14 09:31:20 +01:00
Guillaume Jacquemin 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
Guillaume Jacquemin 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
Guillaume Jacquemin 2ff32c4c78 Add a CRC32 algorithm. 2022-02-13 15:02:08 +01:00
Guillaume Jacquemin 4000421a8c Mass,SaveTool: refactor even more code. 2022-02-13 10:31:55 +01:00
Guillaume Jacquemin 8f1e3668a3 BinaryWriter: allow writing string literals. 2022-02-12 11:21:23 +01:00
Guillaume Jacquemin a6c0614979 BinaryWriter: make non-copyable. 2022-02-11 19:44:16 +01:00
Guillaume Jacquemin 2cabe6a3ba MassManager: adapt to Mass changes.
Should have caught it earlier. Ugh.
2022-02-11 18:31:45 +01:00
Guillaume Jacquemin afc163f344 Mass: rename a member.
SteamIDs aren't used anymore in 0.8+ save files.
2022-02-09 20:16:14 +01:00
Guillaume Jacquemin 353a71d8ab Weapon: remove an unneeded blank line. 2022-02-09 18:28:23 +01:00
Guillaume Jacquemin bbc40d7c93 Weapon: update formatting. 2022-02-09 18:12:11 +01:00
Guillaume Jacquemin 28db82c8a9 Weapon,Mass,SaveTool: refactor some more code. 2022-02-09 14:17:05 +01:00
Guillaume Jacquemin 9f324c30fd Delete WeaponTypes.h.
It's not needed anymore.
2022-02-09 13:54:44 +01:00
Guillaume Jacquemin 41cd92352d Mass: refactor and optimise some parts. 2022-02-09 13:41:55 +01:00
Guillaume Jacquemin 940fe3feee SaveTool: implement weapon copying. 2022-01-30 14:04:22 +01:00
Guillaume Jacquemin d74a7bc219 Mass: make Weapon copyable.
This is necessary to add weapon copying.
2022-01-30 14:02:30 +01:00
Guillaume Jacquemin 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
Guillaume Jacquemin 8fb837bfc0 SaveTool: finish implementing weapon reordering. 2022-01-30 09:48:14 +01:00
Guillaume Jacquemin 0ac1e759ca Profile(Manager),SaveTool: prepare for legacy/normal distinction. 2022-01-20 19:42:27 +01:00
Guillaume Jacquemin a4045e8e9b Add a few IDs to maps. 2022-01-20 11:39:36 +01:00
Guillaume Jacquemin 1ec4522baf SaveTool: make the clickthrough hint have priority. 2022-01-15 13:26:12 +01:00
Guillaume Jacquemin 13d09e4aa0 SaveTool: prepare for the better import/export system. 2022-01-15 11:31:33 +01:00
Guillaume Jacquemin 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
Guillaume Jacquemin 8102d1d83a SaveTool: improve the ShellExecuteW call. 2022-01-15 11:30:12 +01:00
Guillaume Jacquemin 9a9c08391a SaveTool: change how story progress is handled. 2022-01-15 11:01:11 +01:00
Guillaume Jacquemin 51602c713a SaveTool: update layout. 2022-01-14 13:42:09 +01:00
Guillaume Jacquemin 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
Guillaume Jacquemin 7fb269f862 SaveTool: change viewer window ID. 2022-01-07 09:35:32 +01:00
Guillaume Jacquemin 1378676bbc SaveTool: fix old code. 2022-01-03 12:46:13 +01:00
Guillaume Jacquemin 96768c1aab SaveTool: add a conversion operator. 2022-01-03 12:10:20 +01:00
Guillaume Jacquemin 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
Guillaume Jacquemin 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
Guillaume Jacquemin 065e63f27c SaveTool: skip prereleases in update check. 2021-12-02 20:37:47 +01:00
Guillaume Jacquemin a05f3eeed0 Prepare the pre-release. 2021-12-02 20:12:54 +01:00
Guillaume Jacquemin 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
Guillaume Jacquemin 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
Guillaume Jacquemin fe0db983ce Mass: add tuning reading support.
Writing support SOON™.
2021-12-02 15:27:00 +01:00
Guillaume Jacquemin bd8ff47f1e Mass: fix data ordering issue with joint sliders. 2021-11-01 11:19:34 +01:00
Guillaume Jacquemin 83fa5822bf MassManager: fix bugs in path handling. 2021-11-01 09:40:33 +01:00
Guillaume Jacquemin 8d87cdd619 Mass: fix a check. 2021-10-29 14:41:52 +02:00
Guillaume Jacquemin 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
Guillaume Jacquemin af71806e13 Mass: finish getWeaponType(). 2021-10-18 14:54:28 +02:00
Guillaume Jacquemin 247578a386 Mass: add getDecals() and getAccessories(). 2021-10-18 14:54:04 +02:00
Guillaume Jacquemin 4ca6f62d9b Mass: remove as many hardcoded values as possible. 2021-10-17 15:29:16 +02:00
Guillaume Jacquemin e461d5a505 Mass: add getCustomStyles(); 2021-10-17 15:28:54 +02:00
Guillaume Jacquemin d79debe69f Mass: change how setCustomStyle() works.
This'll allow usage with weapon styles.
2021-10-17 10:52:57 +02:00
Guillaume Jacquemin 83fe02a8dc Mass: improve readability and reliability. 2021-10-17 09:24:44 +02:00
Guillaume Jacquemin 7e452db3a4 Mass: improve readability. 2021-10-17 08:44:23 +02:00
Guillaume Jacquemin 80bb85c0d8 Mass: add weapon reading.
Writing will come SOON™.
2021-10-17 08:37:12 +02:00
Guillaume Jacquemin 4df90efd67 Mass: rename a field. 2021-10-16 11:36:31 +02:00
Guillaume Jacquemin b92c37e4b6 Mass: fix another bug with importing. 2021-10-14 15:06:03 +02:00
Guillaume Jacquemin dd460b4313 MassManager: fix a bug with importing. 2021-10-13 14:49:31 +02:00
Guillaume Jacquemin 05a2b1cfb0 SaveTool: change a drag widget to a slider. 2021-10-12 16:53:19 +02:00
Guillaume Jacquemin 8fedbdd4e5 Add armour sets and slots maps. 2021-10-12 16:52:40 +02:00
Guillaume Jacquemin 3ac5288f12 Mass: prepare decals for edition. 2021-10-12 16:35:49 +02:00
Guillaume Jacquemin 8bae723018 Mass: finish implementing armour part support. 2021-10-11 17:17:14 +02:00
Guillaume Jacquemin 3714162b50 UnrealPropertyBase: initialise valueLength. 2021-10-05 10:31:06 +02:00
Guillaume Jacquemin a22aa6f7ae Mass: update CustomStyle default values to match game. 2021-10-05 10:10:18 +02:00
Guillaume Jacquemin 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
Guillaume Jacquemin 4429e581f3 Mass: reorganise a whole chunk of code. 2021-10-04 18:18:53 +02:00
Guillaume Jacquemin 2d0d5817f2 SaveTool: add a basic guide to the help menu. 2021-10-04 18:18:20 +02:00
Guillaume Jacquemin bfe9a2c3a8 Profile: fix a crash that happens when restoring a backup. 2021-10-04 18:17:51 +02:00
Guillaume Jacquemin 8c81b7811b Mass: add support for reading armour parts. 2021-10-03 16:32:47 +02:00
Guillaume Jacquemin 0904384e0d SaveTool: fixed a condition for drag and dropping builds. 2021-10-03 00:14:07 +02:00
Guillaume Jacquemin 6f3da0b4a7 Mass: add some sanity checks. 2021-10-02 19:23:35 +02:00
Guillaume Jacquemin 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
Guillaume Jacquemin 79762e176e Mass: add (partial) support for custom style edition. 2021-10-02 14:52:48 +02:00
Guillaume Jacquemin b5b5b3b38c Mass: rename some members. 2021-10-02 14:51:39 +02:00
Guillaume Jacquemin e4cfd3834a Mass: update CustomStyle. 2021-09-29 11:07:10 +02:00
Guillaume Jacquemin e77cce5b42 Mass: add missing value to CustomStyle. 2021-09-27 21:55:05 +02:00
Guillaume Jacquemin 18aa7f659e SaveTool: move the tw macro so all SaveTool files can use it. 2021-09-27 20:51:48 +02:00
Guillaume Jacquemin 1612e4372b SaveTool: make the file watcher less aggressive. 2021-09-27 20:50:37 +02:00
Guillaume Jacquemin b377e0de6c Mass: add a missing variable to CustomStyle. 2021-09-27 20:50:03 +02:00
Guillaume Jacquemin 0a438a4d72 MassManager: adapt to Mass changes. 2021-09-27 17:54:42 +02:00
Guillaume Jacquemin e839d1c19b SaveTool: adapt to Mass changes. 2021-09-27 17:54:30 +02:00
Guillaume Jacquemin 5689ec6c1a SaveTool: adapt to Profile changes. 2021-09-27 17:53:56 +02:00
Guillaume Jacquemin c2d0fbd941 Mass: adapt to UESaveFile. 2021-09-27 17:52:47 +02:00
Guillaume Jacquemin 2b2320ae0a UESaveFile: clear properties when reloading data. 2021-09-27 16:21:39 +02:00
Guillaume Jacquemin 10368e09db Profile: add default values for some members. 2021-09-27 16:18:03 +02:00
Guillaume Jacquemin bd255ef8d5 Profile: ensure (in)validity. 2021-09-27 16:17:32 +02:00
Guillaume Jacquemin 911e18fc0a UESaveFile: add a few sanity things. 2021-09-27 16:16:47 +02:00
Guillaume Jacquemin 0c257bcfa6 GenericStructProperty: remove a redundant function. 2021-09-25 15:46:01 +02:00
Guillaume Jacquemin 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
Guillaume Jacquemin 79e3193309 ArrayProperty: update at() to cast as well. 2021-09-23 21:54:59 +02:00
Guillaume Jacquemin 76e36791d7 Profile: remove Locators.h.
It's not needed anymore.
2021-09-23 19:11:08 +02:00
Guillaume Jacquemin 50a7b1d7f0 Profile: adapt to UESaveFile.
Also change ProfileManager to use growable arrays instead of vectors.
2021-09-23 19:01:42 +02:00
Guillaume Jacquemin 1caa472833 UESaveFile: add more error messages. 2021-09-23 18:25:28 +02:00
Guillaume Jacquemin 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
Guillaume Jacquemin b8b156a724 Add a serialiser for struct sttResourceItemValue. 2021-09-23 15:09:18 +02:00
Guillaume Jacquemin 9c1aeb753e UESaveFile: add API to append a property. 2021-09-23 15:08:20 +02:00
Guillaume Jacquemin 0006c90a21 UESaveFile: add sanity check when reading files. 2021-09-23 15:07:29 +02:00