SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Silent Hunter 3 - 4 - 5 > SHIII Mods Workshop
Forget password? Reset here

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 08-08-16, 01:40 PM   #1
Hebe Vollmaus
Lieutenant
 
Join Date: Jun 2010
Location: Germany
Posts: 253
Downloads: 3
Uploads: 1
Default mySH3-TooL_v1 small SH3 Mod-Helper Tool (this is not a Mod)

[EDIT] v2.2a

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.2a 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]
Five panes of calculations:
Crop2Pix, Pix2Crop, LonLatDist, LonLatHead and Hex2revers.

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 -- 5FFE32DA7FC0BB3B.

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 five "DataBase" DB-files in mySH3-TooL-directory named
"DB_AirLndOrdSeaSub.csv", "DB_Roster.csv", "DB_EqpLoadout.csv",
"DB_Sim.csv" and DB_Dat.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 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 )
(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.

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).
----------------------------------------------------------------------
[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 2024-05-17
Germany
END

--
Download:
http://www.subsim.com/radioroom/down...o=file&id=5022

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

Last edited by Hebe Vollmaus; 05-18-24 at 12:17 AM. Reason: Update to v2.2a
Hebe Vollmaus is offline   Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 06:15 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © 1995- 2024 Subsim®
"Subsim" is a registered trademark, all rights reserved.