• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Baltimore Steam Propulsion Laboratory

Probably is, yes. This is the code that does it.

In PROGRAM\SEA_AI\AIShip.c:
Code:
// EVENT, calculate dynamic parameters for ship, one per second
void Ship_UpdateParameters()
{
//int tmpLangFileID = LanguageOpenFile("interface_strings.txt");
int iCharacterIndex = GetEventData();
if (iCharacterIndex < 0) return;
ref rCharacter = GetCharacter(iCharacterIndex);
if (CharacterIsDead(rCharacter)) return;
float fSailState = GetEventData();


// NK, Amokachi -->
if(IsMainCharacter(rCharacter))
{
if(!CheckAttribute(rCharacter,"LastSailState")) rCharacter.LastSailState = makeint(fSailState * 2);
if(makeint(fSailState * 2) != sti(rCharacter.LastSailState))
{
switch (makeint(fSailState * 2))
{
case 0:
Log_SetStringToLog(TranslateString("","Strike all sail!"));
//Play3DSound("sails_lowered", fX, fY, fZ);
break;

case 1:
Log_SetStringToLog(TranslateString("","Battle sails!"));
//Play3DSound("sails_battle", fX, fY, fZ);
break;

case 2:
Log_SetStringToLog(TranslateString("","Make all sail!"));
//Play3DSound("full_sails", fX, fY, fZ);
break;
}
if (ENABLE_EXTRA_SOUNDS == 1 && actLoadFlag == 0) {	// added by KAM after build 11 // KK
if (stf(rCharacter.LastSailState) > fSailState * 2.0) {
PlayStereoSound("sails_down");
} else {
PlayStereoSound("sails_up");
}
}
rCharacter.LastSailState = makeint(fSailState * 2);
}
}
// NK, Amokachi <--
// PB: Steam Ships -->
else
{
if(!CheckAttribute(rCharacter,"LastSailState")) rCharacter.LastSailState = makeint(fSailState/10 * 2);
}

if(SteamShip(rCharacter))
{
float fX, fY, fZ;
fX = 0; fY = 0; fZ = 0;
if(CheckAttribute(rCharacter,"Ship.pos.x")) fX=stf(rCharacter.Ship.pos.x);
if(CheckAttribute(rCharacter,"Ship.pos.y")) fY=stf(rCharacter.Ship.pos.y);
if(CheckAttribute(rCharacter,"Ship.pos.z")) fZ=stf(rCharacter.Ship.pos.z);
if(fX != 0 && fY != 0 && fZ != 0)
{
switch(sti(rCharacter.LastSailState))
{
case 0: StackSteam(rCharacter, 2); break;
case 1: StackSteam(rCharacter, 4); break;
case 2: StackSteam(rCharacter, 8); break;
}
}
}
// PB: Steam Ships <--
In PROGRAM\NK.c (can go in any other general file as well):
Code:
void StackSteam(aref rCharacter, int puffs_per_second)
// Character and number of tentacles
{
if (!bSeaActive) return;
int delay = 0;
for (int i=0; i < puffs_per_second; i++)
{
PostEvent("CreateStackSteam", delay, "i", rCharacter);
delay = delay + 1000/puffs_per_second;
}
}

#event_handler("CreateStackSteam", "StackSteamPuff");
void StackSteamPuff()
{
if (!bSeaActive) return;
aref rCharacter = GetEventData();

float fX, fY, fZ, fAY;
fX = 0; fY = 0; fZ = 0;
if(CheckAttribute(rCharacter,"Ship.pos.x")) fX=stf(rCharacter.Ship.pos.x);
else return;
if(CheckAttribute(rCharacter,"Ship.pos.y")) fY=stf(rCharacter.Ship.pos.y);
else return;
if(CheckAttribute(rCharacter,"Ship.pos.z")) fZ=stf(rCharacter.Ship.pos.z);
else return;
if(CheckAttribute(rCharacter,"Ship.Ang.y")) fAY=stf(rCharacter.Ship.Ang.y);
else return;

float gX, gY, gZ;
gX = 0; gY = 0; gZ = 0;
gX=GetCharacterShipValue(rCharacter, "stack1X");
gY=GetCharacterShipValue(rCharacter, "stack1Y");
gZ=GetCharacterShipValue(rCharacter, "stack1Z");
CreateParticleSystemX("steamer_smoke",fX - gX*cos(fAY) + gZ*sin(fAY), fY + gY, fZ + gX*sin(fAY) + gZ*cos(fAY), Whr_GetWindSpeed()*sin(Whr_GetWindAngle()), 10*Degree2Radian(90.0), Whr_GetWindSpeed()*cos(Whr_GetWindAngle()), 0);

if(HasCharacterShipAttribute(rCharacter, "stack2X") || HasCharacterShipAttribute(rCharacter, "stack2Y") || HasCharacterShipAttribute(rCharacter, "stack2Z"))
{
gX = 0; gY = 0; gZ = 0;
gX=GetCharacterShipValue(rCharacter, "stack2X");
gY=GetCharacterShipValue(rCharacter, "stack2Y");
gZ=GetCharacterShipValue(rCharacter, "stack2Z");
CreateParticleSystemX("steamer_smoke2",fX - gX*cos(fAY) + gZ*sin(fAY), fY + gY, fZ + gX*sin(fAY) + gZ*cos(fAY), Whr_GetWindSpeed()*sin(Whr_GetWindAngle()), 10*Degree2Radian(90.0), Whr_GetWindSpeed()*cos(Whr_GetWindAngle()), 0);
}

if(rCharacter.LastSailState > 0.1)
{
if(HasCharacterShipAttribute(rCharacter, "prop1X") || HasCharacterShipAttribute(rCharacter, "prop1Y") || HasCharacterShipAttribute(rCharacter, "prop1Z"))
{
gX = 0; gY = 0; gZ = 0;
gX=GetCharacterShipValue(rCharacter, "prop1X");
gY=GetCharacterShipValue(rCharacter, "prop1Y");
gZ=GetCharacterShipValue(rCharacter, "prop1Z");
CreateParticleSystemX("steamer_wake",fX - gX*cos(fAY) + gZ*sin(fAY), fY + gY, fZ + gX*sin(fAY) + gZ*cos(fAY), sin(fAY), 0.0, cos(fAY), 0);
}

if(HasCharacterShipAttribute(rCharacter, "prop2X") || HasCharacterShipAttribute(rCharacter, "prop2Y") || HasCharacterShipAttribute(rCharacter, "prop2Z"))
{
gX = 0; gY = 0; gZ = 0;
gX=GetCharacterShipValue(rCharacter, "prop2X");
gY=GetCharacterShipValue(rCharacter, "prop2Y");
gZ=GetCharacterShipValue(rCharacter, "prop2Z");
CreateParticleSystemX("steamer_wake",fX - gX*cos(fAY) + gZ*sin(fAY), fY + gY, fZ + gX*sin(fAY) + gZ*cos(fAY), sin(fAY), 0.0, cos(fAY), 0);
}
}
}
In the PROGRAM\Ships\ships_init.c entry:
Code:
// Steam Effects Coding - PB

// PB: Steam Ships -->

// Stack 1 = coal furnace exhaust
refShip.steamship = true;
refShip.stack1X = 0; // Width
refShip.stack1Y = 4.5; // Height
refShip.stack1Z = 4.5; // Length

// Smokestack 2 - boiler steam release
refShip.stack2X = 4.5; // Width
refShip.stack2Y = 2.5; // Height
refShip.stack2Z = 2.5; // Length

//SWS Prop Wash
refShip.prop1X = 6; // Width
refShip.prop1Y = 0; // Height
refShip.prop1Z = -1.5; // Length

refShip.prop2X = -6; // Width
refShip.prop2Y = 0; // Height
refShip.prop2Z = -1.5; // Length
// PB: Steam Ships <--
Try to the code between the "PB: -->" and "PB: <--" in CoAS.
 
For now that is. SuperChango did consider making it enterable but you want to save the polycount for the fancy smoke and wake effects, non?
 
Don't know. For now, things still run pretty smooth for me,
so I think we can spare a couple of pollies for the interior. :razz
 
yup, i tought of turning it into a pseudo-bridge with a cover protected "steam engine" (a complete ilusion of course), large windows, very little room to walk, the rudder placed in there too and that's about it, maybe a frame hanging from the wall with a drawing of the ship a compass and the logbook in a small shelf...

In PROGRAM\NK.c (can go in any other general file as well)

utils.c, gameutils.c, globals.c, particles.c ... any of those sounds useful ?
 
Any file that is a general file NOT seadogs.c will be fine :yes

NK is a file created originally by Nathan Kell for the Build Mod
 
Yep; CoAS wouldn't have an NK.c file, but you can put those functions in any file at all. Try to find one that makes sense though. ;)
 
Is it really finished, mind if I ask you? I spotted a real superman (lowman) howering above the stern , denying the gravitation
laugh.gif
Also the lowmen animations for the vants/ratlines(?) are incorect - the sailors tend to simply walk, not climb into the masts (sailorpoints issue?) and I think that USS Hudson or whatever it's name is (
laugh.gif
) is too much submerged: with full cargo hold the waves are reaching the bottom of portholes and sternhouse. It actually looks like it's sinking.

I'm sorry but I think we shouldn't release the ship with such flaws, unless those are fixed. I can already see a bunch of new-bie members asking "why is my steamer broken?
ib012.gif
" and filling the forum with same and irritating new threads over and over again.

Actually I might have a solution: we should remove all download links with unfinished ships (or make them modders only?) to prevent the flood of the forum. Creating something like "ships for PotC" or "ships for CoAS" section with correct download links to ships, that are optimized for one or another game, and info on how to get them ingame might help if brought to the front, since nobody seems to read the FAQ anyway.

These are just my thoughts
smile.gif
 
You're right about the ship walk file; that's the same for the Constitution as well.
We could remove the crew altogether, though I prefer somewhat weird crew over no crew.
Unfortunately nobody seems to be able and willing to fix/create ship walk files for those ships that have bugged/no version.
 
Excuse me, I fixed Constitution's walk file a long time ago. This will be released along with my other work.

This ship isn't even in internal circulation; there should be no speculation at all. If the ship is in internal testing, it wasn't done without my authorisation and thus contains the wrong config settings,
"why is my steamer broken?
ib012.gif
" and filling the forum with same and irritating new threads over and over again.

You can direct those issues to me, personally. Be thankful the ship was even made at all. Like all my present and future projects for Build, there will also be a backstory involved.

with full cargo hold the waves are reaching the bottom of portholes and sternhouse. It actually looks like it's sinking.

Intended design specification, which will again, be featured in the ship's "history". In addition to several new ships I've reviewed waterlines for all 220 other vessels in Build as well. Not all experimental ships were practical or boasted perfect seakeeping; without access to modern hydrodynamics theories, many historical ships were incredibly unsafe.
 
Indeed SWS fixed the random floating crewmember on the Constitution and all related models.
I think the crew still walks instead of climbs into the rigging though.
Also, on the steamboats, they will walk through the added cabin,
because they use the Constitution walkfile which doesn't have that cabin.

Ideally, a new walk file should be made for the steamboats that doesn't have the crew walking through the cabin.
But until somebody does that, I'd rather have a somewhat weird walk file than none at all.
I hate those crew-less ships. :facepalm
 
My decision is to release a crewless ship. Between manually editing the walk file in Notepad and spending them time to release a retextured Acheron substitute, do quality control for aforesaid 220 shipsinit entries, manage galleon San Martin's documentation and shave off 400mb off the textures folder... which is the practical option?

We have many other crewless ships and unlike dear Constitution here (and her 5 new sisters), such as the Fast Merchantman / Frigate Transport cannot be manually fixed at all. As well as many other uniquely modelled vessels. Should we pull them out for being "incomplete"? We'd have half a game.

To close this issue, my steamer right here in deployment standard has none of the issues mentioned above. Save for the waterline, which has a logical explanation.
 
There's a lot of ships in the game that still have issues.
We're keeping them in and hopefully eventually we'll be able to fix them up properly.

As far as ship walk files go, there's a lot of ships that need new ones made.
This can be done, several people have done so in the past, but we don't have anyone on that at the moment.
 
Excuse me, I fixed Constitution's walk file a long time ago. This will be released along with my other work.

This ship isn't even in internal circulation; there should be no speculation at all. If the ship is in internal testing, it wasn't done without my authorisation and thus contains the wrong config settings,
"why is my steamer broken?
ib012.gif
" and filling the forum with same and irritating new threads over and over again.

You can direct those issues to me, personally. Be thankful the ship was even made at all. Like all my present and future projects for Build, there will also be a backstory involved.

with full cargo hold the waves are reaching the bottom of portholes and sternhouse. It actually looks like it's sinking.

Intended design specification, which will again, be featured in the ship's "history". In addition to several new ships I've reviewed waterlines for all 220 other vessels in Build as well. Not all experimental ships were practical or boasted perfect seakeeping; without access to modern hydrodynamics theories, many historical ships were incredibly unsafe.


If it's fixed then I won't complain (don't really care if PotC does have steamers - it's only good to know it's possible to add such a thing).

That question was just an example of a question wich is asked each day and wich probably drives Pieter and others crazy - a stupid one. Ok I wasn't very clear with this, thus I might have been misunderstood. What I had in mind was that unfinished (I mean completely) ships tend to spawn many irritating threads with newbies asking same questions all over again, even though ship is still having a WIP status (Kazeite's BP 3.0 for example which is available to download).
If the steamers aren't completely finished we might get similar questions asked like for example :"why is there no crew on deck?(which is a current issue)". And that will bug modder(-s)-ators again.

What I suggest is simply not to release an unfinished ship, or add an obvious 'WIP' to it (this tends to be ignored though) when releasing it. Even more, I think the addition of new models should be halted untill the current ones are fixed. And all download links with WIP's made available to modders only. These are my suggestions to all modders and moderators.

As for the steamers, it's your decision, yes. But I suggest adding a warning that the models are still unfinished (wich won't work by itself
laugh.gif
) or making the steamers a separate download from the beta. That way it's possible that people downloading them will actually notice warnings
 
Be sure your concerns are valid, no one can doubt them, but is this even the place to post them?

I got one project here ready to go and right now the inspector says no they can't be deployed for experiments because the rivet-heads don't confirm to specified shape and size.

Fifty plus other projects must also be fixed before USS Hudson is cleared for launch. Is that even realistic?

If this is NASA and we have lives on the line and millions of checklists to ensure safety of high value payloads destined for the heavens then yes, 100% perfection on everything is desired. This is not NASA and we are not a bureaucracy we will not order a halt on all modeling projects until "all existing ships are fixed". All modellers here do their own work their own way on a non profit basis so we can benefit from their skill and creativity. I would like this work of art here, Build's first experimental steam vessels, released in the Beta as an example of being able to get a team together on such short notice we don't even have documentation when the model is finished and the sea trials are still ongoing.

And who says I am here right now releasing an unfinished product? I've got someone now in the Amazonian rainforest on foot thinking of his next project to release to us. There's also someone in Asia and someone in the Netherlands who do literally spend entire days and nights worrying about what is going in the next Beta. That is the attention to detail that goes into EVERY single build release and it's not my fault you have misconceptions on the work of these three people because you're testing an unauthorised beta asset which should not be on your computer in the first place.

By commenting on them you're literally ruining all element of surprise with this design, which is controversial and is intended for the general public's curiousity. Don't blame me if we decide not to bother with future steam power as well.

I am also right here and now looking at ways we can improve old models? Can walkfiles be amended easily for some ships, can the deck of galeon5 be fixed so we don't have to conn her from external view? Can we do some new bow decorations for USS Constitution so you don't have to complain to us that the new generation of advanced frigates all have US livery? We have all done that and will continue to operate free from any bureaucratic quality control system because what we need is not people poring over every single porthole announcing every flaw, but people to help us fix them.

So can you or can you not do a crew walk file for Constitution and variants and at least a dozen other ships already released? We have done our due diligence.

For the record, I found a total of a dozen ships that required their waterlines altered in Build 14. The severity of the complaints registered here should be directed there and at other existing ships instead. But I'm sure, those modellers too did everything in their power to ensure their released products was as polished as possible. It's not my fault no one was helping me with the little details and the day to day runnings of a ship refit operation so walk files be damned, savvy? A model is NOT incomplete without one and you're free to disagree with me. I'll just ignore you.
 
Back
Top