diff --git a/BackgroundRenderer/BackgroundRenderer.csproj b/BackgroundRenderer/BackgroundRenderer.csproj index 275d0f1..4612eb3 100644 --- a/BackgroundRenderer/BackgroundRenderer.csproj +++ b/BackgroundRenderer/BackgroundRenderer.csproj @@ -8,7 +8,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CommonwealthCartography/Class/Database.cs b/CommonwealthCartography/Class/Database.cs index 39acf80..90bc0e2 100644 --- a/CommonwealthCartography/Class/Database.cs +++ b/CommonwealthCartography/Class/Database.cs @@ -457,7 +457,8 @@ public static List GetNPCCoords(string npc, string spaceFormID, do { coordinates.Add(new MapDataPoint(reader.GetInt32(0), reader.GetInt32(1), reader.GetInt32(2)) { - weight = reader.GetFloat(3), + // Weight in DB and UI is presented as 1-100%, but weights on-map should be 0-1 to represent the expected count of the NPC + weight = reader.GetFloat(3) / 100f, }); } diff --git a/CommonwealthCartography/Class/IOManager.cs b/CommonwealthCartography/Class/IOManager.cs index 88711dd..9ad3910 100644 --- a/CommonwealthCartography/Class/IOManager.cs +++ b/CommonwealthCartography/Class/IOManager.cs @@ -249,13 +249,6 @@ public static void Cleanup() public static Image GetImageForSpace(Space space) { string editorID = space.editorID; - - // Temp hack while fo76utils is unable to render worldspaces without terrain - if (editorID == "Goodneighbor" || editorID == "DLC03VRWorldspace" || editorID == "NukaWorldMarket") - { - return EmptyMapBackground(); - } - string filePath = imgFolder + (space.IsWorldspace() ? string.Empty : "\\cell\\"); string fileName = editorID + MapFileExtension; diff --git a/CommonwealthCartography/CommonwealthCartography.csproj b/CommonwealthCartography/CommonwealthCartography.csproj index a9f3404..c88da94 100644 --- a/CommonwealthCartography/CommonwealthCartography.csproj +++ b/CommonwealthCartography/CommonwealthCartography.csproj @@ -53,13 +53,13 @@ - 7.0.9 + 8.0.4 all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/CommonwealthCartography/Form/FormMaster.Designer.cs b/CommonwealthCartography/Form/FormMaster.Designer.cs index d33432f..91ac4e0 100644 --- a/CommonwealthCartography/Form/FormMaster.Designer.cs +++ b/CommonwealthCartography/Form/FormMaster.Designer.cs @@ -639,7 +639,7 @@ private void InitializeComponent() // viaKoFiToolStripMenuItem // viaKoFiToolStripMenuItem.Name = "viaKoFiToolStripMenuItem"; - viaKoFiToolStripMenuItem.Size = new System.Drawing.Size(134, 22); + viaKoFiToolStripMenuItem.Size = new System.Drawing.Size(180, 22); viaKoFiToolStripMenuItem.Text = "Via Ko-Fi"; viaKoFiToolStripMenuItem.ToolTipText = "Support the project via Ko-Fi."; viaKoFiToolStripMenuItem.Click += Donate_ViaKoFi; @@ -647,7 +647,7 @@ private void InitializeComponent() // donatePatreonMenuItem // donatePatreonMenuItem.Name = "donatePatreonMenuItem"; - donatePatreonMenuItem.Size = new System.Drawing.Size(134, 22); + donatePatreonMenuItem.Size = new System.Drawing.Size(180, 22); donatePatreonMenuItem.Text = "Via Patreon"; donatePatreonMenuItem.ToolTipText = "Support the project via Patreon."; donatePatreonMenuItem.Click += Donate_ViaPatreon; @@ -655,9 +655,9 @@ private void InitializeComponent() // donatePayPalMenuItem // donatePayPalMenuItem.Name = "donatePayPalMenuItem"; - donatePayPalMenuItem.Size = new System.Drawing.Size(134, 22); + donatePayPalMenuItem.Size = new System.Drawing.Size(180, 22); donatePayPalMenuItem.Text = "Via PayPal"; - donatePayPalMenuItem.ToolTipText = "Support the project via Patreon."; + donatePayPalMenuItem.ToolTipText = "Support the project via PayPal."; donatePayPalMenuItem.Click += Donate_ViaPayPal; // // joinDiscordMenuItem @@ -1299,7 +1299,7 @@ private void InitializeComponent() // pictureBoxMapPreview // pictureBoxMapPreview.Anchor = System.Windows.Forms.AnchorStyles.None; - pictureBoxMapPreview.Location = new System.Drawing.Point(-14, 0); + pictureBoxMapPreview.Location = new System.Drawing.Point(-15, 0); pictureBoxMapPreview.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); pictureBoxMapPreview.Name = "pictureBoxMapPreview"; pictureBoxMapPreview.Size = new System.Drawing.Size(820, 820); diff --git a/CommonwealthCartography/Form/FormMaster.resx b/CommonwealthCartography/Form/FormMaster.resx index 17fc401..9355ac0 100644 --- a/CommonwealthCartography/Form/FormMaster.resx +++ b/CommonwealthCartography/Form/FormMaster.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceReader, System.Windows.Forms, ... System.Resources.ResXResourceWriter, System.Windows.Forms, ... this is my long stringthis is a comment - Blue + Blue [base64 mime encoded serialized .NET Framework object] diff --git a/CommonwealthCartography/Properties/AssemblyInfo.cs b/CommonwealthCartography/Properties/AssemblyInfo.cs index 4908e4e..ed5e733 100644 --- a/CommonwealthCartography/Properties/AssemblyInfo.cs +++ b/CommonwealthCartography/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Reflection; using System.Resources; using System.Runtime.InteropServices; @@ -35,6 +35,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.1.0")] +[assembly: AssemblyFileVersion("1.0.1.0")] [assembly: NeutralResourcesLanguage("en-US")] \ No newline at end of file diff --git a/CommonwealthCartographyTests/CommonwealthCartographyTests.csproj b/CommonwealthCartographyTests/CommonwealthCartographyTests.csproj index 902562e..b28438c 100644 --- a/CommonwealthCartographyTests/CommonwealthCartographyTests.csproj +++ b/CommonwealthCartographyTests/CommonwealthCartographyTests.csproj @@ -11,10 +11,10 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Database/gameVersion.csv b/Database/gameVersion.csv index c5f0659..b397b69 100644 --- a/Database/gameVersion.csv +++ b/Database/gameVersion.csv @@ -1,2 +1,2 @@ version -1.10.163.0 +1.10.980.0.1 diff --git a/Database/summary.txt b/Database/summary.txt index 4ca5577..c784f80 100644 --- a/Database/summary.txt +++ b/Database/summary.txt @@ -1,11 +1,11 @@ ==Database name== commonwealth_cartography.db ==SQLite version== -3.42.0 2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0 +3.45.3 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355 (64-bit) ==Checksum== -6ca6d4065d21efe0d92c13c7f7cb8d85 +db93a7de4ded1632ef635929e061d179 ==File Size== -211533824 +211542016 ==Tables== Entity_Info Map_Markers Region Standard_Search Game_Version NPC_Search Scrap_Search @@ -14,9 +14,9 @@ Lock_Levels Position_Data Space_Info Index_PositionData_CoverAll Index_ScrapSearch_CompMagSpace Index_PositionData_SpaceXYZ Index_StandardSearch_RefSpace ==Game Version== -1.10.163.0 +1.10.980.0.1 ==Mean Average X/Y/Z Coord== --3.79508283211987|178.841153624905|1353.98640511663 +-3.43547987240239|179.449286305496|1353.99028835402 ==Min/Max X/Y/Z Coord== -213381|316690|-235522|169181|-141089|27662 ==100 most common xyz coordinates + count== @@ -123,17 +123,17 @@ Index_PositionData_SpaceXYZ Index_StandardSearch_RefSpace ==Z outliers== 49 ==Average X Bounds Width== -11.9332997489111 +11.9336403950919 ==Average Y Bounds Width== -9.21865047352901 +9.2190217554712 ==Average Z Bounds Width== -7.53328488553498 +7.5335862744642 ==Average Z Rotation== -2.02934779278865 +2.02944241570882 ==Average display name string length== -2.75597674658594 +2.92347114260164 ==Average editorID string length== -22.3343194248564 +22.3350416179404 ==Map Markers== Commonwealth|AirfieldMarker|Boston Airport|48074|-3332 Commonwealth|AirfieldMarker|Skylanes Flight 1665|-64854|-125006 @@ -551,7 +551,7 @@ NukaWorld|TownRuinsMarker|Nuka-Town USA|596|-21444 NukaWorldAmphitheater|PackMarker|Bradberton Amphitheater|-2883|-18843 NukaWorldMarket|TownRuinsMarker|Nuka-Town Market|478|-18702 ==Total Unique entities== -29065 +29068 ==Regions== Space|Region|subRegions|maxVerts Commonwealth||1|5 @@ -732,8 +732,8 @@ CombatZone01||2409 CombatZone01|Box|77 CombatZone01|Line|2 CombatZone01|Plane|7 -Commonwealth||707759 -Commonwealth|Box|6542 +Commonwealth||707770 +Commonwealth|Box|6543 Commonwealth|Line|21 Commonwealth|Plane|18 Commonwealth|Sphere|140 @@ -774,7 +774,7 @@ DBTechHighSchool02|Plane|23 DLC01FortHagenSatelliteArray01||7587 DLC01FortHagenSatelliteArray01|Box|234 DLC01FortHagenSatelliteArray01|Line|1 -DLC01Lair01||28002 +DLC01Lair01||27997 DLC01Lair01|Box|444 DLC01Lair01|Line|22 DLC01Lair01|Sphere|1 @@ -1652,7 +1652,7 @@ CombatZone01|Advanced|1 CombatZone01|Expert|1 CombatZone01|Inaccessible|1 CombatZone01|Novice 1|2 -Commonwealth||714072 +Commonwealth||714084 Commonwealth|Advanced|116 Commonwealth|Expert|80 Commonwealth|Inaccessible|14 @@ -1695,7 +1695,7 @@ DLC01FortHagenSatelliteArray01||7819 DLC01FortHagenSatelliteArray01|Advanced|4 DLC01FortHagenSatelliteArray01|Expert|3 DLC01FortHagenSatelliteArray01|Novice 1|1 -DLC01Lair01||28430 +DLC01Lair01||28425 DLC01Lair01|Advanced|19 DLC01Lair01|Expert|1 DLC01Lair01|Inaccessible|1 @@ -3182,7 +3182,7 @@ Commonwealth|ASPC|749 Commonwealth|BNDS|5013 Commonwealth|BOOK|106 Commonwealth|CONT|5352 -Commonwealth|DOOR|1309 +Commonwealth|DOOR|1312 Commonwealth|FLOR|3537 Commonwealth|FURN|6789 Commonwealth|HAZD|862 @@ -3194,9 +3194,9 @@ Commonwealth|MSTT|14914 Commonwealth|NOTE|31 Commonwealth|NPC_|3723 Commonwealth|PROJ|282 -Commonwealth|SCOL|34155 +Commonwealth|SCOL|34157 Commonwealth|SOUN|879 -Commonwealth|STAT|590073 +Commonwealth|STAT|590080 Commonwealth|TACT|11 Commonwealth|TERM|142 Commonwealth|TXST|13369 @@ -3409,7 +3409,7 @@ DLC01Lair01|FURN|114 DLC01Lair01|HAZD|10 DLC01Lair01|IDLM|107 DLC01Lair01|KEYM|2 -DLC01Lair01|LIGH|1082 +DLC01Lair01|LIGH|1077 DLC01Lair01|MISC|570 DLC01Lair01|MSTT|851 DLC01Lair01|NOTE|4 @@ -8493,7 +8493,7 @@ CombatZone01|TheCombatZone01ToExtMain001|1 CombatZone01|TommyCowerMarker|1 CombatZone01|TommyRef|1 CombatZone01|TommyRunMarker02|1 -Commonwealth||711152 +Commonwealth||711162 Commonwealth|35CourtMapMarker|1 Commonwealth|ADV017_DogTravelOutOfCommonwealthMarkerRef|1 Commonwealth|AO_Comment_AbandonedRecently_1024_003|1 @@ -11519,6 +11519,8 @@ Commonwealth|V111ExtCompanionFailsafeDoorDUPLICATE000|1 Commonwealth|V111FailsafeWarpMarker|1 Commonwealth|V81_01TychoRunAwayMarker|1 Commonwealth|VFTFarBeaconMarker|1 +Commonwealth|VLTTOSEntranceBlocker|1 +Commonwealth|VLTTOSNavCut|1 Commonwealth|VSBloodbug|1 Commonwealth|Vault111AlwaysEnableControlsTriggerREF|1 Commonwealth|Vault111ElevatorDescendAgainTrigger|1 @@ -12032,7 +12034,7 @@ DLC01FortHagenSatelliteArray01|LightDLC01AssaultronHeadTrap03|1 DLC01FortHagenSatelliteArray01|LightDLC01AssaultronHeadTrap04|1 DLC01FortHagenSatelliteArray01|LightDLC01AssaultronHeadTrap05|1 DLC01FortHagenSatelliteArray01|LightDLC01AssaultronHeadTrap06|1 -DLC01Lair01||28218 +DLC01Lair01||28213 DLC01Lair01|AO_Comment_Dusty_512_012|1 DLC01Lair01|AO_Comment_HighTech_512_008|1 DLC01Lair01|DLC01CC_LitConsolePanels|1 @@ -18951,7 +18953,7 @@ CharlestownHouse01|100|324 CharlestownLaundry|100|255 CollegeSquare01|100|2713 CombatZone01|100|2495 -Commonwealth|100|714509 +Commonwealth|100|714521 ConcordCivicAccess01|100|1995 ConcordFactory|100|598 ConcordMuseum01|100|3414 @@ -18963,7 +18965,7 @@ CustomHouseTower01|100|174 DBTechHighSchool01|100|7496 DBTechHighSchool02|100|2418 DLC01FortHagenSatelliteArray01|100|7827 -DLC01Lair01|100|28469 +DLC01Lair01|100|28464 DLC03Acadia|100|3531 DLC03AlderseaDaySpa01|100|1461 DLC03BeaverCreekLanes01|100|2976 @@ -24778,7 +24780,7 @@ TheCastle01|Mirelurk|100.0|1 0005226E|Vault81Secret|Secret Vault 81|0|5506|-7026|2097|8916|-12228|-1824|0|-700|1.3|0 000532B6|NationalGuardTrainingYard01|National Guard Recruitment Office|0|2177|2358|1375|2980|1116|3601|0|0|1.0|0 00053834|PoseidonReservoir01|Poseidon Reservoir|0|2525|2797|-1525|6576|827|4767|-2400|0|2.0|0 -00054BD5|Goodneighbor|Goodneighbor|1|15161|-10355|2560|27763|-20320|-390|0|0|1.0|0 +00054BD5|Goodneighbor|Goodneighbor|1|15161|-10355|2560|27763|-20320|-390|-2600|200|2.3|0 000560EE|CambridgePolymerLabs01|Cambridge Polymer Labs|0|2152|4077|1|4304|0|8154|0|600|1.5|0 00056BEE|MaldenDrainage01|Malden Drainage|0|296|2428|-3440|4032|1328|3529|0|0|1.0|0 00057127|CorvegaAssemblyPlant01|Corvega Assembly Plant|0|196|1088|-4343|4736|-3445|5622|200|-500|1.4|0 @@ -24997,4 +24999,4 @@ TheCastle01|Mirelurk|100.0|1 01053C58|NukaWorldMarket|Nuka-Town Market|1|981|-18351|-2549|4511|-21672|-15030|0|0|1.0|7 01054271|DLC03POIBasementArmory|Basement Armory|0|3038|2670|2396|3680|1968|3372|0|0|1.0|4 ==Instance IDs Count Vs Distinct== -1762722|1762060 +1762729|1762067 diff --git a/Developer_Guides/ImageAssetValidation.md b/Developer_Guides/ImageAssetValidation.md index 8e7d567..e2f8099 100644 --- a/Developer_Guides/ImageAssetValidation.md +++ b/Developer_Guides/ImageAssetValidation.md @@ -13,7 +13,7 @@ The tool will connect to the database so it know which cells, worldspaces, and m It will then cross reference to the contents of the `img` folder to verify that each space has an applicable background image file, that the image is of the correct dimensions, and that the file size looks correct. Then it will check for all map markers, also verifying that they exist and that they are of a normal file size.
Finally the tool will verify there are no extraneous image files present.
-If it detects any errors, these will be logged and again summarized once the check has been completed. In addition, `errors.txt` will be placed in `\Mappalachia\img\` containing the reported errors. +If it detects any errors, these will be logged and again summarized once the check has been completed. In addition, `errors.txt` will be placed in `\CommonwealthCartography\img\` containing the reported errors. ### Next steps With all image assets validated, you can now move on to development of the actual [end-user GUI program, Commonwealth Cartography](GUI.md). diff --git a/Developer_Guides/Ingest.md b/Developer_Guides/Ingest.md index 8114ab9..5799245 100644 --- a/Developer_Guides/Ingest.md +++ b/Developer_Guides/Ingest.md @@ -13,6 +13,8 @@ Using SQLite, a single batch file creates the empty database structure, then ins ## Game Version The game version string is baked into the database. If you have Fallout 4 installed in the default Steam location, you may enable automatic game version detection by downloading [`sigcheck.exe`](https://docs.microsoft.com/en-gb/sysinternals/downloads/sigcheck) from Sysinternals and placing it in the database folder - if so, the game version string will be automatically gathered from `Fallout4.exe`.
Otherwise, before running `build_database.bat`, ensure the correct game version string is stored in `gameVersion.csv`.
+
+Sometimes the version of the exe will differ from the version given in-game. The recommended rule is that the version in-game (bottom-right of settings menu) trumps the version of the exe. Where this is the case, you must call the batch script with the `override` argument. This prevents sigcheck from modifying `gameVersion.csv` and instead trusts the value you should have entered into the file previously. ## Building the database Before we can build the database, we need a copy of the sqlite tools windows binary, called sqlite3.exe. This is distributed at the [SQLite downloads page](https://www.sqlite.org/download.html). Under 'Precompiled Binaries for Windows' find the sqlite-tools zip.
diff --git a/FO4Edit/Output/Skipped_spaces_0.csv b/FO4Edit/Output/Skipped_spaces_0.csv index 81d0a7c..08b9eb3 100644 --- a/FO4Edit/Output/Skipped_spaces_0.csv +++ b/FO4Edit/Output/Skipped_spaces_0.csv @@ -339,6 +339,7 @@ spaceFormID,spaceEditorID,spaceDisplayName,isWorldspace,esmNumber 00199063,,,0,0 002105C3,,,0,0 0024A197,ccTOSFO4001,Noir Penthouse,0,0 +0024A3EF,ccEEJFO4VLTInterior02,Quick Test Cell,0,0 0002F295,REHoldingCell,Quick Test Cell,0,0 00072E2D,PackInCeilingLight02StorageCell,,0,0 00089399,PackInFloorLampPackInStorageCell,,0,0 diff --git a/ImageAssetChecker/ImageAssetChecker.cs b/ImageAssetChecker/ImageAssetChecker.cs index 98d1825..c5e53ba 100644 --- a/ImageAssetChecker/ImageAssetChecker.cs +++ b/ImageAssetChecker/ImageAssetChecker.cs @@ -5,6 +5,7 @@ namespace ImageAssetChecker internal class ImageAssetChecker { const int minMapSizeKB = 100; + const int minMapSizeKBWaterMask = 20; const int maxMapSizeKBCell = 10000; const int maxMapSizeKBWorldspace = 50000; const int maxMarkerSizeKB = 50; @@ -171,8 +172,9 @@ static void ValidateImageFile(string expectedFile, bool isWorldSpace) long sizeInBytes = new FileInfo(expectedFile).Length; long sizeInKB = sizeInBytes / 1024; int maxFileSizeKB = isWorldSpace ? maxMapSizeKBWorldspace : maxMapSizeKBCell; + int minFileSizeKb = expectedFile.EndsWith("_waterMask.png") ? minMapSizeKBWaterMask : minMapSizeKB; - if (sizeInKB > minMapSizeKB && sizeInKB < maxFileSizeKB) + if (sizeInKB > minFileSizeKb && sizeInKB < maxFileSizeKB) { Console.WriteLine($"File size OK ({sizeInKB}KB)"); } diff --git a/ImageAssetChecker/ImageAssetChecker.csproj b/ImageAssetChecker/ImageAssetChecker.csproj index d905abb..fcdf5cb 100644 --- a/ImageAssetChecker/ImageAssetChecker.csproj +++ b/ImageAssetChecker/ImageAssetChecker.csproj @@ -9,7 +9,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/MapIconProcessor/MapIconProcessor.csproj b/MapIconProcessor/MapIconProcessor.csproj index e7106c7..d80e402 100644 --- a/MapIconProcessor/MapIconProcessor.csproj +++ b/MapIconProcessor/MapIconProcessor.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Preprocessor/MapMarkers.cs b/Preprocessor/MapMarkers.cs index f6dcea9..40397bc 100644 --- a/Preprocessor/MapMarkers.cs +++ b/Preprocessor/MapMarkers.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; namespace CommonwealthCartography { diff --git a/Preprocessor/SpaceNudge.cs b/Preprocessor/SpaceNudge.cs index 991ee7a..8bcaa73 100644 --- a/Preprocessor/SpaceNudge.cs +++ b/Preprocessor/SpaceNudge.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; namespace CommonwealthCartography { @@ -397,6 +397,12 @@ public static CSVFile AddNudgeToSpaces(CSVFile spaceInfoFile) nudgeScale = 1.1f; break; + case "Goodneighbor": + nudgeX = -2600; + nudgeY = 200; + nudgeScale = 2.3f; + break; + case "GoodneighborHotelRexford": nudgeX = 800; nudgeY = 800; diff --git a/README.md b/README.md index 3f5f261..d05a38f 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ If you fancy doing some data mining or development with Commonwealth Cartography * Members of the FO76 Datamining Discord, for helping out with FO76Edit and Edit Scripts, and offering valuable knowledge and feedback based on their own experiences datamining and creating Fallout 76 maps. * [fo76utils](https://github.com/fo76utils) for their excellent and powerful render tool, used to render backgrounds for all cell maps and the Commonwealth satellite map option. * Gilpo for providing great ideas and feedback for new Mappalachia features. +* Duchess Flame for useful feature feedback, driving community engagement and moral support. * frame for reporting and helping to test DPI scaling issues. * Everyone who ever gave feedback to the original Mappalachia. Your feedback, comments, questions, and PMs were essential to defining and guiding the features I have been able to bring to life here. diff --git a/User_Guides/Customization.md b/User_Guides/Customization.md index 4ca632c..adc35cd 100644 --- a/User_Guides/Customization.md +++ b/User_Guides/Customization.md @@ -4,7 +4,7 @@ Under the 'Map' menu, there are several options which allow you to change the appearance of the overall map; ### Title -This allows you to set a title for the map - it will show in the bottom-right, and will be the default filename when saving the map image. +This allows you to set a title for the map - it will show in the top-right, and will be the default filename when saving the map image. ### Brightness This option brings up a dialog which allows you to tweak the percentage brightness of the underlying map image. Enter any value from 5% to 300%.