PDA

View Full Version : [REL] mySH3-TooL_v1 small SH3 Mod-Helper Tool (this is not a Mod)


Hebe Vollmaus
08-08-16, 01:40 PM
[EDIT] v2.3

Hello boys, and girls!

This is a perfect moment to say thank you, all you Modders out there. This time i would like to give some feedback, with a small Helper-Tool.

In the old days my computer seams to be not smart enough running a lot Mods or some bigMods. I get often a crash, after loooong Loading time. 8 - 10 minutes waiting, and boom. So i start peek and poking around, trying to find out whats going on. On the way i create some small Helpers, which was someday put together under one GUI. This is the result.

You can find it here in the Subsim-Downloads section Utilities.
Link on Bottom.

from the readme:
--------------------
mySH3-TooL v2.3 by HEB.

This tool is made assist me in modifying diverse text-files in the
SH3-game. You may find it useful if you are doing so for yourself.
If not, it may be useless.
There are functions of find Errors/Quirks, non-working entries,
renumber, extract, or give some info. For a complete List what it
can do see the description of Buttons below.
It performs a lot of Date/Time Checks. The range allowed for Year
is 1938-1945 in messages_*.txt and 1850-1999 on all other Dates.

first:
mySH3-TooL will not start if something wrong in the Configuration-
file (mySH3-TooL.cfg). So edit this for your needs.
Your Operating-System may prevent access of any downloaded file.
mySH3-TooL will never show a full path in any of its Window-titles!

needs:
o Windows2000 and up, Win95 does not work, run fine with Win7-64
o a Text-Editor like Notepad
(with nonproportional fixed width font is best)
o a Compare-Tool like WinMerge (Left and Right pane, not up and
down, with nonproportional fixed width font is best)
o a installed SH3-game

how does it work:
mySH3-TooL is made with a Left-Pane for directories and a Right-Pane
for the files in these dirs, and some buttons around. Navigate by
Mouse-Click on Drawers foreward and on the TwoPoints-".." backward.
The drawer where you are into will be seen on top of the panes.
The Status-Line on bottom mostly shows results of operation.
The Tool will not modify your original files, exept you say so.
Some buttons create companion-like files to work with. These may be
rolling away by yourself.
Most buttons begin with 3 letters indicating the file-extension they
work with. Some Buttons have Help-Text.
Some information will be shown in some message boxes.
You may read them before click them away.

For history please see "mySH3-TooL_H.log".
----------------------------------------------------------------------
-----Right-Buttons----------------------------------------------------

[Load Dir]
Load a Directory to work with.
----------------------------------------------------------------------
[ED]
Start Text-Editor for a quick look into the file, or edit it.
----------------------------------------------------------------------
[DELETE]
If you know what you are doing, this button can be activated by
apending "PRO" to the CommandLine. One Click - and the selected file
will be gone; No Recycler!
----------------------------------------------------------------------
[Calc]
Six panes of calculations:
Crop2Pix, Pix2Crop, LonLatDist, LonLatHead, Hex2revers and HexFloat.

The 1st two calculates Percent Crop= entries to the more readable form
or the other way around - from Cut-Pixels to Percent Crop.
Maybe 0.779297,0.564453,0.078125,0.0800781 in menu_1024_768.ini
and the dimension of the used picture maybe 512x512 becomes
Start X:399 Y:289 - High X:40 Y:41 where the originated pixels
begin and end.

The third one will calculate the in-game-Distance between two sets of
Longitude Latitude coordinates in Meters as shown in Campaign-files.
It tries to show the same distance as the Sh3MissionEditor, but also
a not that hard rounded value.
For example
-3191082.000000;4579035.000000
-3191075.000000;4579581.000000
becomes
Distance is ~546.0m (546.044870).

The fourth one will calculate the Heading from one set of
Longitude Latitude coordinates to another one.
For example
-8864590.000000;4849250.000000
-8720940.000000;4750150.000000
becomes
Heading=124.600676 (~124.6)

The Fifth will show a Hexadezimal-Number in reversed form.
Big-endian or Little-endian into its counterpart.
For example
3bbbc07fda32fe5f becomes
5ffe32da7fc0bb3b -- 0x5ffe32da7fc0bb3b
5FFE32DA7FC0BB3B -- 0x5FFE32DA7FC0BB3B.

The sixth may help with HEX- or Float-numbers.
The upper Editbox is about to find out what the 4-Hex-bytes mean.
The lower Editbox is for a positive or negative Floating-Point number.
For example ff0080bf and -1.00003 becomes
hex: 0x FF0080BF = -1.0000303984
float: 0x FC0080BF = -1.0000300407

The results can be copied and pasted somewhere else.
----------------------------------------------------------------------
[Help]
Start Editor with this "ReadMe".

----------------------------------------------------------------------
-----Bottom-Buttons-----(unsorted order)------------------------------

[1st: makeDBs - SH3]
is needed before [csv Campaigne Check] and [cfg EnGeNames Check]

Creates aight (8) "DataBase" DB-files in mySH3-TooL-directory named
DB_AirLndOrdSeaSub.csv, DB_CFG.csv, DB_Dat.csv, DB_DATb.csv,
DB_EQP.csv, DB_EqpLoadout.csv, DB_Roster.csv and DB_Sim.csv of the
current SH3-dir (selectable in Config-file) which are used to check
Campaign-files or Names-files.

This Function is the Base of Error-checking of relevant text-files
in the SH3-installation. On the first run you will see that it can
find Typos, write errors, that primarily occure when Humans type
text into a text-file, but are essential to the game.

Also these DB-files will be compared against each other to identify
Differences and inconsistencies of the SH3-installation.
If Diffs found also creates the file "DB_Diffs.txt" and will open it
in the external Editor.
Beware, every click creates new DB-files overwrite existing ones, and
deletes DB_Diffs. So for Future needs (compare/analyse/whatever) you
may rename these files.
AirLndOrdSeaSub means the Drawers Air Land Ordnance Sea Submarine.
Roster means the Drawer Roster.

Please keep in mind, most of the checks abort on the first quirk found
in a file; there may be more than one. After you have corrected the
quirk, run [makeDBs] again. (~10+ times of Roster/SSTypeVIIC.cfg :o)
(see [cfg RosterDateCheck] below)

--------------------------------------------------------------------
| Please, never change SH3-files directly in your SH3-Installation. |
| Instead use "JoneSoft Generic Mod Enabler" (JSGME) and make a Mod |
| with an clear name to put all found (and corrected) files into. |
| Do not, i repeat: _Do Not_ change MODs with JSGME if you have any |
| files open to work with! This may corrupt your SH3-installation! |
--------------------------------------------------------------------

For one quirk found two (or more) lines will be shown.
One (or more) under "--CHECK-- AirLndOrdSeaSub:"
One (or more) under "--CHECK-- Roster:"
and
One (or more) under "--CHECK-- Cfg Loadout:"
One (or more) under "--CHECK-- Eqp Loadout:"

These two (or more) lines may coexist for the same Quirk. Changing
the cause of one will also eleminate the other one (or ones).

You may prioritize lines introduced with a leading separate line like
"DB_ALOSS.csv Line 175:".
The Output from this [makeDBs] may be somewhat irritating, when a huge
number of quirks is found (more then a fullscreen-size text-output),
so the following procedure may be easier in the first place:
These DB_*.csv files can be loaded into OpenOffice-SCalc or other
Spreadsheet-style Tools for analyse. Look for entries begin with "=="
(for example ==SomeErrorMessage==).

If there are entries under AirLndOrdSeaSub but not under Roster and
say only "==not (or Err) in Roster==", this means "Not In Roster".
These found entries may only waste your (RAM/Disk-)Space since it is
unlikely they are used in Campaign without any entry in Roster.

It is unlikely you will find an lonely entry under Roster that says:
"==not (or Err) in AirLndOrdSeaSub==" since that would also trigger an
"Engine Message" on Starting Sh3MissionEditor saying unit class from
country "not found in platforms library".


Example 1: (part of unmodified SH3 v1.4b)
,---------------
|--CHECK-- AirLndOrdSeaSub:
|DB_ALOSS.csv Line 55: <===this is an introducing line===
|NCO_Flower;SH3:\data\Sea\NCO_Flower\NCO_Flower.cf g;COFlower;==Line:25 "Number 5" mismatch==
|
|--CHECK-- Roster:
|COFlower.cfg - "COFlower" - "1" (Sea/Canadian) ==not (or Err) in AirLndOrdSeaSub==
|COFlower.cfg - "COFlower" - "1" (Sea/FreeFrench) ==not (or Err) in AirLndOrdSeaSub==
|COFlower.cfg - "COFlower" - "1" (Sea/Greece) ==not (or Err) in AirLndOrdSeaSub==
`---------------
This quirk is not located in Roster but in AirLndOrdSeaSub.
Change Line 25 in NCO_Flower.cfg from "Area6" to "Area5" to go next.
This will also eleminate the 3 entries under Roster.
See above recommendation about JSGME.


Example 2: (part of unmodified SH3 v1.4b)
,---------------
|--CHECK-- AirLndOrdSeaSub:
|NDD_Somers - "DDSomers" - "4" (Sea) ==not (or Err) in Roster==
|
|--CHECK-- Roster:
|DB_ROSTER.csv Line 22: <===this is an introducing line===
|DDSomers.cfg;SH3:\data\Roster\American\Sea\DDSome rs.cfg;DDSomers;American;4;==Line:59 "[Unit 11]" Sequential Order==
`---------------
This quirk is located in Roster, not in AirLndOrdSeaSub.
Delete the second item Nr.10 or rename it to 11 and renumber the rest
of items till end from Line 59 in DDSomers.cfg to go next.
This will also eleminate the entry under AirLndOrdSeaSub.
See above recommendation about JSGME.


Example 3: (part of unmodified SH3 v1.4b)
,---------------
|--CHECK-- cfg Loadout:
|ALB_JU88 - "LBJU88" - "301" (Air) ==Loadout not exist in cfg (diff cfg<>eqp)==
|
|--CHECK-- eqp Loadout:
|ALB_JU88 (Air) ==Loadout "10x50Kg Bombs" not found in cfg (diff eqp<>cfg)==
`---------------
These two entries also coexist for the same quirk.
Difference in Loadout-definitions in "Platform.cfg" and its *.eqp.
The platform cfg "ALB_JU88.cfg" have 3 Loadouts:
Basic, "5x500Kg Bombs" and "5x250Kg Bombs".
The Equipment-file "ADB_JU87Stuka.eqp" have 4 Loadouts:
Basic, "5x500Kg Bombs", "5x250Kg Bombs" and "10x50Kg Bombs".
The "10x50Kg Bombs"-entry from eqp is useless; there is no Bomb50Kg in
Library\Bombs.dat.
See above recommendation about JSGME.


When changing the Loadout, keep in mind this Loadout may also exist
in a (Single-/Multi-)Mission- or Campaign-file!

There are also some Date checks in DefSide.cfg and CargoDef.cfg.

And some PQ (patrol-grid) check in Flotilla.cfg when Basic.cfg allows
for Grid-Renown (is not set to "0"). This PQ-check works only for the
SH3-original Gridmap and its 4-letter code for example AM52.

Also, check for Single- and MultiMissions for there Name-integrity.
(If there is an "Barham"-dir then must be an "Barham.mis" inside.)
The paths to check are taken out of Localization.cfg.

And a Check for MaxSpeed differences in Cfg- and Sim-files. You may
look first into Campaign-files (see [csv Campaigne Check] below) which
file of them (either Cfg or Sim) should be changed to equal MaxSpeed.
In Case of unmodified SH3 v1.4b and Class=PCTrawler i recommend change
Sim to 12, since there are a lot of Waypoints also set to 12 in the
Campaign_SCR. These MaxSpeed-entries here are not needed to correct to
make the [csv Campaigne Check] to work properly.

The DB_Dat.csv is created to find very small or Zero-sized 3D-objects
in DAT-files. On the way it will also count embedded images, find any
sort of Shadows and give info of a index in these DATs. If there are
no such things found, or the found index seems to be ok - the
"mystic"-row will be almost empty as in original SH3 v1.4.
The index is checked against the first found iD which should be enough
to tell if its bad.

Also scanns for some (not all) iDs for duplications.

The Statusbar will show only Dat-files in progress, not the mass other
files.
----------------------------------------------------------------------
[open SH3dir]
Try to open the SH3 directory (listed in Config mySH3-TooL.cfg) in
the Systems file-manager (explorer.exe).

Right-click to get [Create Mod SH3v14patch] (see next)
----------------------------------------------------------------------
[Create Mod SH3v14patch]
This will work only with a original SH3v14-install.
You need an additional tool named "xdelta3.exe" to work.
Please put it right next to mySH3-TooL.exe.
Allmost things what mySH3-TooL are able to find, will injected into a
new created Mod named "_mySH3-TooL_SH3v14patch" in "SH3:\MODS"-drawer.
After apply this Mod to your SH3-install the found quirks are gone.
----------------------------------------------------------------------
[select Usedir]
Try to open the working directory in the Systems file-manager
(explorer.exe).
----------------------------------------------------------------------
[eqp/cfg Renum]
o CargoDef.cfg
o DefSide.cfg
o Dials.cfg
o Equipment EQP-file *.eqp
o Locations.cfg
...can be renumbered to a new generated file.
The original file is then compared to the new renumbered file
and if they are identical, it will say so (no need to Renumber).
This Renum can also used as an test if these files are sequential
ordered.
The Renumber will take in place; the files will not be sorted.
----------------------------------------------------------------------
[Campaigne - mis2csv]
is needed before [csv Campaigne Check]
All checks on Campaigne-files are done in (Comma-separated values)
CSV-files. Actually there is no Comma, but Semicolon. Therefore it is
possible to load these csv's into an Tool like OpenOffice-SCalc or
another Spreadsheet-style Tool for much better reading or analyse.
Reading and Analyse only. For Editings you may use an Tool like
Notepad. And all saves should be in ANSI without any Formates.
A simple mechanism; whenever an OpenBracked-"[" was found => NewLine.
May work with Single-/MultiMission also.
----------------------------------------------------------------------
[Campaigne - csv2mis]
This goes the other way around. When done edit the csv you may use
this to make the csv a fully functional Campaigne-file "*.mis".
You should compare the result with your original file before using it
in-game.
This works only for mis2csv-files (see above), not with CSV-files
saved out of OpenOffice-SCalc.
----------------------------------------------------------------------
[csv Campaigne Check]
First use [makeDBs]. Then [Campaigne - mis2csv] to create a CSV-style
file to check then. This Check will not touch/work with your original
*.mis CampaigneFile.
It creates a companion-file (*--Check.csv), which you may delete
afterwards.
You can decide to start a full blown scan of all integrated checks
which usualy find a great number of quirks or a much more reduced scan
to show only the dangerous things by Right-Click the Button and
configure the Campaigne Check.

You get some infos first in a Dialog called "Part I", containing some
counters. Also here a --Check-- hint when the Header of this Campaign-
file is misused.

And in Dialog "Part II" the Checkpoints which they are:
,----------
| DelLast: (Diff. DeleteOnLastWaypoint Group<>Unit)
| Evolve : (Diff EvolveFromEntryDate Group<>Unit)
| GrpDate: (Diff Entry-/Exit-Date CommandUnit<>Unit)
| Command: (Diff CommandUnitName/Name or CommandEntry)
| DateTime: (real Date or Time quirks)
| DateEnEx: (GameEntryDate/Time vs. GameExitDate/Time)
| EnExDate: (GameEntry/ExitDate vs. Roster Appearance/Disappear)
| Loadout: (Loadout not found)
| Cargo : (CargoExt)
| Waypnt : (Speed Waypoints without Loop)
| Docked : (Docked with Speed set)
| ALOSS : (Not in AirLandOrdnanceSeaSub)
| Roster : (Not in Roster)
| Diverse: (various different things)
|DB-ERRs: (Not found Entries in DB-files)
|
|INSERT/REPLACE: Result
`----------

which means:
(The "--CHECK--" line will be inserted into the companion-file.)
If there are Ignores found, the complete Campaign-Check may be useless
due to Errors in DB-files (not korrected quirk found in [makeDBs]), or
not found entries in DB-files due to misspelled Class/Type/Origin.

DelLast: (Diff. DeleteOnLastWaypoint Group<>Unit)
--CHECK-- difference DeleteOnLastWaypoint Group<>Unit
May Crash Game if you are near in the 3D-world when the (whole) Group
is set to Delete on the last waypoint, but some entries are not. Also
may Crash Game when the (whole) Group is not set to Delete, but the
Leader-entry is.
This Check will warn if any difference is found between
Group-entry and its unit-entries even it may harmless.

Evolve : (Diff EvolveFromEntryDate Group<>Unit)
--CHECK-- difference EvolveFromEntryDate Group<>Unit
This Check will warn if any difference is found between
Group-entry and its unit-entries even it may harmless.

GrpDate: (Diff Entry-Date CommandUnit<>Unit)
--CHECK-- Diff EntryDate Unit < CommandUnit
--CHECK-- Diff EntryDate Unit > CommandUnit
This Check will warn if any difference is found between Group-Leader
and its other Group-entries even it may harmless.
If you have a short period of time from Group-CommandUnit Entry- and
Exit-Date, but a lot of Waypoints, the Group may only reach its last
Waypoint when you are near in Range in these short period of time,
when the Group is rendered in 3D. Otherwise the Group may never reach
its last Waypoint. Try Sh3MissionEditor "TimeAcc"-feature.
Different Exit-Dates between Leader and Units are ignored. Only Leader
exit-Dates seems to be used in-game.
If these differences are found can be mean that this Group-EntryDate
may not intended.
Sh3MissionEditor does not create Groups with different Entrie-dates.

Command: (Diff CommandUnitName/Name or CommandEntry)
--CHECK-- CommandEntry as RndUnit not found
--CHECK-- difference CommandUnitName<>Name
Warns if the RND-Goups CommandEntry is not found in its Units or
if the Groups CommandUnitName is different from 1st Unit-Name.
This may also Crash the Sh3MissionEditor (ME).

DateTime: (Date or Time quirks)
--CHECK-- GameEntry/ExitDate/Time mismatch/Lenght
This check finds nonexisting Date or Times.

DateEnEx: (GameEntryDate/Time vs. GameExitDate/Time)
--CHECK-- EntryDate ... ExitDate ... Time
Entry-Exit-Date-Times makes no sense. For example when the ExitDate
lives before the EntryDate, the unit may never appear.
This Check will warn even it may harmless (normal-Unit in SCR-Group).
Since my Tool can not detect Ships on the same place in different
times, you may not change these Dates blind, better check the local
area with Sh3MissionEditor (ME).
Bewahre, ME change EntryDates (without notice) after 19451201 to
Roster/Unit/AppearanceDate on "Properties/Accept".

EnExDate: (GameEntry/ExitDate vs. Roster Appearance/Disappear)
--CHECK-- ME GameEntryDate/GameExitDate vs. Roster
GameEntry-/GameExitDate differ Roster Appearance-/DisappearanceDate
between 19380101 and 19451231.
This Check will warn if differences are found between Entry-/ExitDates
and its corresponding Roster-Dates even it is harmless for SCR units.
RND-units may not shown in-game until Roster-AppearanceDate and after
Roster-DisappearanceDate. If both GameEntryDate and GameExitDate lives
before Roster-Appearance-Date the RND-Unit may never shown in-game and
this entry is useless.
Scroll right to compare the dates with the above Group/Unit initial
date-entries.
"---ok---" means found Date on this place lives within Roster-range.
"<==NoSpawn" means unit will never be seen.
"<==Ghost==" means whole RND-Group have a Time-range from EntryDate
till AppearanceDate (or from DisappearanceDate till ExitDate) of the
Leader in which renders this Group as a Ghost; not real exist in the
3D-world, only the icon on Nav-map can be seen.
"<==GhostAir" means the same, but also no icon on Nav-map.
"<==Gap (or ERR)" means there may be a Gap between Entry- and ExitDate
in which the Unit/Group will not spawn.
Beware, ME may reset these Dates (without notice) on
"Propertys/Accept". So these Hints may also useful for this, and
do not disrupt the Campaign. Say, you have DisappearanceDate=19470101
in Roster, ME will reset ExitDate to 19450101. This Date may not what
you want.
All in all, you may let SCR-Dates as they are.
But if you like to change them, again, do not change these Dates
blind, better check the local area with ME.
As there are alot of ExitDates that are different from Roster in
the SH3 v1.4b, the special case ExitDate:19451231 vs Roster:19451201
is not shown, since at that time the war is over anyway.

Loadout: (Loadout not found)
--CHECK-- Loadout not found (in *cfg)
Discrepancy in Loadout from "Platform.cfg".
If this Loadout is not found, it will reset to "Basic" in-game, which
may be not what you want.

Cargo : (CargoExt)
--CHECK-- CargoExt=0...x
May crash game if Ext for Type=102 is -1, but should be above 0. For
Type 102 it also checks that this number is inbetween CargoDef.cfg.
Only shown if any 102-unit in the game has Cargo-nodes (cfg#Kxx).

Waypnt : (Speed Waypoints without Loop)
--CHECK-- NoLoop - LastSpeed is not 0 - or DeleteOnLastWaypoint not true
--CHECK-- Loop LastWP - Speed is not 0 - or DeleteOnLastWaypoint not true
--CHECK-- Loop mismatch
--CHECK-- Loop mismatch somewhere above
Warns if it finds something like 'Loop to itself' or 'Loop to
Waypoints that not exist'. Or if the last Waypoint (WP) has Speed set
above 0, but the Unit is not set to delete when reach the last WP.
Also, this Check will warn even if DateTime between Entry- and
ExitDate is short enough. (When Unit should be deleted on 'ExitDate'.)
These Checks will not find all sort of possible combinations. The
Sh3MissionEditor "TimeAcc"-feature may help.
In MultiMission can be mean this Submarine-Commander is not set to 1.
MaxSpeed-quirks have direct impact on ETA.WP-calculation, see below.

Docked : (Docked with Speed set)
--CHECK-- Docked - Speed not 0
If this unit is part of a group, the group raid away, and this unit
will stay on place. Or the unit will stop when you come near in the
3D-world. The latter may or may not be intended.

ALOSS : (Not in AirLandOrdnanceSeaSub)
--CHECK-- Class/Type not (or Err) in AirLndOrdSeaSub (or old DB-File)
May Crash Game on Load.
(Sh3MissionEditor: Crash on item action.)
Or not found unit in AirLandOrdnanceSeaSub due to quirk in [makeDBs].

Roster : (Not in Roster)
--CHECK-- Class/Type/Origin not (or Err) in Roster (or old DB-File)
o Origin not in Roster: No Flag, no RecManual, Unit neutral green.
o Class not in RosterOrigin: RecManual no Ship only Country.
o Class+Type not in RosterOrigin: RecManual no Ship only Country.
o Class+Origin not in Roster: Crash Game on Load.
o false Type: Crash Game on Load.
(Sh3MissionEditor: no Names or Crash on item action.)
Or not found unit in Roster due to quirk in [makeDBs].

Diverse: (various different things)
see 4 paragraph below

DB-ERRs: (Not found Entries in DB-files)
If this Number is not Null, "Not Found"-entries are found in DB-files.

INSERT/REPLACE: Result
How many "--CHECK--"-lines are inserted into the new companion-file,
and (if checked) how many CfgDates are replaced.

IGNORES: (if in Status-line)
This number shows not an 1:1 ErrorCount in DB-files, but how often all
found Errors are counted by internal Program-routines.
If this Number is shown, Errors are found in DB-files.


There are some Checks without extra separate Checkpoints (as above),
which will also grow the number of inserted lines. All of them are
included under the following Checkpoint.

Diverse:

o Check for TAB (0x09) after some Entries
--CHECK-- Tab after Name/Class/Origin (ME-Crash)
This will Crash the Sh3MissionEditor (ME).

o Check for Space (0x20) after some Entries (ME-Crash)
--CHECK-- Space after Class/Origin (ME-Crash)
This will Crash the Sh3MissionEditor (ME).

o Check for DateTimes in Multi-/SingleMissions against
Mission-Start/End-Dates and the used Commander-Unit with there
Roster-Dates.
--CHECK-- ERR: Player unit enters game after mission start or
--CHECK-- ERR: Player unit exits game before mission start
These ERRs may crash the Mission. An equal Error can be seen on
Sh3MissionEditor "Check Mission".

o Check for Entry-/ExitDates with there entries in Roster/DefSide.cfg.
--CHECK-- StartDate/ExitDate not match Country in DefSide.cfg
Units "without" Country in DefSide.cfg at that time.
Units in-game are shown as neutral green.
In case of unmodified SH3 v1.4b and Netherland you may change:
;StartDate=19390909
StartDate=19390801
in DefSide.cfg. See above recommendation about JSGME.

o Check for units in groups which change Sides between 1 and 2 (not 0)
--CHECK-- Side differ (allies/axis DefSide.cfg) - Line
--CHECK-- Unit differ from last unit (Side= in DefSide.cfg)
Maybe good visual effects if you are near in the area and able to see
what units will survive in this group fighting.
Submarines in Groups for generate intelligence- or contact-reports
are ignored in this check.
If there are more than one Check-line added can be mean that there
may be also an quirk in DefSide.cfg, which may have also an impact on
other entries in the same Group.

o Check for some Entries not found
--CHECK-- Speed/Lat/Lon not found
--CHECK-- Class/Type/Origin not found
self-explanatory

o Check Duration of EntryExit-DateTime and Duration of Waypoints
--CHECK-- Duration EnExDateTime < ETA.WPs ~Date Time Duration (is current)
This Check try to calculate the Duration of all linear Waypoints (WP)
(not the Loop ones) and compare these with the Duration from EntryDate
till ExitDate+Time.
It warns if the EnEx-DateTime is smaller than the calculated ETA-WPs
DateTime. (ETA = Estimated Time of Arrival)
This means the Group or Unit may disappear before the last WP is
reached, if you are not in range.
This ETA is the minimal Duration in GMT, not included WP-Radius, Loops
or Local-time. ETA is what it is: estimated. The calculation tries to
show the same result as the Sh3MissionEditor.
If the difference is small (within minutes) you may let these Times
as they are. But keep in mind that the used route may take much more
time when alternate WPs and Loops are in effect.
Also, any Speed-quirk found should be corrected first, since ETA-
calculation is speed based.
This check is not done in Single-/MultiMissions if EvolveFromEntryDate
is set.

o Check Groups/Units with Speed set above 0, but with no Waypoint (WP)
--CHECK-- Speed set without Waypoint
self-explanatory

o Check Groups/Units with no Speed set (=0), but with more then 1 WP
--CHECK-- Speed 0 with more then one Waypoint
self-explanatory

o Check for Distances of Units whithin Groups
--CHECK-- Dist<300 UnitNum <> UnitNum ~Distance
--CHECK-- Dist<300 Spacing Distance
This check tests distances of all units in groups against each other
and will warn if lower than 300m. This distance can be specified in
the Config-file (MinDist=) from 300 to 1000 for RND- and SCR-units
separatly. Units here mean all swimming units, but not ENV.
If the distance within a Convoy is too small, some Units tend to not
maintain its position on course redirection. In very rare sittuations
the game may crash when you are near in range.

o Check Units for Speed set greater then Sim.MaxSpeed or other
Group-internal Speed-differences
--CHECK-- UnitSpeed > Sim.MaxSpeed
--CHECK-- GrpUnitSpeed > Sim.MaxSpeed
--CHECK-- GrpUnitSpeed < GrpLeaderSpeed
--CHECK-- GrpUnitSpeed > GrpLeaderSpeed
--CHECK-- GrpSpeed > GrpMaxSpeedSim
--CHECK-- SpeedWP (RND!) > GrpMaxSpeed Min (Max)
--CHECK-- SpeedWP > SimMaxSpeed
If the Speed for a Unit is set greater then the MaxSpeed-entry in
the Sim-file the unit will reduce its speed when you came near in the
3D-world. The MaxSpeed value taken out of the Cfg-file for the
Sh3MissionEditor (higher) and the entry in the Sim-file is then
different (lower).
If these units are found within a Convoy, they will also disturbe the
Convoy-Formation.
For RND-units the SpawnProbability is ignored. The MaxSpeed shown is
the highest speed the unit in a group can go, as if all units are
spawned. If the slowest unit in a RND-group is not spawned in-game
the group may have a greater speed then - or, if the slowest unit is
spawned, the RND-group may be split into faster and slower units when
you come near in range. This 'Group distorsion' may or may not
intended. If unsure let the RND-entries as they are.
Since Land-units have usually a zero speed set in SIM-file, these
non-common moving things are ignored.
Even Leader-speed is used in-game, ME does not create Groups with
different Speed-sets within groups (means not the WPs).

o Check Units/Groups (not Land/Ordnance) for Heading=0
--CHECK-- Heading=0 - may be Angle (on WP1+)
--CHECK-- Heading= count less then 6 num after point
There may be two reasons for Heading=0 -- it is set to Zero by
intention or it was forgotten to set in ME ("Head To Waypoint" or
"Pivot To Heading").
This is relevant for SCR-Groups only, but will be checked for all
with more than one Waypoint.
SCR-Groups in-game will be turning around its Leader to its Waypoints-
direction on the same place as they was initiated in 1st spawn-point.
This can result in Group distorsion not intended. So its not a good
idea to "correct" this Heading=0 automatically, even possible, without
seen the Groups Start-position in ME with your own eyes.
Also on Contact-reports (RND or SCR) they will be shown Heading=0
outside of ~500km around your Sub.


If it finds no quirks, it will say so. All good.
If it finds one (most often alot more than one), it will say so and
open the external Compare-Tool with a new generated Companion-file to
compare with.
The quirks found will be documented by a new line inserted afterwards,
telling what it think what it is. See above the --CHECK-- entries.


An example:
DeleteOnLastWaypoint=false
Speed on last Waypoint is not 0
Loop=-1
With this constellation the Ship (or Unit) will be sail forever in the
last direction. When your 3D-Dome in-game came across the actual Ship-
position, the Ship may crash on Land when the 3D-World is created.
The inserted Message will be:
--CHECK-- NoLoop - LastSpeed is not 0 - or DeleteOnLastWaypoint not true


This Campaigne-Check should be made against actual installed
Campaigne-files and a fresh generated Set of DB-files with Zero "0"
found quirks in [makeDBs]. Well, Zero is a good Startpoint, but there
are exceptions.
If you run this Check with a Set of files which do not rely on each
other (DB-files and Campaign-file) you get more "--CHECK--" entries
as it should be. This can happen, when you makeDBs first, then install
a Mod that will change Units, and then try to check the Campaign file.
By installing a Mod inbetween this process, the DB-files are no longer
upto date and the check-result is useless. To be sure, run [makeDBs]
before [csvCampaigneCheck].

If you run this CampaigneCheck with quirks found in [makeDBs], the
result will be useless, as you may also get more "--CHECK--" entries.
So please correct the found quirks from [makeDBs] first.
See above recommendation about JSGME.

May work with Single-/MultiMission also.
See also next Button for one more Check.
----------------------------------------------------------------------
[csv Campaigne Renum]
Renumber an Campaigne_*.csv file to a new generated file. The original
file is then compared to the new renumbered file and if they are
identical, it will say so (no need to Renumber).
This Renum can also used as an check if the units (units only) are
sequential ordered.
May work with Single-/MultiMission also.
----------------------------------------------------------------------
[cfg EnGeNames Check]
"EnglishNames.cfg" and "GermanNames.cfg"
Sometimes in the Navigation-Map you may have seen the Name of the Unit
is not shown. This comes from too long names. It will count them.
Also check the Class-Name against DB-files AirLndOrdSeaSub and Roster
if the En/GeNames-file reside in SH3-installation Path.
If it finds no quirks, it will say so. All good.
If it finds quirks, it will say so and open the external Compare-Tool
with a new generated Companion-file to compare with. The quirks found
will be documented by a new line inserted afterwards, telling what it
think what it is. If the Filepath can be identified as SH3-install-
Path then quirks may be also found on the end of the file.
If you run this Check with quirks found in [makeDBs], the result will
be useless, as you may get some more "--CHECK--" entries.
It will be much better visual identify by use of a fixed width font
in the Editorwindow like "Courier New".
----------------------------------------------------------------------
[cfg RosterDateCheck]
is primary made for "Roster\German\Submarine\SSTypeVIIC.cfg" and is
some sort of a "Light Version" of the date checks in [mkDBs].
Most of the Date-Quirks can be found, without restarting [mkDBs]
again and again and again, but only for the selected file.
If quirks found creates "Name.DatChk.txt" and open it in Editor.
Please delete it yourself if you are done.

Best practise is:
o Locate quirky-file with Date problem
o Copy file to a new JSGME-ModFolder-Structure
o use [cfg RosterDateCheck] on these new Copy
o correct items in these new Copy
o activate new Mod
o try another [makeDBs]

Entries with the same day for DOC/DOD are not shown. (19430930)
----------------------------------------------------------------------
[txt messages* Check]
"messages_de.txt" and "messages_en.txt"
Some Radio-Messages may be not shown, such as: Date (End Transmision)
is less then Date (Begin Transmision). This Check try to find this and
other mistyped Quirks.
The Content of the Message on the End will be not analysed, only there
existence.
This will create 4 helper-files. After job done, 2 are automatically
deleted. The other 2 may be useful for analyse. Please delete them
when you are done.
Everytime will open the external Compare-Tool to compare. You have to
scroll down to the bottom slowly as one can read. If the Line-Lenght
in the newly created companion-file are all the same, then there are
no quirks found. All good.
If any line in the new file is longer than others you may investigate.
All quirks found are inserted with "==" and makes the output-line
longer.
Also there may inserted entries from ERR0 to ERR8 with a hint like:
"#==ERR0: begin line no digit==>". This means: found no Comment-Line,
there must be an Date in front of this line, which is not found.
EQU means equal.

Example: (unmodified SH3 v1.4b)
If you scan the messages_de.txt there are no quirks found. The only
inserted "==" will be the Headerline, which is also commented out by
"#", so "NoCheck ==>" here means: the whole line is not checked,
as it is a Comment.
If you scan the messages_en.txt there are (besides the Headerline)
only a lot of TABs found on the End, which are useless and only waste
Diskspace.
----------------------------------------------------------------------
[ini menu1024* Renum]
Renumber the "menu_1024_768.ini" file to a new generated file. The
original file is then compared to the new renumbered file and if they
are identical, it will say so (no need to Renumber).
It will also check if the Materials (Mat*=) are really exist.
Right-click to enable (default) or disable this MatFileCheck.
This Renum can also used as an check if the G*-Nums are in order.
The Renumber will take in place, it will not sort all entries.

Right-click for [Split ini for SH5edit] (see next)
----------------------------------------------------------------------
[Split ini for SH5edit] (for use menu_1024_768.ini)
This function try to reduce work for loading parts of SH3-menu.ini
into SH5-MenuEditor. Creates a Directory called "_SH3-Menu_forSH5-ED"
in the MODS-directory of JSGME in SH3-directory.
----------------------------------------------------------------------
[dat getCFG]
Will try to find some Equipment in this *.dat and in related files in
the same drawer and output its result to a new generated *CFG.txt file
which you may delete afterwards.

Right-click to get [Dat Del.All.Idx.2.NewMod] (see next)
----------------------------------------------------------------------
[Dat Del.All.Idx.2.NewMod]
means Dat Delete All Index to NewModDirectory
Will delete all index from found Dat-files into a new Mod-Directory
called "_NoINDEX" in the MODS-directory of JSGME in SH3-directory.
On the way checks for things [makeDBs] does not check. If found mystic
things creates "DB_idx.csv", or delete it when nothing found.
Beware, you need alot Diskspace.
For Test-purpose only. May find bad Index-Lenght or crippled files.
----------------------------------------------------------------------
[eqp Check]
Will try to detect some quirks in this *.eqp using related files in
SH3:\data\Library or \data\Objects. Its output is generated to two new
*.txt Helper-files which you may delete afterwards.
The eqp to be checked should live in the same Drawer where the other
files for this Unit exists, else the check will Abort.

Example: (part of unmodified SH3 v1.4b)
SH3:\data\Sea\NCVE_Casablanca
select NCVE_Casablanca.eqp ==> click [eqp Check]
Result:
NodeName=A09;<==not found==

(Please delete the two *.txt Helper-files when you are done.)
Node A09 does not exist in *.dat. The entry [Equipment 15] is useless
and waste RAM- and Disk-Space.

So it is a good idea to look into the related Dat-file, if and where
the equipment is located. Sometimes there is no LinkNode, NodeName is
wrong, or the Nodes exist on the same/false position.
----------------------------------------------------------------------
[sns Check]
The same thing as [eqp Check] but for Sensor-files (*.sns).
(Please delete the two *.txt Helper-files when you are done.)
----------------------------------------------------------------------
[dat EnvColors Count]
gimmick
This was made to detect the used colors in diverse environments, and
try to create a usable "Tweak File" for the cool "SH3 Mini Tweaker".
----------------------------------------------------------------------
[ini2csv]
gimmick, not yet useful.
Can be used for *.ini or *.cfg files.
----------------------------------------------------------------------
[csv2ini]
gimmick, not yet useful.
Can be used for origin ini or cfg files, but the resulting
ini-File-Extension must be renamed by yourself.
----------------------------------------------------------------------
[sim Check Gun-Shell]
gimmick, not yet useful.
Try to find IDs from AP, HE, AA or SS shells.
----------------------------------------------------------------------
[2nd: mkDB-LonLat0]
This show some possibilities why the game may send your boat to
Longitude Latitude 0.0, left of the West-coast of Africa. At the same
time it will show you all collected infos from related files and also
include checks about quirks found not related to [1st: MakeDBs] or
[csv Campaigne Check], specially some quirks in en|de_menu.cfg,
Campaign_LND.mis and Flotilla.cfg. It will find things like mis-
spellings, conflicts, double Base-entries, Base-Lifetime gaps or
overlaps.
This is then written down to the File "DB_LonLat0.txt". Quirk-entries
are enclosed with "==".
The lots of "info:" given in the beginning is shown for better compare
with some of the quirks found.
Since ';' is already used in FlotillaNumbers '^' is used instead, if
you try to open this in a Spreadsheet-Tool like SCalc.
Flotilla.cfg has to be halfway correct, or the Check will not start.
----------------------------------------------------------------------
[zon AmmoDamageInfo]
SH3 *.zon file in SH3:\data\Library
Try to get some Info of AmmoDamageInfo from this zon and corresponding
dat-file from Bombs, DC_X_H, DepthCharges, NavalMine, Shells, Torpedo,
and create a new Companion-file (Name_iDs.csv) to identify differences
with iD, Parent iD, MinEF, MaxEF, AP, MinRadius, MaxRadius, Name.

You should delete this new created *_iDs.csv after usage, for the game
it is useless in SH3/data/Library.

Right-click will combine all above zon-files to a Database named
"DB_AmmoDamageInfo.csv" into the mySH3-TooL-directory. Every use will
overwrite this file with a new one.
There may be other files with AmmoDamageInfo.
----------------------------------------------------------------------
[csv Camp.ExtrctUnt]
means csv Campaigne Extract Unit
It is made to compare my own capabilities of extracting a Unit from
the Campaigne*.csv, to a more automatic-solution.
For example "DDHunt" or "DockedShip=false;GameEntryDate=194105" or
"Bismarck" or ";Class=NavalBase;" or "Origin=German" or "Minefield"
(without Quotes) may be usable as input.
The "Search" will be extracted with its Waypoints. Also if found
within a Group, the whole Group is extracted.

For making a playable *.mis-file with [csv2mis] a [csv Camp.Renum] and
[csv Camp.Check] should be done before use in-game.
May work with Single-/MultiMission also.
----------------------------------------------------------------------
[3rd: makeDB_ALL]
get some entries out of DB_*.csv (must already exist and Error-free),
created before with button [1st: makeDBs - SH3], and creates a new
"DB_ALL.csv". Every click will overwrite it and creates a new one.
This is made to have a faster view to some information needed when
struggling with Campaign-files. Please open this new file with "SCalc"
or whatever Spreadsheet-Tool you use, and save it later under new name
and the new preferred extension (not csv).
On Opening you may set all the Rows to "Text" but the last Row "Sil"
to "Standard". This way you can click the Sil-entry and it will open
your Operating System *.tga connected Program to have a fast view to
see what this entry looks like.
Change first line to Data/Filter/AutoFilter to restrict your Search.
----------------------------------------------------------------------

mySH3-TooL is FREEWARE, so make Money with it is not allowed.
No warranty is given to whatever.
Use at your own risk!

--
Hebe Vollmaus on 2025-01-18
Germany
END

--
Download:
http://www.subsim.com/radioroom/downloads.php?do=file&id=5022

Discussion thread:
http://www.subsim.com/radioroom/showthread.php?t=227227

Hebe Vollmaus
08-17-16, 01:13 AM
[Bump]
Please note, actual Version is v1_1a.
Old version are replaced an should no longer be used.
Thanks!

Hebe Vollmaus
11-26-17, 12:18 PM
[Bump]
Update to Version 1.2

Thank you!
Greetings.

Hebe Vollmaus
04-15-18, 01:31 PM
[Bump]
Update to Version 1.6

The versions between v1.2 and this was not made public.
But i make some Changes and Fixes, some String changes for better understanding, and change the way for the ability to update CfgDate of RndUnits. So this is now v1.6.

Thank you!
Greetings.

Hebe Vollmaus
04-16-18, 02:56 PM
[Bump]

Update to v1.6a as an Bugfix.
v1.6 does not Renumber Campaign.csv correctly.

Sorry about that. Hopefully this was the Last one.

Greetings.

Tycho
04-16-18, 03:36 PM
Use at your own risk!
Someday, when I will start to work on enhancements that I planned for my campaign files, I will use your TooL.
:Kaleun_Salute:

Hebe Vollmaus
04-17-18, 01:37 PM
Then i hope it will be useful. :)

Greetings.

Hebe Vollmaus
10-22-18, 06:31 AM
[Bump]

Just recently i stumbled on some file-collections which my Tool does not handle correct.

Update to v1.6b as an Bugfix.
Last v1.6a crashes on make Database-files and can produce false results.

Sorry about that.

Greetings.

Anvar1061
10-22-18, 11:02 PM
[Bump]

Just recently i stumbled on some file-collections which my Tool does not handle correct.

Update to v1.6b as an Bugfix.
Last v1.6a crashes on make Database-files and can produce false results.

Sorry about that.

Greetings.

Errare humanum est
http://www.subsim.com/radioroom/images/smilies/Kaleun_Thumbs_Up-1.gif

Hebe Vollmaus
10-23-18, 01:10 PM
Errare humanum est
:Kaleun_Thumbs_Up:

Absolut correct.
YMMD! :)

Greetings.

Anvar1061
10-24-18, 06:41 AM
It is difficult to work with Submarine.http://www.subsim.com/radioroom/images/smilies/Kaleun_Confused.gif Instead of the Objects folder, the program tries to search the Library.
http://www.subsim.com/radioroom/images/smilies/Kaleun_Wink.gif
LinkName=data/objects/Turm7b_1_hd;<--ERR: not in [SH3\Library\*.dat]--

Hebe Vollmaus
10-24-18, 10:55 AM
It is difficult to work with Submarine.:k_confused: Instead of the Objects folder, the program tries to search the Library.
:Kaleun_Wink:
LinkName=data/objects/Turm7b_1_hd;<--ERR: not in [SH3\Library\*.dat]--

Yes. Thats why the "ReadMe" (*.txt) says:
Works slightly Ok for Air- or Sea-files but
not with Submarines (Objects\Turm* now not detected).

This means the Search in data\Objects is currently not implemented.

I can not garantee it ever will be, since it has ultra low priority.

Greetings.

Hebe Vollmaus
11-05-18, 03:14 PM
[Bump]

Update to v1.7

You may be amused (or angry) what quirks my Tool now can find.
There are added checks like BOM Byte Order Marks, Komma instead of Points on some often found Positions, Sequential Ordering quirks, Dates should always be 8 letters ( not 9 or 7 ), and forgotten entries.

So you may get an overview, here follows an result of [makeDBs] what the Developers of my old DVD-Install have forgotten: :o

8<------------------------------
--CHECK-- AirLndOrdSeaSub:
"DDHuntII" - "4" (Sea) ==not (or Err) in Roster==
"DDSomers" - "4" (Sea) ==not (or Err) in Roster==
"DEBuckley" - "3" (Sea) ==not (or Err) in Roster==

--CHECK-- Roster:
DB_ROSTER.csv Line 22:
DDSomers.cfg;E:\SilentHunterIII\data\Roster\Americ an\Sea\DDSomers.cfg;==Line:59 "[Unit 11]" Sequential Order==
DB_ROSTER.csv Line 23:
DEBuckley.cfg;E:\SilentHunterIII\data\Roster\Ameri can\Sea\DEBuckley.cfg;==Line:327 "196700801" Date-Lenght==
DB_ROSTER.csv Line 101:
DDHuntII.cfg;E:\SilentHunterIII\data\Roster\Britis h\Sea\DDHuntII.cfg;==Line:154 "[Unit 30]" Sequential Order==
DB_ROSTER.csv Line 128:
CDAAPlatform.cfg;E:\SilentHunterIII\data\Roster\Ca nadian\Land\CDAAPlatform.cfg;==Entry not found== AppearanceDate
DB_ROSTER.csv Line 129:
CDBunkerLarge.cfg;E:\SilentHunterIII\data\Roster\C anadian\Land\CDBunkerLarge.cfg;==Entry not found== AppearanceDate
DB_ROSTER.csv Line 130:
CDBunkerMedium.cfg;E:\SilentHunterIII\data\Roster\ Canadian\Land\CDBunkerMedium.cfg;==Entry not found== AppearanceDate
DB_ROSTER.csv Line 131:
CDBunkerSmall.cfg;E:\SilentHunterIII\data\Roster\C anadian\Land\CDBunkerSmall.cfg;==Entry not found== AppearanceDate
DB_ROSTER.csv Line 132:
CDSearchLight.cfg;E:\SilentHunterIII\data\Roster\C anadian\Land\CDSearchLight.cfg;==Entry not found== AppearanceDate
DB_ROSTER.csv Line 134:
NavalBase.cfg;E:\SilentHunterIII\data\Roster\Canad ian\Land\NavalBase.cfg;==Entry not found== AppearanceDate
DB_ROSTER.csv Line 341:
CDAAPlatform.cfg;E:\SilentHunterIII\data\Roster\So uthAfrica\Land\CDAAPlatform.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName
DB_ROSTER.csv Line 342:
CDBunkerLarge.cfg;E:\SilentHunterIII\data\Roster\S outhAfrica\Land\CDBunkerLarge.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName
DB_ROSTER.csv Line 343:
CDBunkerMedium.cfg;E:\SilentHunterIII\data\Roster\ SouthAfrica\Land\CDBunkerMedium.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName
DB_ROSTER.csv Line 344:
CDBunkerSmall.cfg;E:\SilentHunterIII\data\Roster\S outhAfrica\Land\CDBunkerSmall.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName
DB_ROSTER.csv Line 345:
CDSearchLight.cfg;E:\SilentHunterIII\data\Roster\S outhAfrica\Land\CDSearchLight.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName
DB_ROSTER.csv Line 346:
NavalBase.cfg;E:\SilentHunterIII\data\Roster\South Africa\Land\NavalBase.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName
8<------------------------------

Have Fun!
Greetings.

Anvar1061
11-05-18, 05:14 PM
http://www.subsim.com/radioroom/images/smilies/Kaleun_Confused.gif
I did not understand anything of the above.

Jeff-Groves
11-05-18, 06:17 PM
I see some of the issues listed in my Vanilla install.
I'll have to download this and see if I get all the same results.

bigboywooly
11-06-18, 12:12 AM
I see some of the issues listed in my Vanilla install.
I'll have to download this and see if I get all the same results.

It's pretty much the same as Jaesens from back in the day but a useful tool all the same

Hebe Vollmaus
11-06-18, 05:44 PM
I did not understand anything of the above.

You are not alone. Sometimes i read here also posts that i cant understand.

But hopefully i can enlighten it a bit. As an first example i use this line:

"CDAAPlatform.cfg;E:\SilentHunterIII\data\Roster\So uthAfrica\Land\CDAAPlatform.cfg;==Entry not found== AppearanceDate DisappearanceDate DisplayName"

This is one line taken out the result from my Tool above, used from my old SH3-DVD-install. Vanilla without any Mods installed. I can not say, if the same will be found on youre Reworked-Rus Mod.

Look in Roster\SouthAfrica\Land Drawer there is CDAAPlatform.cfg located. Look into this file. Maybe you will see that there is no AppearanceDate no DisappearanceDate and no DisplayName.

On my Install it looks so:
8<------

[UnitClass]
ClassName=CDAAPlatform
UnitType=404
FirstAppearanceDate=19380101

[Unit 1]
Name=CDAAPlatform
DOC=19380101
DOD=19480101
8<------

This is not really a big problem to this specific file, since (to my knowledge) this CDAAPlatform (AA Defense) from SouthAfrica ist not used anywhere in the original SH3-Campaign files. But there may be other files that may be anyhow related to the Campaign. So the Tool tries to check all files.
You will see whats wrong with this file, if you open the Missioneditor ME and try to import this AA Defense (from SouthAfrica) into the Campaign_LND.mis. First you may notice the "UnitName" and the "Unit new name" looks ugly. On my sytem it is "8÷ ". (3 digits in hex 38 F7 18) This cant be right. The reason is no DisplayName entry in the file. The ME seems to use some uninitialised Memory to display the Name.
Next try to change the Date in FirstAppearanceDate to something different. Maybe change only the Year from 19380101 to 19390101. You may then reload ME. You may see that there is no difference in the "Entry Date" entry. ME seems to use something default only. The reason is the FirstAppearanceDate has to be in fact to work propperly AppearanceDate.
So my Tool says "==Entry not found== AppearanceDate..." and the other entries which are not there.


As a second example i use this line:

"DDSomers.cfg;E:\SilentHunterIII\data\Roster\Americ an\Sea\DDSomers.cfg;==Line:59 "[Unit 11]" Sequential Order=="

Go to Roster\American\Sea\DDSomers.cfg Line 59. There you may find a second entry of "[Unit 10]". The Units are not sequential ordered. My Tool says "==Line:59 "[Unit 11]" Sequential Order==".
The effect for the game may be probably only a waste of space, but i do not know for shure what other effect this will have.


"==not (or Err) in AirLndOrdSeaSub (or Roster)=="
can be mean two things. Either this Entry is not in AirLndOrdSeaSub (or Roster) or there is an Quirk in the AirLndOrdSeaSub (or Roster) files found.

The first one (==not in...) can be risky when these also used in the Campaigne.


Hope this helps.
Greetings.

Hebe Vollmaus
11-12-18, 01:03 PM
[Bump]
Update to v1.7a

added some more Checks to makeDBs
(2DCompartments, AirGroup, Squadron, Loadout)

Thank you.
Greetings.

Anvar1061
11-12-18, 01:17 PM
[Bump]
Update to v1.7a

added some more Checks to makeDBs
(2DCompartments, AirGroup, Squadron, Loadout)

Thank you.
Greetings.
It seems you forgot to place a download link.

http://www.subsim.com/radioroom/images/smilies/Kaleun_Wink.gif
http://www.subsim.com/radioroom/downloads.php?do=file&id=5022

Hebe Vollmaus
11-12-18, 02:39 PM
It seems you forgot to place a download link.

:Kaleun_Wink:
http://www.subsim.com/radioroom/downloads.php?do=file&id=5022


Thanks Anvar1061!
Post #1 updated. :salute:

Greetings.

Hebe Vollmaus
11-17-18, 04:46 PM
[Bump]
Update to v1.7b

Added Type and Origin only (without Class specified) Check to CampaigneCheck. Needed for almost all in *RND.

So my Tool is now at a state that i want it, and this mass Updates comes to an end (hopefully when no more heavy Bugs found).

Have fun.
Greetings.

Hebe Vollmaus
11-24-18, 02:14 PM
Uhm. :hmmm:
Somewhere on one of the last versions i lost the ability to search for Docked Units in the Campaign-Check, so one more version is underway.

In the meantime here my Test-files for the Messages-Check, the messages-file and a SingleMission-file that i use.

OK - means the message is shown ingame.
NOP - means NoOperation, the message is not shown ingame.

messages_de.txt
8<--
#Date (Begin Transmision);Time (Begin Transmision);Date (End Transmision);Time (End Transmision);Message Type (0=transmit once, 1=until received);Probability (%);Retransmision Interval (min.);Message content
;Test received or not - [ ok] or [NOP]
19410302 0 19430110 500 1 100 60 @TEST@^Msg^|0001 [ OK]
19410302 1 19430110 500 1 100 60 @TEST@^Msg^|0002 [ OK]
19410302 2 19430110 500 1 100 60 @TEST@^Msg^|0003 [ OK]
19410302 3 19400110 500 1 100 60 @TEST@^Msg^|0004 [NOP] 2ndDate less
19410302 4 19410302 500 100 10 @TEST@^Msg^|0005 [NOP] MessageType none (1st)
19410302 5 19410301 2200 1 100 10 @TEST@^Msg^|0006 [NOP] 2ndDate less
19410302 6 19410302 4 1 100 10 @TEST@^Msg^|0007 [ OK] 2ndTime less after Mis-start
19410302 7 194100102 6 1 100 10 @TEST@^Msg^|0008 [ OK] 2ndDate 1more digit
19410302 8 19410301 0 1 100 10 @TEST@^Msg^|0009 [NOP] 2ndDate less and 2ndTime less
19410302 9 19410302 8 1 100 10 @TEST@^Msg^|0010 [ OK] DateTime equal
19410302 10 19430110 2000 1 1002 0 @TEST@^Msg^|0011 [ OK] big(%) - Zero Retrans
19410302 11 19430110 500 1 100 60 @TEST@^Msg^|0012 [ OK]
19410302 12 19430110 500 1 100 60 @TEST@^Msg^|0013 [ OK]
19410302 13 19430110 500 1 100 60 @TEST@^Msg^|0014 [ OK] with last NewLineChar onEnd|
19410302 14 19430110 2200 100 60 @TEST@^Msg^|0015 [NOP] MessageType none (2nd)
;next Msg No Message 0016 [NOP]
19410302 15 19430110 500 1 100 60
19410302 16 19430110 500 1 100 1 @TEST@^Msg^|0017 [ OK] Retrans 1digit small
19410302 17 19430110 500 1 100 1000 @TEST@^Msg^|0018 [ OK] Retrans 4digit big
19410301 1831 19410301 500 0 100 60 @TEST@^Msg^|0019 [NOP] 2ndTime before Mis-start 0=transmit
19410301 1832 19410301 500 1 100 60 @TEST@^Msg^|0020 [NOP] 2ndTime before Mis-start 1=transmit
19410301 1831 19410301 2330 0 100 60 @TEST@^Msg^|0021 [ OK] 0=transmit once
19410301 1832 19410301 2330 1 100 60 @TEST@^Msg^|0022 [ OK] 1=transmit until
19410302 19 19430110 500 1 100 60 @TEST@^Msg^|0023 [ OK] END Messages
8<--


T_Funktexte-test.mis
8<--

[Mission]
Title=T_Funktexte-test
MissionType=0
MissionDataType=0
Year=1941
Month=3
Day=1
Hour=18
Minute=30
Fog=0
FogRand=1
Clouds=1
CloudsRand=1
Precip=0
PrecipRand=0
WindHeading=270
WindSpeed=5.000000
WindRand=1
WeatherRndInterval=8
SeaType=0
Briefing=StartDate 19410301|MessageBeginDate 19410302 0000|Test for Funk or not|Times from 0000 every minute

[Unit 1]
Name=Type VIIB#1
Class=SSTypeVIIB
Type=200
Origin=German
Side=0
Commander=1
CargoExt=-1
CargoInt=-1
CfgDate=19380101
DeleteOnLastWaypoint=false
DockedShip=false
GameEntryDate=19380625
GameEntryTime=0
GameExitDate=19430304
GameExitTime=0
EvolveFromEntryDate=false
Long=1218710.000000
Lat=6521494.000000
Height=0.000000
Heading=40.702599
Speed=0.000000
CrewRating=3
DelayMin=0
ReportPosMin=-1
ReportPosProbability=100
RandStartRadius=0.000000
NextWP=0

[Unit 1.Waypoint 1]
Speed=5.000000
Radius=0.000000
Loop=-1
LoopProbability=100
Long=1219670.000000
Lat=6522610.000000
Height=0.000000

[EditorParams]
InitLongOff=1119370496.000000
InitLatOff=-203098496.000000
ZoomIndex=0
8<--


Greetings.

Anvar1061
12-03-18, 02:08 PM
Your version 1.7b does not save English(German)Names--NrCheck.cfg
http://www.subsim.com/radioroom/images/smilies/Kaleun_Confused.gif

Hebe Vollmaus
12-04-18, 06:21 PM
Your version 1.7b does not save English(German)Names--NrCheck.cfg


When no Quirks found, there is no need for an identical copy of the Names.cfg. If something found, the file is saved (not deleted).

Please be more specific. Is WinMerge opened with Differences found?
Yes? You can also save out of WinMerge then. Or, as long as WinMerge is open, use your filemanager to make a copy of this *NrCheck.cfg.

Greetings.

Hebe Vollmaus
12-06-18, 03:43 PM
Anvar1061
and all other Users interested in:

The "EnGeNames Check" will Abort its job, when the file are prior already checked and contains "--CHECK--"-lines. These lines are only hints.
EnGeNames--NrCheck.cfg is not a real EnGeNames.cfg-file and therefore should not used as a standard EnGeNames.cfg-file.

Look in Reworked-Rus-Lite/Air/GermanNames.cfg. Lots of --Check--Lines on the end...

I'm thinking about to rename the *NrCheck.cfg to *.txt. Time will tell.

Greetings.

Anvar1061
12-07-18, 02:16 AM
@Hebe Vollmaus
Thank you for Your support. Yes. it's my fault. I was going to add these lines, but obviously I'll do it later.
http://www.subsim.com/radioroom/images/smilies/Kaleun_Cheers-1.gif

Anvar1061
09-27-19, 06:41 AM
Uhm. :hmmm:
Somewhere on one of the last versions i lost the ability to search for Docked Units in the Campaign-Check, so one more version is underway.
What's new?
https://www.subsim.com/radioroom/images/smilies/Kaleun_Los.gif

Hebe Vollmaus
09-28-19, 03:57 AM
What's new?
:Kaleun_Los:

You may read this: https://www.subsim.com/radioroom/showpost.php?p=2580914&postcount=209

To all other users: i have not vorgotten my word. It still needs more time than i expected.

Anvar1061
09-28-19, 10:17 AM
You may read this: https://www.subsim.com/radioroom/showpost.php?p=2580914&postcount=209

To all other users: i have not vorgotten my word. It still needs more time than i expected.
https://www.subsim.com/radioroom/images/smilies/Kaleun_Thumbs_Up-1.gif

Anvar1061
10-13-19, 11:13 AM
Hebe Vollmaus, I cannot send you a PM due to privacy settings.
Could you give an email address?

Hebe Vollmaus
10-14-19, 02:47 AM
Hebe Vollmaus, I cannot send you a PM due to privacy settings.
Could you give an email address?

Settings changed. Try again.

Hebe Vollmaus
01-26-20, 10:30 AM
Bump.

Some things have changed. You may study the "ReadMe" again.
A lot of "Checks" which would be usefull has not found a way into my Tool. So if it not shows any more Quirks not mean there are no ones.

Have fun.

Anvar1061
01-26-20, 11:00 AM
Bump.

Some things have changed. You may study the "ReadMe" again.
A lot of "Checks" which would be usefull has not found a way into my Tool. So if it not shows any more Quirks not mean there are no ones.

Have fun.

This is the best SH3 verification tool I've ever met.
https://www.subsim.com/radioroom/images/smilies/Kaleun_Thumbs_Up-1.gifhttps://www.subsim.com/radioroom/images/smilies/Kaleun_Thumbs_Up-1.gifhttps://www.subsim.com/radioroom/images/smilies/Kaleun_Thumbs_Up-1.gif

Hebe Vollmaus
05-10-20, 12:26 PM
[Bump]
Update to v1.9

There was at least one user tried use my tool with SH4.
Well, the files are somewhat different between SH3 and SH4, and the output gets lots of unwanted Hints.
This v1.9 will handle this better. The included check is not much intelligent; it looks for the existence of an sh3/4/5.exe and change its behavior accordingly.

Have Fun!

shadow_wxh
05-10-20, 05:06 PM
Absolute genius,it shouble make compulsory that all modder to go through this before publish their mods.:Kaleun_Thumbs_Up:

s7rikeback
05-10-20, 06:33 PM
Absolute genius,it shouble make compulsory that all modder to go through this before publish their mods.:Kaleun_Thumbs_Up:
Hebe, thank you very much... Downloading now...:Kaleun_Cheers:

Hebe Vollmaus
10-19-21, 06:26 PM
Hi,
recently i came across this message:
https://www.subsim.com/radioroom//showpost.php?p=2671206&postcount=1024

It is very annoyed to see that "Windows"TM is continuously unsettle its users with stupid Errormessages.
To say it clearly: this nonsens comes not from my Tool; it is a Windows System message. See here:
https://support.microsoft.com/en-us/topic/-windows-cannot-access-the-specified-device-path-or-file-error-when-you-try-to-install-update-or-start-a-program-or-file-46361133-47ed-6967-c13e-e75d3cc29657
Especialy this: "The file may be blocked by Windows." Read "Method 5" please.

In General i prefer unpacking my Tool to a separate Drawer, and not into the Games install-dir. But that is up to your choice.

Greetings.

propbeanie
10-20-21, 07:28 AM
MS's infinite 'wisdom' and non-backwards compatibility strikes again... Have you ever tried to edit the Windows User Path to include your mySH3-Tool folder? I have been putting mySH3-Tool inside my game folders for this very reason lately.

s7rikeback
10-20-21, 01:00 PM
MS's infinite 'wisdom' and non-backwards compatibility strikes again... Have you ever tried to edit the Windows User Path to include your mySH3-Tool folder? I have been putting mySH3-Tool inside my game folders for this very reason lately.

Like pb above, I always copy into the actual game folder, I have been doing this since the day I found this wonderful tool.
:up:

Hebe Vollmaus
10-20-21, 06:11 PM
MS's infinite 'wisdom' and non-backwards compatibility strikes again... Have you ever tried to edit the Windows User Path to include your mySH3-Tool folder? I have been putting mySH3-Tool inside my game folders for this very reason lately.

If you mean by "Windows User Path" something like the %HOMEPATH%-environment - then no.
I have decided not to align my life onto MS-philosophy. My "User Home Path", or whatever one can be understand under this, is the whole Space on all Harddisks in my PC. And not what MS thinks what it should be.

BTW, propbeanie for all 'Best of Subsim'! What an amount of helpful messages!

Hebe Vollmaus
10-20-21, 06:13 PM
Like pb above, I always copy into the actual game folder, I have been doing this since the day I found this wonderful tool.
:up:

Hey, whatever works best. If this is the fastest way to get it running - fine.

Mister_M
11-02-21, 08:38 AM
Hello !

Can I renumber the DefSide.cfg file in the Roster with your tool ?
Entries are in this format : "[SideEntry --]"

EDIT : I've found the answer, thank you !

Hebe Vollmaus
04-10-22, 05:40 AM
[Bump]

Proud to present Update to v2.0

This version introduce some more headaches.
You may study the ReadMe again. Please have a look onto the changelog.
If you have the old v1.9 version of the "ReadMe" you can use WinMerge to see some of the differences very fast.

And once more, the mass of things that can be found now does not mean each and every quirk is found.
Over all, whats left, is a complete Binary part.
I'm always faszinated, by this great amount of quirks, the game runs almost smooth. So the original Devellopers had made a very good job. In most cases, so my impression, when Users ask for a "fix" LOL, the origin reason is based on Modders work.

This version has the Campaign-Check splitted into a "Danger only" and a "Full blown" part. The 'Danger only' will find the typical 'Crash'-things only, in-game Campaign-related and MissionEditor.

Also mentioning a new Check-Button dedicated and around to interrelated en|de_menu.txt, Flotilla.cfg and Campaign_LND.mis. Also here - not all what should be checked are really integrated. I make a break and decided to release it now, instead of never, in the hope it will be useful.

-----
-----
The "Must have" of WinMerge is no longer true. Now you may use your favorite Compare-Tool instead, if you like. But the use of WinMerge is highly recommended!

To stress yourself you can use the HEX-Editor "HxD" for the CMP= entry Compare, or a Tool like "WinDiff" out of the MS Platform SDK, or "Notepad++" with Compare plugin, or something like that.

If you prefer a bit more challenge and absolut unwilling to use an additional external Compare-Tool you can even use the "FC" Command out of the Operating-System. This has to be embedded into a Batchfile like this:
@echo off
set FCout="%~dpnx1_FC.txt"
echo.
cmd.exe /C FC /L /N "%1" "%2" >%FCout%
echo.
IF %ERRORLEVEL% EQU 0 (
echo No differences found.
) ELSE (
echo files are different.
Start "" /WAIT Notepad.exe %FCout%
)
del %FCout%

echo READY.
echo.
set FCout=
pauseThe Config-file entry should then look like this:
CMP=C:\Batch\mySH3TooL_TEST_Run-CMD-FC.bat

LOL :doh:

I'm sure you will comeback to WinMerge asap.
Using WinMerge is a Feature, not a Mistake. :)


-----
-----
In the past there was a feature-request to include a check for SNS- and EQP-dates the same way as it is released in "SHValidator" for DefSide.cfg. The next StartDate should be one day later as the last EndDate.

Some of the points against including it:

Thread SUBSIM Kendras "[TEC] My discoveries about wrong appearance dates":
https://www.subsim.com/radioroom//showthread.php?p=2470026

The EQP-files in blanc SH3 have a big amount of these quirks. For example in 5 of 8 Submarines and 31 of 49 Sea-units have these quirks.
To me it looks like the pedantic change of these dates have no real impact in-game due to the games great amount of randomization of these dates.
I have only included a check when next StartDate lives befor the last EndDate, since Modders has written those dates too often to my gusto, original GameMakers only once.
For SNS-files the sittuation is not better. If there is a need for more dates for one node i have not found any single sns-file in unmodified SH3 which is 'correct' in that sense.

There is a nice description in the SH3_MISSION_EDITOR_EN.pdf page 15:
"One word on the unit versions – supply during wartime can never be 100% counted
on. Sometimes, units that are supposed to receive a certain loadout may end up with an
older one."

This clearly shows that this is a Feature of the game, not a Bug. It may be a waste of time to go further in this direction. Before do so i need to look into the Source-codes, to know whats really going on internally.

-----
-----
BTW, two hints for find some things a little bit faster related to the [csv Campaign Check]:

You may ask how to find a --CHECK--entry among of thousends of entries in the original Campaign file using Sh3Missioneditor (ME).
Its easy, but needs a temporary file to work with (for Security-reason).
For example you try to find "[Unit 1708];Name=BR Armed Trawler#67;Class=PCTrawler" in the original v1.4 Campaign_SCR.mis. Open this file with Notepad and change Name= to "xBR Armed Trawler#67". Little x just before its Name. So the result will be "Name=xBR Armed Trawler#67". Then save this file with a New Name(!), for example as Campaign_SCR--TEMP.mis and open this newly created file in ME. In the right pane TreeView-Window move the Cursor to "Units" and press "x" on the Keybord. The Cursor jumps magicaly to the interested item. After you know what you are look for, delete this TEMP-file.
If the Search is a Group, then use the "GroupName=x" and not the Units Name for this x-Name change.

You may ask how to find only one sort of --CHECK--entries in the Mass-amount of different --CHECK--entries to compare only these entries with WinMerge.
Also easy, and needs also some TEMP-files.
You can use the Operating-systems Commandline Tool "FIND" for this task. Only reverse its output to not show the uninterested things with the Operator "/V". Do this as long as the interested entries remain.
For example:
find /V "--CHECK-- SpeedWP" Drive:\Path\Campaign_RND--mis2--Check.csv >Drive:\Path\Campaign_RND--mis2--Check1.csv
will get out all SpeedWP entries.

-----
-----
If you have more then one SH3-installation and/or more then one "mySH3-TooL" running, strange things may happen. For example the [csv Campaigne Check] puts out some Quirks you cannot find a reason why. The lastly created DB-files may be for the Other one, and not for the currently used. Therefor i have integrated another Requester to ask if you be sure you have actual upto-date DB-files created with [MakeDBs].

-----
-----
Greetings.
Have fun!

--
487 Mods found (94 activated)

Hebe Vollmaus
12-17-22, 03:17 PM
[Bump]
Update to v2.1

After the last discussion i had to wait for my eyebrows come back, since someone has shaved them LOL, so i get time to make changes to the Tool.
There is not really something unbelievable new, here and there some changes, and the biggest change are the handling to the "Campaign Check", now somewhat configurable.

In the last version the "--CHECK-- ME" does not always work as intended.
It should be more clearly now.

To cross ckeck these "--CHECK-- ME" entries you may open DB_Roster.csv or the new DB_ALL.csv in a Spreadsheet-Tool like "SCalc" or whatever Tool you use, and set the first line to AutoFilter (Data/Filter/AutoFilter). Then you can use the Rows "Nation" and "UnitType" to restrict the search to what is used in-game.
In the Rows "Appear" and "Disapp" can be seen what dates are used in the Roster-files without open each and every Roster-file allone.

Some of these "--CHECK-- ME" entries are useful.
For example if they show a Destroyer-Escort in RND-Group that comes into the group on a later date, when its introduced in Roster, as after the GameEntryDate for the group. The same way for the GameExitDate. The unit may no longer be shown in the end of the Groups lifetime. Thats what the game has for good. Another random entry injected into a random group.
Thats why i let these lines as they are, if the reason for the popup is a Type 3/4 destoyer-escort.

Another part are these painful embarrassing "Ghost"-things:
2020-08-08 >>"Ghost ships"
https://www.subsim.com/radioroom/showthread.php?t=246278

2022-08-20 >>"Enemy task forces disappearing, Impossible to intercept task force"
https://www.subsim.com/radioroom/showthread.php?t=253411

For those i have added some more Text like "<==NoSpawn" and "<==Ghost==".
Please check the dates, as i have written above with SCalc, to see what is wrong here.

Every TaskForce with Cargo-Ships is now marked to remind you to decide if it should be a TaskForce or not. For an example look into [RndGroup 103] in original SH3 v1.4 Campaign_RND.mis.

Greetings.
Have fun.

--
522 Mods found (93 activated)

itadriver
12-19-22, 02:07 AM
really useful. Thank you :Kaleun_Cheers:

propbeanie
12-19-22, 07:40 AM
[Bump]
Update to v2.1

After the last discussion i had to wait for my eyebrows come back, since someone has shaved them LOL, so i get time to make changes to the Tool....
Hebe Vollmaus, as always, a scholar and a gentleman, and constantly improving your tool, which has been quite useful for years. We really appreciate you and your work - and the tool, already so very useful, and this just adds to it. Thank you very much for this! Hopefully, your eyebrows do not grow back as bushy as mine...


https://media0.giphy.com/media/IzCO8jnS2YNPy/giphy.gif?cid=790b7611b3ee0f19b130bffdece858b0400b aca5e42fc4b4&rid=giphy.gif&ct=g

lol - :salute:

itadriver
02-03-23, 03:22 AM
Thanks again for your great work.
Can you explain this line please?
I haven't found any errors anywhere.

NBB_Littorio - "C:\giochi\SH3-MIO\data\Sea\NBB_Littorio\NBB_Littorio.cfg" - "BBLittorio" (Sea) ==not (or Err) in Roster==

and this:

AFB_A6M2_Zero;C:\giochi\SH3-MIO\data\Air\AFB_A6M2_Zero\AFB_A6M2_Zero.cfg;A6M2Z ero;==Not SH3 entry== "CrewComplement SurvivalRate SurvivalPercentage"

Thank you

s7rikeback
02-03-23, 04:36 PM
Thanks again for your great work.
Can you explain this line please?
I haven't found any errors anywhere.

NBB_Littorio - "C:\giochi\SH3-MIO\data\Sea\NBB_Littorio\NBB_Littorio.cfg" - "BBLittorio" (Sea) ==not (or Err) in Roster==

and this:

AFB_A6M2_Zero;C:\giochi\SH3-MIO\data\Air\AFB_A6M2_Zero\AFB_A6M2_Zero.cfg;A6M2Z ero;==Not SH3 entry== "CrewComplement SurvivalRate SurvivalPercentage"

Thank you

NBB_Littorio - "C:\giochi\SH3-MIO\data\Sea\NBB_Littorio\NBB_Littorio.cfg" - "BBLittorio" (Sea) ==not (or Err) in Roster==
Suggests to me that there is no roster file for the above unit, might be a spelling error somewhere.

AFB_A6M2_Zero;C:\giochi\SH3-MIO\data\Air\AFB_A6M2_Zero\AFB_A6M2_Zero.cfg;A6M2Z ero;==Not SH3 entry== "CrewComplement SurvivalRate SurvivalPercentage"
data\Air\AFB_A6M2_Zero\AFB_A6M2_Zero.cfg has SH4 values attached.
- CrewComplement
- SurvivalRate
- SurvivalPercentage

Hebe Vollmaus
02-05-23, 01:39 PM
NBB_Littorio - "C:\giochi\SH3-MIO\data\Sea\NBB_Littorio\NBB_Littorio.cfg" - "BBLittorio" (Sea) ==not (or Err) in Roster==
Suggests to me that there is no roster file for the above unit, might be a spelling error somewhere.

AFB_A6M2_Zero;C:\giochi\SH3-MIO\data\Air\AFB_A6M2_Zero\AFB_A6M2_Zero.cfg;A6M2Z ero;==Not SH3 entry== "CrewComplement SurvivalRate SurvivalPercentage"
data\Air\AFB_A6M2_Zero\AFB_A6M2_Zero.cfg has SH4 values attached.
- CrewComplement
- SurvivalRate
- SurvivalPercentage


Hi all, nice words, Thanks!
Jep, s7rikeback has the key.
"not (or Err) in Roster" means two things.
o not in Roster or
o Error in Roster(file)
If there is no Littorio-entry under the Main-Entry-Roster in the list then it means "not in Roster".

I dont like SH4-values in my SH3-install. So the tool will write them out.


Greetings.

itadriver
02-08-23, 01:57 AM
Sorry but I can't find the problem.
What am I missing?

https://i.postimg.cc/BnDwH7Zk/littorio.jpg (https://postimg.cc/18mHZHqr)

propbeanie
02-08-23, 07:57 AM
The error is a comparison itadriver. Since you have the Roster cfg file, compare your Roster cfg file versus the Sea cfg file for the same ship, and look at the ClassName= and UnitType= lines. Are they the same in both files? If they are not, then neither the game nor mySH3-Tool can find the link between them either.

btw - Your EnglishNames are what show in the RecMan, but you do have RMLittorio and RM Italia in the Roster cfg, and RN Littorio in the EnglishNames - but that is not what's throwing the "err". That file follows the BBLittorio ClassName call. You could call it BBLittorio=Bubble Bath Littorio if you wanted, so long as the ClassName is spelled correctly, and you would not get that "err".

itadriver
02-08-23, 09:14 AM
i probably found the error. I will answer you after a few tests

Hebe Vollmaus
02-13-23, 01:53 PM
Thanks propbeanie, good explanation, as ever!

itadriver,
the information provided is a little too less for me to say something more.
In general i think to post the full content of the related files here is useless, and will other readers here make a bit angry.

You may send me all the related files, so i can have a deeper look into whats going on.

o DB_Diffs.txt
o DB_AirLndOrdSeaSub.csv
o DB_Roster.csv
o SH3-MIO\data\Sea\NBB_Littorio\NBB_Littorio.cfg
and the *.cfg what is your Littorio be in the Roster drawer, maybe
o SH3-MIO\data\Roster\Italian\Sea\[anyName what your Littorio.cfg is]

Put them all together into a compressed Single-Archive like Zip or better 7Zip and send me a link per PM where i can download it. Maybe use https://www.sendspace.com/ or send it to me directly. Address in mySH3-TooL, under icon/About...
My Mail-Space is somewhat restricted. I have no idea what it is exactly, but if you send me a file more then 10 MB this may fail. But that much should these five Text-files not go if compressed.

Lets see then.
Greetings.

itadriver
02-15-23, 03:46 AM
Thanks propbeanie, good explanation, as ever!

itadriver,
the information provided is a little too less for me to say something more.
In general i think to post the full content of the related files here is useless, and will other readers here make a bit angry.

You may send me all the related files, so i can have a deeper look into whats going on.

o DB_Diffs.txt
o DB_AirLndOrdSeaSub.csv
o DB_Roster.csv
o SH3-MIO\data\Sea\NBB_Littorio\NBB_Littorio.cfg
and the *.cfg what is your Littorio be in the Roster drawer, maybe
o SH3-MIO\data\Roster\Italian\Sea\[anyName what your Littorio.cfg is]

Put them all together into a compressed Single-Archive like Zip or better 7Zip and send me a link per PM where i can download it. Maybe use https://www.sendspace.com/ or send it to me directly. Address in mySH3-TooL, under icon/About...
My Mail-Space is somewhat restricted. I have no idea what it is exactly, but if you send me a file more then 10 MB this may fail. But that much should these five Text-files not go if compressed.

Lets see then.
Greetings.

Thanks Hebe Vollmaus. The program is great. There was my mistake. :Kaleun_Cheers:

Hebe Vollmaus
02-15-23, 01:22 PM
Thanks Hebe Vollmaus. The program is great. There was my mistake. :Kaleun_Cheers:

Nice to see it must be solved then. :up:

Hebe Vollmaus
07-22-23, 09:22 AM
[Bump]
small Update to 2.1a

Added renumbering for the Menu.cfg.
As a user needs it. :salute:

Greetings.
Have fun.
--
530 Mods found (96 activated)

FUBAR295
07-22-23, 10:35 AM
[Bump]
small Update to 2.1a

Added renumbering for the Menu.cfg.
As a user needs it. :salute:

Greetings.
Have fun.
--
530 Mods found (96 activated)




Thank you! :Kaleun_Salute:

s7rikeback
07-22-23, 10:56 AM
[Bump]
small Update to 2.1a

Added renumbering for the Menu.cfg.
As a user needs it. :salute:

Greetings.
Have fun.
--
530 Mods found (96 activated)
Thank you very much Hebe.
:salute:

Hebe Vollmaus
12-03-23, 01:48 PM
*Bump*
Update to 2.1d

Renumber now accept EQP-file CargoDef.cfg DefSide.cfg Dials.cfg Locations.cfg

add mkDBs "DB_Dat.csv" info about near-Zero-sized 3D-objects, images, shadows, index
add Config DatNoZero3D= search will ignore named files (without Path and Extension)
add Config Max3DobjSize= search for limited variable Size 3D-objects
add Button [sns Check]

add ButtonMenu [Dat Del.All.Idx.2.NewMod]
Will create a Mod-Directory (JSGME ready) of all found Dat-files with index. The index will be deleted.
With this Mod you can test your install if there will be any time-difference on Load the Game for example into the Museum with and without an index in DAT-files.


Greetings.
Have fun!

FUBAR295
12-03-23, 03:02 PM
Thank you Hebe !:up:

propbeanie
12-03-23, 05:09 PM
*Bump*
Update to 2.1d

Renumber now accept EQP-file CargoDef.cfg DefSide.cfg Dials.cfg Locations.cfg

add mkDBs "DB_Dat.csv" info about near-Zero-sized 3D-objects, images, shadows, index
add Config DatNoZero3D= search will ignore named files (without Path and Extension)
add Config Max3DobjSize= search for limited variable Size 3D-objects
add Button [sns Check]

add ButtonMenu [Dat Del.All.Idx.2.NewMod]
Will create a Mod-Directory (JSGME ready) of all found Dat-files with index. The index will be deleted.
With this Mod you can test your install if there will be any time-difference on Load the Game for example into the Museum with and without an index in DAT-files.


Greetings.
Have fun!
Excellent news Hebe!!! Thank you very much :salute:

Kpt. Lehmann
12-03-23, 06:09 PM
Thank you, Hebe. Good stuff. :up:

itadriver
12-04-23, 03:12 AM
Thank you :Kaleun_Cheers:

Hebe Vollmaus
01-30-24, 02:25 PM
Hi All,
a very profound user has directed me to a Dat-file which crashes my Tool on makeDBs. I can reproduce this, and found the exact place where this ugly Bug is sitting and the reason why it is running wild.
The underlying reason is this: i create a buffer in memory and sometimes i read beyond the end of the buffer, which is not allowed. So the Operating-System gives a "NoGo!" with a 0xC0000005 "STATUS_ACCESS_VIOLATION".
A simple Programmer mistake. :doh:
What bugs me is as big fat this little thing is/was, why it it does not crash always and only on specific files. Hmm, lets see - comes time, comes knowlege.

What i like to say is - a bugfix is in progress.

propbeanie
01-31-24, 09:36 AM
:yeah: Thank you Hebe! Most excellent news. Looking forward to your edits, and I want to thank you again for this fine tool! :salute:

Anvar1061
01-31-24, 02:54 PM
@Hebe Vollmaus
We are waiting for a fix for the latest version, which actually crashes sometimes.

Hebe Vollmaus
02-04-24, 05:46 AM
Bugfix need some time as i try to do also other things in it.

40+ GB of 10.300+ different SH-Dat-files on my HD needs around two and a halfe houre to scan.
Only 2 crash on a Release-buld. None in Debug-build. :oops:

Hebe Vollmaus
02-08-24, 07:14 PM
*Bump*
Update to v2.1e

I dont want you stand still in the rain for that long. So here it is.

Bugfix #1 - makeDBs - Crash while scan Dat-files.

Bugfix #2 - delAllIdx2NewMod - Abort scan after found first Dat-file without index in a drawer. (Filenumber in Library was much too less.)
Added some Hints redirected into a file named "DB_idx.csv" when found mystic things as the lots of found ugly files are too much for a Screen-only Message when scan thousends of files. "Abort" here means the file is not copied, as it may be broken afterwards when deleting a index with a defect index-lenght.
You may be amused how many files can not read by S3D, or how many files have more then one Index, or the index is not on End of file.
And also here, there is no such mystic things in clean vanilla SH3v14.

Whats left are these non-ansi Filenames/Drawernames by Cyrillic alphabets writing people like in "War Elite Mod" (WEM). Blucher.dat, NCA_BlБcher, what means Blücher.dat. Heavy cruiser named after "von Blücher". 'Ü' umlaut written by 'Б' or other things like that. If you have some dirs/files named like this you get a Warning "File not found". These files are ignored. This is by Design for now.

Greetings.
Have fun.
--
550 Mods found (9 activated)

Hebe Vollmaus
02-14-24, 01:51 PM
Some words about "==Sort order -- something after idx==".
Most of the files i have seen have this note added in "DB_idx.csv". This means what it says, there is something after the index. Sometimes the index is in the middle of the file, sometimes near the end.
But it can also mean that the index-header-lenght is broken, somewhat too short. You can see this in S3D as an Unknown Chunk on the end with unusual huge numbers on Type and Subtype. For example Type: -732102642, Subtype: 1799828.

In general all thouse files with these false index-header-lenght can be easily 'repaired' with a Hex-Editor. Naturally there are also other files which S3D will not read, not only those with index-problems.

Greetings.

propbeanie
02-14-24, 04:04 PM
Oiy yeah!!! I know 2 modders that are VERY Happy!

https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExenIyMnMybXJ6bWR1Zjk0ZXM4bHBzeDl tdTkzZjdzbHU4Z2Zod203MiZlcD12MV9pbnRlcm5hbF9naWZfY nlfaWQmY3Q9Zw/13hxeOYjoTWtK8/giphy.gif

Thank you very much Hebe Vollmaus! :salute:
:subsim:

Hebe Vollmaus
04-28-24, 07:21 AM
*Bump*
Update to v2.2

The heavy changes are made under the hood.

o ProgressBar -- for long run functions
This Bar is File-based, which means it moves faster foreward on small files then as for big files.

o Threads -- for long run functions
To make newer Operating-Systems happy; "...not reponding" Window-title should be gone now. As a consequence Program can be EXIT inbetween long operations now for whatever reason.

o New ButtonMenu [No MatFile Check] under [ini menu1024* Renum]
Material-check can be de-activated.

o New ButtonMenu [Split ini for SH5edit] under [ini menu1024* Renum]
Creates a Directory called "_SH3-Menu_forSH5-ED" in the MODS-directory of JSGME in SH3-directory.
It will cut the menu_1024_768.ini into pieces. May helpful when try to load parts of SH3-menu.ini into SH5-MenuEditor.
With parts i really mean parts. Loading the whole created Dir will not work. Also all related TGAs may better convert to DDS, and also renamed in created files. The "Zone="-line is not injected. For converting TGAs i use "texconv.exe" out of DXsdk_oct2004.
You may compare your menu_1024_768.ini with original SH5; maybe some info needed was deleted by the Modder which created your SH3-menu.ini. Also you have to read Documentations/Posts here on Subsim for handling the SH5-MenuEditor. Without it may hard to get any results.

o change separate Changelog
The history has been growing to much over time, to put everything in one ReadMe.


Greetings.
Have fun.
--
555 Mods found (12 activated)

FUBAR295
04-28-24, 07:32 AM
Thanks Hebe! :Kaleun_Salute:

Hebe Vollmaus
05-18-24, 12:26 AM
[Bump]
Update to v2.2a

Personaly i was cured long ago from Updateritis; my tool currently not.

I must really not assume that all files in all modded SH3-installations around the globe will follow SH3-Filename conventions. In general Names like "Name.ext" (Name-Point-Extension) or for Museum "Name_en.log" are usually 'normal' Files. "Name" (without extension) or "Name.log" has crashed in v2.2. Bug fixed.
Maybe i should add a new Function to scan for crap^w'unusual' Files before all.

Also remarkable is that a Installation of the above typ may not have Cargo-Nodes on Type=102 ships.
So my tool first checks if any Type 102 has these nodes, and if not, the Campaigne-check will nolonger blame these 'CargoExt=-1', since the in-game-Crash will not happen then.

Some minor changes; please look into the History.


Greetings.
Have fun!
--
562 Mods found (100 activated)

Hebe Vollmaus
11-24-24, 05:23 AM
*Bump*
Update to v2.2b

bugfix: another filename misinterpretation

New Tab "HexFloat" under Calc-Button:
The upper Editbox is about to find out what the 4-Hex-bytes mean.
The lower Editbox is for a positive or negative Floating-Point number.

As an example try to find other Hex-Values for a.g.mouse sensitivity patch.
Thread: "mouse sensitivity?" post#12 and #16
https://www.subsim.com/radioroom/showpost.php?p=2356128&postcount=12

He has been found
1x slower: 0e 74 da 3a (i.e. original value) -- 1/600

Use MS-Calculator:
12x slower -- 600*12=7200 -- 1/7200=1,388888888888889e-4
which is in Exponent-Notation. Put in lower Edit-Box (with Point instead of Comma), push Calc/[Enter]
You get: 0x B4A21139 = 0.000139
So B4 A2 11 39 is 12x slower.

or
0.5 halfe times slower -- 600*0.5=300 -- 1/300=0,0033333333333333
You get: 0x 0E745A3B = 0.003333
0E 74 5A 3B is 0.5 times slower.


Greetings.
Have fun!
--
564 mods found (100 activated)

Hebe Vollmaus
11-24-24, 09:26 AM
Ok, when the Eponent-Number comes in, the calculation is wrong.
So there must be another update. :doh:

[Edit]
Well, the HEX-values are ok. What is not fully correct is the Float-value after the "="-sign. In v2.2b the output is too short, and sometimes zero. The default precision of six is not enough to reinsert this number into the lower Float-editbox to get the same Hex-result. The numbers after the point must be at minimum of eleven to get an identical hex.

Here is a resum of a.g. mouse values with there meaning:
05 slower: 0E 74 5A 3B -- 1/300 -- 0,0033333333333333 -- 0.003333333414
1x slower: 0e 74 da 3a (i.e. original value) -- 1/600 -- 0,0016666666666667
2x slower: 0e 74 5a 3a -- 1/1200 -- 8,333333333333333e-4 -- 0.000833333354
3x slower: b4 a2 11 3a -- 1/1800 -- 5,555555555555556e-4 -- 0.000555555569
4x slower: 0e 74 da 39 -- 1/2400 -- 4,166666666666667e-4 -- 0.000416666677
5x slower: 3e c3 ae 39 -- 1/3000 -- 3,333333333333333e-4 -- 0.000333333330
6x slower: b4 a2 91 39 -- 1/3600 -- 2,777777777777778e-4 -- 0.000277777785
7x slower: 34 a9 79 39 -- 1/4200 -- 2,380952380952381e-4 -- 0.000238095236
8x slower: 0e 74 5a 39 -- 1/4800 -- 2,083333333333333e-4 -- 0.000208333338
9x slower: 45 2e 42 39 -- 1/5400 -- 1,851851851851852e-4 -- 0.000185185185
10 slower: 3E C3 2E 39 -- 1/6000 -- 1,666666666666667e-4 -- 0.000166666665
11 slower: 0A E0 1E 39 -- 1/6600 -- 1,515151515151515e-4 -- 0.000151515153
12 slower: B4 A2 11 39 -- 1/7200 -- 1,388888888888889e-4 -- 0.000138888892

e-4 means 10 high -4 -- means move the Comma or Point four times backwards to get a 'normal' dez.

If you use "online"-calculators such as
https://evanw.github.io/float-toy/
keep in mind, SH3 use reversed Hex-values.
[\Edit]

Hebe Vollmaus
11-30-24, 07:09 AM
*Bump*
Update to v2.2c

bugfix: mkDBs Drawer "Crew" not exist on SH4
change Calc HexFloat float output to precision 11 instead of default 6


Greetings.
Have fun!
--
564 mods found (100 activated)

s7rikeback
11-30-24, 12:05 PM
*Bump*
Update to v2.2c

bugfix: mkDBs Drawer "Crew" not exist on SH4
change Calc HexFloat float output to precision 11 instead of default 6


Greetings.
Have fun!
--
564 mods found (100 activated)

Thanks Hebe.

Anvar1061
11-30-24, 01:45 PM
https://www.subsim.com/radioroom/images/smilies/Kaleun_Thumbs_Up-1.gif

Hebe Vollmaus
01-18-25, 10:05 AM
[Bump]
Update to v2.3

Gone a bit deeper into Data-files.
From the beginning on i like to have a tool telling me what Guns are Not used anywhere in-game in my SH3-install.
This Goal is not reached, i stumbled over something else on each corner.

This is what is new:
o add mkDBs scan EQP LinkName Library
o add mkDBs scan Data, Main-iDs, Parent-iDs of Guns/Turrets like this, Name, double-iDs, sort
o add Checkmarks to submenu
o add ButtonMenu [Create Mod SH3v14patch]
o change mkDBs disabled for SH5 - program almost useless for SH5 now (GR2 != DAT)
o change more informative ErrMsg if things go wrong

The in [mkDBs] now included Eqp-scan is not exactly the same as the one under [eqp Check].
With scan "Main-iDs" i mean mostly iDs without Parent-iDs, which also means not all iDs are checked.
If a double is found, the tool will tell its number under "--CHECK-- double iD: (or other!)".
What "other" may be mean will be shown as Hint below the shown list.
Also, i dont like "unsorted" Data-files. Please note: unsorted files still not exist in original SH3 v14.
And the only double iD what my v2.3 tool can find in SH3 v14 is in the three SkyColors_*.dat-files. This is harmless as it will only one file loaded at a time when game loads, so this iD is excluded from scan.

For SH4: i have no idea why "Particle View 01" iD:38df5a363605be9a;S3D:0x9abe0536365adf38 still two times exist, with only difference in yz-rotation.

Add New function for original SH3v14 to create a JSGME-ready Mod in "SH3:\MODS"-directory.
Just right-click the Button [open SH3dir]. Allmost things what the tool are able to find,
will injected into a new created Mod named "_mySH3-TooL_SH3v14patch". After apply this Mod to your SH3-install the found quirks are gone then.
Included Changes can be found after scanning the SH3v14-install in DB_Diffs.txt after [mkDBs] and in DB_LonLat0.txt after [mkDB-LonLat0] (after changes made in Flotilla.cfg - without missing entries for XXI).
Just remember Qirks are enclosed with "==".
Additional changes for Campaigns also after [CampaignCheck]:
LND EntryExitDates on some NavalBases
RND Heading of Groups
RND Ghost Units in Groups to Appearing-Dates
RND Ghost Convoys to Appearing-Dates
RND Convoy marked as Taskforce to Convoy
RND - 25 entries left - why? - shown here: "--CHECK-- ME" https://www.subsim.com/radioroom/showpost.php?p=2842941&postcount=44
SCR mass Heading of Units
SCR WaypointSpeeds
SCR UnitSpeeds
SCR Docked Units with Waypoints
SCR - 15 entries left - same as above, but may have no impact in-game.
In total 58 files can be changed.

Please note - this will work only with a original vanilla SH3v14-install.
===> And you need an additional tool named "xdelta3.exe" to work. <===
Please put it right next to mySH3-TooL.exe.
The function checks first if the needed files are there, and then creates the Mod by combining your original-file with a included Patch-file to a new-file.
If it finds files not waiting for - then the creation abort and it is as it is.
If all goes right you get a Ready-Message.

The xdelta3 can be found in hsie-Mod named "V16B1-Patch-Kit.7z".
It is also included in a WAC-install.
Or
https://github.com/jmacd/xdelta
https://web.archive.org/web/20120101000000*/http://xdelta.org/
https://web.archive.org/web/20141121011417/http://code.google.com/p/xdelta/downloads/list
https://web.archive.org/web/20150211012902/http://code.google.com/p/xdelta/downloads/list

As a security note: create xdelta3 by yourself or
download it only on the upper notes. You may not download it anywhere else.
BTW, check the hashes for xdelta3.exe v30z:
CRC32 2c6fe1e6
MD5 1c6b3a6e1e9df2c8313bcf98aabfc8e1
SHA1 f37939aaa4e72111b985e1521166b19805891391

I have only tested with "Xdelta version 3.0z".

The SH3-installs in the EMEA-region should be identical for the requested files.
At least i have checked a StarForce infested SH3-DVD, a SF-free SH3-5 DVD, also a SF-free "Download"-DVD (not official). All the v14-files tested are identical.
I have not tested a regular US-version, but i still believe there are not any Timezone-related files touched.

Another hint, please remember:
It may be needed to delete the substream ZoneId created by your Browser/MCP after Download for example by clicking the Button "Unblock" (or "Zulassen" in de) in the File-options, or the file may be blocked by your big brother, the 'Operating system'.


You may ask: why do you not simply include a "normal" JSGME-Mod, instead of struggling with xdelta3 patch-files?
The simply answer is: i do not have the rights to do so.

Even UBISOFT may tolerate this behavier yet, what may be in the future?
The main-reason is, i like to find out how this could be done. :D
Also what should take into account, the XDelta-patch-files are much much shorter, even after 7z-compressed.
The 58 files created as a JSGME-Mod would need 7z-compressed 406.627 Bytes (397KB).
These 58 files created as Delta-difference need 7z-compressed 12.288 Bytes ( 12KB).
When this example takes 33 times less in size, a 1GB Download would only be around 31MB!
Of course, this calculation is only possible when files have to be changed, not when new included.

Greetings, have fun!
--
569 mods found (4 activated)

propbeanie
01-21-25, 05:35 PM
Wonderful stuff Hebe! Thank you! My only problem is understanding some of the new finds such as
--CHECK-- EQPb (try DataSort first!):
14inchTriple_USNB;16inchDouble_USNB;16inchIowaTrip le_USNB;21TorpQuadBR_D;...
What would we look for in that find?? My eyes are glossing over looking at your instructions. :D Am I correct in assuming that since it is a Library file, it will not have a "Parent ID", and should be alright otherwise?? Thank you again! :salute:

Hebe Vollmaus
01-22-25, 05:28 PM
Wonderful stuff Hebe! Thank you! My only problem is understanding some of the new finds such as--CHECK-- EQPb (try DataSort first!):
14inchTriple_USNB;16inchDouble_USNB;16inchIowaTrip le_USNB;21TorpQuadBR_D;...
What would we look for in that find?? My eyes are glossing over looking at your instructions. :D Am I correct in assuming that since it is a Library file, it will not have a "Parent ID", and should be alright otherwise?? Thank you again! :salute:

"--CHECK--" should be clear, means you may (or may not) put your attention to following things.

"EQPb" is like 'EQP the 2nd', since "EQP" already exist above. The list shows all Equipment from LinkName= out of all scanned eqp-files not found in all scanned dat-files. Look into DB_Datb.csv, what my tool has been found.
Use a separate Search-tool to find the 1st example "14inchTriple_USNB" in SH3:\data for *.eqp. Then you have the name.eqp. Then, maybe, try check this one thing with single [eqp Check] (grayed for SH4). The ouput should be somewhat similar.

"(try DataSort first!)" exist only if some not sorted files came to the scanner. The files should be also shown in a DB-file enclosed with "==".
Most of the time, i do not scan like the DATA-files are made of. Step by step, or better walk, over Header, id, Node, lenght, data... Especialy the lenght is the problem, since too often the lenght is wrong. So my scanner is based on sorted files like the files in original SH3. All these files are very well structured.
Some external mod-files are not this way created, which _not_ mean they are broken! It means my tool can not find what it serches for, due to unsorted internal file-structur. Normaly it is 3D-object first, then Node, then Name. If the Name is not there, my tool will not find the name.
In S3D this can be seen on the "Index:"-number, which will also be the internal file-position. If you change this number in S3D then this will also change the position where the Node will be positioned in the written file.
So "try DataSort first" means it makes no sense to try search for something else, related to eqp, as long there are files unsorted. When the name is not found, how can i say the eqp is there or not? I cant.

It has nothing to do with Library-file or not. *.dat is *.dat. All *dat-files are scanned. Also sim zon cam val are scanned. But not as a "Full-Scan", the whole complete file, yes, but not tested for all known things. I do not know all and everything what can be exist in DATA-files.

Yes, writing Documentation is a pain. It takes much too much time concadenate the right words together.
The actual ReadMe is already too big. Especialy for the 1st time reader. So i have no plans to make it bigger.
:salute:

Mister_M
01-27-25, 10:17 AM
Hi ! Is your program able to merge two or more mission files (SCR, LND or RND) ? :hmm2:
There is the option to do that with the Mission Editor, but sometimes there is a bug and all data is deleted from the final mission file...

propbeanie
01-27-25, 11:27 AM
"--CHECK--" should be clear, means you may (or may not) put your attention to following things.

"EQPb" is like 'EQP the 2nd', since "EQP" already exist above. The list shows all Equipment from LinkName= out of all scanned eqp-files not found in all scanned dat-files. Look into DB_Datb.csv, what my tool has been found.
Use a separate Search-tool to find the 1st example "14inchTriple_USNB" in SH3:\data for *.eqp. Then you have the name.eqp. Then, maybe, try check this one thing with single [eqp Check] (grayed for SH4). The ouput should be somewhat similar.

"(try DataSort first!)" exist only if some not sorted files came to the scanner. The files should be also shown in a DB-file enclosed with "==".
Most of the time, i do not scan like the DATA-files are made of. Step by step, or better walk, over Header, id, Node, lenght, data... Especialy the lenght is the problem, since too often the lenght is wrong. So my scanner is based on sorted files like the files in original SH3. All these files are very well structured.
Some external mod-files are not this way created, which _not_ mean they are broken! It means my tool can not find what it serches for, due to unsorted internal file-structur. Normaly it is 3D-object first, then Node, then Name. If the Name is not there, my tool will not find the name.
In S3D this can be seen on the "Index:"-number, which will also be the internal file-position. If you change this number in S3D then this will also change the position where the Node will be positioned in the written file.
So "try DataSort first" means it makes no sense to try search for something else, related to eqp, as long there are files unsorted. When the name is not found, how can i say the eqp is there or not? I cant.

It has nothing to do with Library-file or not. *.dat is *.dat. All *dat-files are scanned. Also sim zon cam val are scanned. But not as a "Full-Scan", the whole complete file, yes, but not tested for all known things. I do not know all and everything what can be exist in DATA-files.

Yes, writing Documentation is a pain. It takes much too much time concadenate the right words together.
The actual ReadMe is already too big. Especialy for the 1st time reader. So i have no plans to make it bigger.
:salute:
Thank you for the clarification. We are beginning to see the light of the greater understanding afforded by your insight into the files Hebe! lol - :yeah:

Hi ! Is your program able to merge two or more mission files (SCR, LND or RND) ? :hmm2:
There is the option to do that with the Mission Editor, but sometimes there is a bug and all data is deleted from the final mission file...
He has Campaign to csv and csv to campaign, with a Campaign renumbering also in there, such that you could take your two files, make certain they are properly numbered from "Group 1" numerically to the end first, using Hebe's tool. Then do the merge in the Mission Editor, and they should properly merge without data loss. Just do not mix RndGroup with Group (ie: RND with SCR files).

Hebe Vollmaus
02-02-25, 06:17 AM
Hi ! Is your program able to merge two or more mission files (SCR, LND or RND) ? :hmm2:
There is the option to do that with the Mission Editor, but sometimes there is a bug and all data is deleted from the final mission file...
Mister_M, some additions.

My tool will not merge files.
This is a very simple task, so until now i have never think about it.
As you found out, i would also never use the Sh3MissionEditor (ME) for merge.
I use the ME only to visualize something for better understanding what where when, and "Validate Mission".
Instead i use a Notepad-like Tool after created a CSV, and use this csv vor merging.
For this you should know how, as written by propbeanie or here by me:
http://www.subsim.com/radioroom/showpost.php?p=2456328&postcount=2
These rules (Groups under Groups, Units under Units, AND others...) must be consequent followed.

After merging you should do a [Campaign Renum] and then a [Campaigne Check], wether it is a SingleMission or Campaign file. But Campaign-files should not be mixed. SCR + SCR = OK, RND + SCR = NOP (will not work), as they have different internal structure. For merged LND you should use [mkDB-LonLat0] to find things like double entries, after it is installed as "Campaign_LND.mis".

Keep in mind that my tool can not find Units at the same place in different times. So you may get No Warnings at all for your newly added merges. Only the internal Groups are checked for its unit distances. So you should always look at your result in ME with your own eyes.
Use this "x"-trick to find something in ME very fast, the second last paragraph begin with "BTW".
https://www.subsim.com/radioroom/showpost.php?p=2802914&postcount=43

HTH