View Single Post
Old 05-26-20, 02:57 PM   #1
XenonSurf
Sea Lord
 
Join Date: Apr 2008
Location: Germany, Italy
Posts: 1,721
Downloads: 107
Uploads: 4
Default AFT Torpedos for playable surface ships in SH4

Is it at all possible to mod SH4 to add AFT torpedo functionality to playable surface ships which already exist and are downloadable? My first experiments all fail and crash the game although I'm sure all changes in ...\Data\Submarine\[sub model].sim and ...\Data\Submarine\[sub model].upc were appropriate.
Adding Forward Torpedo tubes and reserves was successful instead (I was able to add 4 torpedo tubes for the Clemson destroyer + 10 reserve torpedos in the forward tubes; they worked fine in single missions and in the campaign.

Here are extracts of the changes in NDD_Fletcher.upc which I've tried to make for 2 forward torpedo tubes + 1 AFT torpedo tube, I have edited in S3D the NDD_Fletcher.sim file under 'Tubes' setting a number 3, and under 'Doors' a number 10 for reserve torpedos (I keep the 0-I torpedo default model).

NDD_Fletcher.upc modifications:

;------------------------------------------------------------
; FWD COMPARTMENTS (active compartment with torpedo crew)
;------------------------------------------------------------

(...)

[UserPlayerUnit 1.Compartment 5.WeaponSlot 1]
ID= TorpMountB1
NameDisplayable= Torpedo Tube 1
Type=NULL
AcceptedTypes= TorpedoTube
UserCustomizable=No
IDLinkBunker=BowTorpedoRoom, BowTorpedoReserves << (not tested without BowTorpedoReserves becasue working fine with FWD torpedos alone)
IDLinkWeaponIntervalDefault1= NULL, 1944-09-31, TorpedoTube21inUS, Mk14Torpedo
IDLinkWeaponIntervalDefault2= 1944-10-01, NULL, TorpedoTube21inUS, Mk23Torpedo
ExternalNodeName3D= NULL
ExternalObjectName3D= NSS_Gato_Door02_FRU_anim01 << There are different anim files where these 3 letters change, but I don't think using different ones will crash the game
ExternalDamageZoneTypeID3D= 58

[UserPlayerUnit 1.Compartment 5.WeaponSlot 2]
ID= TorpMountB2
NameDisplayable= Torpedo Tube 2
Type=NULL
AcceptedTypes= TorpedoTube
UserCustomizable=No
IDLinkBunker=BowTorpedoRoom, BowTorpedoReserves
IDLinkWeaponIntervalDefault1= NULL, NULL, TorpedoTube21inUS, Mk14Torpedo
ExternalNodeName3D= NULL
ExternalObjectName3D= NSS_Gato_Door02_FLD_anim01
ExternalDamageZoneTypeID3D= 131

[UserPlayerUnit 1.Compartment 5.Bunker 1] ; Forward Torpedo Room
ID=BowTorpedoRoom
Capacity=12 << This may be the error, it works for forward torpedos alone, the number should reflect what's in the reserve forward tubes; should match the *.sim file for 'Doors'.
IDLinkAmmunitionIntervalDefault1= NULL, 1943-12-31, Mk14Torpedo, 10
IDLinkAmmunitionIntervalDefault2= 1944-01-01, 1944-06-31, Mk14Torpedo, 3, Mk18Torpedo, 4, Mk23Torpedo, 3
IDLinkAmmunitionIntervalDefault3= 1944-07-01, 1944-12-31, Mk14Torpedo, 5, Mk18Torpedo, 4, Mk23Torpedo, 1
IDLinkAmmunitionIntervalDefault4= 1945-01-01, NULL, Mk14Torpedo, 4, Mk18Torpedo, 6

;------------------------------------------------------------
; AFT COMPARTMENTS (active compartment with torpedo specialists as a crew)
;------------------------------------------------------------

(...)

[UserPlayerUnit 1.Compartment 1.WeaponSlot 1]
ID= TorpMountS1
NameDisplayable= Torpedo Tube 3
Type=NULL
AcceptedTypes= TorpedoTube
UserCustomizable=No
IDLinkBunker=BowTorpedoRoom, BowTorpedoReserves << I have also tested it by removing BowTorpedoReserves, will CTD anyway
IDLinkWeaponIntervalDefault1= NULL, 1944-09-31, TorpedoTube21inUS, Mk14Torpedo
IDLinkWeaponIntervalDefault2= 1944-10-01, NULL, TorpedoTube21inUS, Mk23Torpedo
ExternalNodeName3D= NULL
ExternalObjectName3D= NSS_Gato_Door02_FRU_anim01
ExternalDamageZoneTypeID3D= 58

[UserPlayerUnit 1.Compartment 1.Bunker 1] ; Aft Torpedo Room
ID=SternTorpedoRoom << I found this syntax but is it appropriate ?
Capacity=2 << Should match the *.sim file for 'Doors' but I don't know what's the hard-coded limit for AFT torpedos, so I set a low number here.
IDLinkAmmunitionIntervalDefault1= NULL, 1943-12-31, Mk14Torpedo, 10
IDLinkAmmunitionIntervalDefault2= 1944-01-01, 1944-06-31, Mk14Torpedo, 3, Mk18Torpedo, 4, Mk23Torpedo, 3
IDLinkAmmunitionIntervalDefault3= 1944-07-01, 1944-12-31, Mk14Torpedo, 5, Mk18Torpedo, 4, Mk23Torpedo, 1
IDLinkAmmunitionIntervalDefault4= 1945-01-01, NULL, Mk14Torpedo, 4, Mk18Torpedo, 6

(...)

;************************************************* ***********
;
; FunctionalSubsystem
;
;************************************************* ***********
;
(...)

[UserPlayerUnit 1.FunctionalSubsystem 19]
ID= TorpedoTube1
NameDisplayable= Torpedo Tube 1
FunctionalType= WeaponTorpedo
IDLinkFunctionalSubsystemSlots= CommRoomTDC, 0, TorpMountB1, 1

[UserPlayerUnit 1.FunctionalSubsystem 20]
ID= TorpedoTube2
NameDisplayable= Torpedo Tube 2
FunctionalType= WeaponTorpedo
IDLinkFunctionalSubsystemSlots= CommRoomTDC, 0, TorpMountB2, 1

[UserPlayerUnit 1.FunctionalSubsystem 21]
ID= TorpedoTube3
NameDisplayable= Torpedo Tube 3
FunctionalType= WeaponTorpedo
IDLinkFunctionalSubsystemSlots= CommRoomTDC, 0, TorpMountS1, 1

(...)




With these changes I cannot find anything wrong, but maybe you can?
Thanks very much to take some time for it!
Greetings,
XS
XenonSurf is offline   Reply With Quote