• 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

Thumbs up from me! I've just tested a steamship, and I really like the way the engines work! :onya
Have you tested speed and manoeuvring with different sail/engine settings? Something there is still completely messed up, because you do the highest speed (12 knots) when using no sails.

Of course, all I'm really going to rant about is fine-tuning the sound effects.
To my ears, it sounds slightly weird at full speed (max. volume), and perhaps too quiet at the lowest speed.
I think a lower increase in volume between the speeds would be good, with a higher minimum volume and a lower maximum volume. Does that make sense?
In PROGRAM\NK.c find:
Code:
		if(PlayEngineSound)
{
int shipSoundID;
shipSoundID = PlayStereoSound("objects\engine.wav");
float volume;
volume = 0.1 + 0.9*abs(stf(GetAttribute(rCharacter,"Ship.Power")))/100;
SendMessage(Sound,"llf",MSG_SOUND_SET_VOLUME, shipSoundID, volume);
rCharacter.Ship.PlayedEngineSound = GetSeaTime();
}
The 0.1 is the minimum volume and the 0.9 is all it goes on top of that. Replace with, for example 0.3 and 0.5:
Code:
		if(PlayEngineSound)
{
int shipSoundID;
shipSoundID = PlayStereoSound("objects\engine.wav");
float volume;
volume = 0.3 + 0.5*abs(stf(GetAttribute(rCharacter,"Ship.Power")))/100;
SendMessage(Sound,"llf",MSG_SOUND_SET_VOLUME, shipSoundID, volume);
rCharacter.Ship.PlayedEngineSound = GetSeaTime();
}
Also, I'd expect the sound effect to play faster with more engine power, but unless you can actually increase/decrease the tempo as you please,
I doubt that's possible using just the one sound effect.
Would it also be possible to get the effect to make more of a transition between the different engine speeds?
So rather than suddenly getting louder, it gradually gets louder (over, say, a few seconds)?
That would just be a way of making things work more smoothly, but everything's fine without it.
That'd require some complicated coding with event handlers, I'd imagine. Don't really want to do that...
Changing the frequency definitely isn't going to work without using different sound files. I was already quite happy I figured out how to change the volume.
At least the interval of the sound matches up properly with the interval of the splashes from the paddles.

Now, about this 'free energy' problem we have... the ship ain't solar powered, that's for sure... :wp
Adding in consumption of something would be a lot more complex as well, but it would make sense, wouldn't it? What if we could make the engine run on wood?
We could use GOOD_MAHOGANY instead of GOOD_PLANKS so there'd be no overlap with the planks already serving to repair the ship and such.
But then how much should consumption be? Surely not one unit per second, which would be by far the easiest to code.

I suppose I could use code similar to the engine sound code on time compression to make it, say, one unit per minute. Maybe even a few minutes?
The larger the interval though, the larger the chance that you've already gone ashore or to map without the unit of good being removed, so you'd have sailed for free then.
Unless we can make some sort of TOTAL timer of minutes that the engine was run. But then we should also make consumption depend on the power used.
This can get complicated quite quickly. Virtual Sailor never had any consumption in it! :whipa
 
Have you tested speed and manoeuvring with different sail/engine settings? Something there is still completely messed up, because you do the highest speed (12 knots) when using no sails.
To be honest, I'm not hugely worried about that for now. It seems to work well in different situations, and has great advantages.
I just managed to escape getting overwhelmed by a French battle fleet by striking all sails and setting the engines to full ahead into the wind. They had no chance. :cheeky
Equally, it could be used to chase an enemy against the wind without having to tack quite so much, so it's immensely useful gameplay-wise.

In PROGRAM\NK.c find:
Code:
		if(PlayEngineSound)
{
int shipSoundID;
shipSoundID = PlayStereoSound("objects\engine.wav");
float volume;
volume = 0.1 + 0.9*abs(stf(GetAttribute(rCharacter,"Ship.Power")))/100;
SendMessage(Sound,"llf",MSG_SOUND_SET_VOLUME, shipSoundID, volume);
rCharacter.Ship.PlayedEngineSound = GetSeaTime();
}
The 0.1 is the minimum volume and the 0.9 is all it goes on top of that. Replace with, for example 0.3 and 0.5:
Code:
		if(PlayEngineSound)
{
int shipSoundID;
shipSoundID = PlayStereoSound("objects\engine.wav");
float volume;
volume = 0.3 + 0.5*abs(stf(GetAttribute(rCharacter,"Ship.Power")))/100;
SendMessage(Sound,"llf",MSG_SOUND_SET_VOLUME, shipSoundID, volume);
rCharacter.Ship.PlayedEngineSound = GetSeaTime();
}
I see, thanks for pointing that out. I'll run some tests and see what sounds right.

That'd require some complicated coding with event handlers, I'd imagine. Don't really want to do that...
Changing the frequency definitely isn't going to work without using different sound files. I was already quite happy I figured out how to change the volume.
At least the interval of the sound matches up properly with the interval of the splashes from the paddles.
So maybe we could have different sound files for each speed setting, each at a different tempo? Would that be easy enough to code?
I still have no idea whether it will sound good or not, but it's worth trying as a comparison with the volume scale currently in place.

Adding in consumption of something would be a lot more complex as well, but it would make sense, wouldn't it? What if we could make the engine run on wood?
We could use GOOD_MAHOGANY instead of GOOD_PLANKS so there'd be no overlap with the planks already serving to repair the ship and such.
But then how much should consumption be? Surely not one unit per second, which would be by far the easiest to code.
The way I see it, adding the need to power the engine with some resource will make the player more conscious about the way they use the engines.
For instance, why wouldn't you just set them to full ahead all the time, so you get to your destination much sooner? With free energy, there's no reason why not to.
However, with limited energy, the player should have to regulate the use of the engines depending on their situation.
With a good strong tail wind, there's no need for the engines to help out much, if at all. With low wind speeds, clearly the engine will help much more.
Equally, when low on resources, you can choose to stop using the engine to conserve power unless you really need it.
All those things combined would make things just that little bit more interesting.

Anyway, you're suggesting burning mahogany? Are you sure about that?! That's an expensive and highly decorative wood, you know! :shock
I did consider wood as a possible fuel, but it just doesn't seem right unless you use logs, not planks. Planks have been cut to shape for construction, not burning.
It might be best to add either some logs or coal as a new item, with the latter fitting in more for normal trade purposes.
Perhaps I'm being too picky, but hopefully my reasoning is somewhat logical. :shrug

Then of course there's the rate of fuel consumption. I appreciate this will be difficult to code whichever way you try it, but here's a suggestion anyway.
I think it'd make the most sense to have the rate of consumption proportional to the speed setting of the engine, wouldn't you say?
And how about using a fraction of a unit per second, rather than a set number of units per minute?
That would allow for more accurate depletion of the resources and then makes the rate of consumption even more important.
Don't worry if none of that can be done easily; it's just what I'd consider the ideal solution, and I know ideal isn't always possible.
 
To be honest, I'm not hugely worried about that for now. It seems to work well in different situations, and has great advantages.
I just managed to escape getting overwhelmed by a French battle fleet by striking all sails and setting the engines to full ahead into the wind. They had no chance. :cheeky
Equally, it could be used to chase an enemy against the wind without having to tack quite so much, so it's immensely useful gameplay-wise.
Absolutely agreed on the gameplay advantages.

So maybe we could have different sound files for each speed setting, each at a different tempo? Would that be easy enough to code?
I still have no idea whether it will sound good or not, but it's worth trying as a comparison with the volume scale currently in place.
Can do, provided the new sound files also last one second.

The way I see it, adding the need to power the engine with some resource will make the player more conscious about the way they use the engines.
For instance, why wouldn't you just set them to full ahead all the time, so you get to your destination much sooner? With free energy, there's no reason why not to.
However, with limited energy, the player should have to regulate the use of the engines depending on their situation.
With a good strong tail wind, there's no need for the engines to help out much, if at all. With low wind speeds, clearly the engine will help much more.
Equally, when low on resources, you can choose to stop using the engine to conserve power unless you really need it.
All those things combined would make things just that little bit more interesting.
You're very right, of course. And I might've thought up a fairly easy way to code it in; I was thinking too difficult before. I'll give it a shot.

Anyway, you're suggesting burning mahogany? Are you sure about that?! That's an expensive and highly decorative wood, you know! :shock
I did consider wood as a possible fuel, but it just doesn't seem right unless you use logs, not planks. Planks have been cut to shape for construction, not burning.
It might be best to add either some logs or coal as a new item, with the latter fitting in more for normal trade purposes.
Perhaps I'm being too picky, but hopefully my reasoning is somewhat logical. :shrug
I was thinking to start out with just working with what we've got. Unless somebody can make two coal interface pictures so we can actually add a new good. I'm not sure I could manage myself to match the other pictures' style. :facepalm

Then of course there's the rate of fuel consumption. I appreciate this will be difficult to code whichever way you try it, but here's a suggestion anyway.
I think it'd make the most sense to have the rate of consumption proportional to the speed setting of the engine, wouldn't you say?
And how about using a fraction of a unit per second, rather than a set number of units per minute?
That would allow for more accurate depletion of the resources and then makes the rate of consumption even more important.
Don't worry if none of that can be done easily; it's just what I'd consider the ideal solution, and I know ideal isn't always possible.
My idea: add a counter to the player that increases every second by the value of the set engine power.
Then when that counter reaches a certain number, remove one unit of the good used. If the number of units on board becomes zero, stop the engine.

The other thing I'm pondering is the ability of the engine to receive damage.
Could be proportional to hull strength? Eg. 20% hull strength left = 20% engine efficiency?
 
I once cooked up a basic design for the code that would control the sound speed. Is that useless now, or just not plausible?

Here's a thought: you can currently harvest planks for jungles, or have bandits chop down a few trees for you if you're lucky. I wouldn't actually mind using repair planks for fuel, simply because it would also overlap with the two features i just mentioned. Otherwise it wouldn't quite make sense that you can obtain planks from the jungle, but not logs. An extra dialogue option to get logs instead would of course be another way of doing this, but is that really a better alternative? Might be better to just stick with coal. Or use repair planks once you run out of coal. It could in fact be a good idea to have coal as a fuel type which would be twice as efficient as planks, and would of course have the benefit of not burning your repair materials. Planks would be the poor man's fuel, so to speak.

I dunno about the engine damage myself. your idea sounds about right though, since you're essentially using your hull as a sail in terms of damage.
 
I was thinking to start out with just working with what we've got. Unless somebody can make two coal interface pictures so we can actually add a new good. I'm not sure I could manage myself to match the other pictures' style. :facepalm
Well we could always start with a basic coal texture; it doesn't have to be perfect for testing purposes. Where would such textures go in the RESOURCE/Textures folder?
I do like Morgan's idea of having the option to use your repair planks if you either can't afford or run out of coal.
Making it less efficient would probably be necessary, especially if it's a cheaper source of fuel. Could that be coded properly?

My idea: add a counter to the player that increases every second by the value of the set engine power.
Then when that counter reaches a certain number, remove one unit of the good used. If the number of units on board becomes zero, stop the engine.
I guess that would work, as long as the counter persists even when changing location. :yes
It would also need to work on the World Map, otherwise you really could have a free journey.
Maybe make that a fixed rate of depletion, assuming the engine is at half-speed on the World Map, perhaps?

The other thing I'm pondering is the ability of the engine to receive damage.
Could be proportional to hull strength? Eg. 20% hull strength left = 20% engine efficiency?
That's a good idea, but perhaps the engine efficiency shouldn't be directly related to the hull strength in that way.
Maybe after 40% damage to the hull, the engine suffers a 20% decrease in efficiency. After 60% damage, increase that to a 40% efficiency drop.
And after 80% hull damage, the engine becomes unusable, perhaps? Those numbers are just a rough idea, so we might need to test what works well.

Maybe there could also be a slight chance that a critical hit to the hull will also be a critical hit to the engine, which either massively reduces efficiency or knocks it out completely.
We could even use particle effects to illustrate an explosion from the engine, similar to the effects of the Capsize mod.
 
I once cooked up a basic design for the code that would control the sound speed. Is that useless now, or just not plausible?
I don't really want to have to trigger the playing of the sound file more frequently than once per second; it's all more code to be executed by the game engine. And using the square root function for the volume might not be worth it.
I understand why you put it in there and it's definitely a valid idea, but I'm trying to keep things somewhat simple, otherwise I don't understand what I'm doing anymore. :facepalm

Here's a thought: you can currently harvest planks for jungles, or have bandits chop down a few trees for you if you're lucky. I wouldn't actually mind using repair planks for fuel, simply because it would also overlap with the two features i just mentioned. Otherwise it wouldn't quite make sense that you can obtain planks from the jungle, but not logs. An extra dialogue option to get logs instead would of course be another way of doing this, but is that really a better alternative? Might be better to just stick with coal. Or use repair planks once you run out of coal. It could in fact be a good idea to have coal as a fuel type which would be twice as efficient as planks, and would of course have the benefit of not burning your repair materials. Planks would be the poor man's fuel, so to speak.
Again, I like the idea, but it sounds more complicated again. Would you need to select yourself that you want to switch over or would it do so automatically with maybe a log message to inform you?
Personally I'd prefer to have one fuel and be done with it.... :?

I dunno about the engine damage myself. your idea sounds about right though, since you're essentially using your hull as a sail in terms of damage.
I'm not sure either. I thought it'd be a fairly simple thing to link the engine efficiency to.
The hull damage is already there and is subject to critical hits even and of course the engine is in there somewhere.

Well we could always start with a basic coal texture; it doesn't have to be perfect for testing purposes. Where would such textures go in the RESOURCE/Textures folder?
The textures for the goods are in RESOURCE\Textures\INTERFACES with names goods.tga.tx for the old blue interface and goods_new.tga.tx for the new brown one.

I do like Morgan's idea of having the option to use your repair planks if you either can't afford or run out of coal.
Making it less efficient would probably be necessary, especially if it's a cheaper source of fuel. Could that be coded properly?
Is it theoretically possible to code it in properly? Yes, it is. We can make things as fancy as we want. But as I say above, I don't actually want to go too fancy. I want to get it to a point where it works properly with fair game value without additional complexities if possible...

I guess that would work, as long as the counter persists even when changing location. :yes
It would also need to work on the World Map, otherwise you really could have a free journey.
Maybe make that a fixed rate of depletion, assuming the engine is at half-speed on the World Map, perhaps?
Non-steamships get to travel for free on the worldmap. Why should steamships that have sails be any different? :wp
I'd use an attribute to the player, so that'd persist until I remove it through the code somewhere myself. I'm having hopes I can make it work. :whipa

That's a good idea, but perhaps the engine efficiency shouldn't be directly related to the hull strength in that way.
Maybe after 40% damage to the hull, the engine suffers a 20% decrease in efficiency. After 60% damage, increase that to a 40% efficiency drop.
And after 80% hull damage, the engine becomes unusable, perhaps? Those numbers are just a rough idea, so we might need to test what works well.

Maybe there could also be a slight chance that a critical hit to the hull will also be a critical hit to the engine, which either massively reduces efficiency or knocks it out completely.
We could even use particle effects to illustrate an explosion from the engine, similar to the effects of the Capsize mod.
Sounds all possible, but as I said before, it sounds complicated too. I'll see what I can come up with tomorrow when coding in just the basics of fuel consumption (I'll use mahogany until we get coal; it'd be easy enough to swap) and engine damage.
 
Non-steamships get to travel for free on the worldmap. Why should steamships that have sails be any different? :wp
Ah, but it's not free. Food and rum consumption, remember?
I see your point of course, but I'm wondering what effect free World Map travel will have on the coal consumption, and possible exploits.
Another point to consider is that those who use DirectSail have to use the resources if they want steam power, so World Map travel has an unfair advantage.
I don't really know how valid those arguments are, but it's food for thought at least.

Sounds all possible, but as I said before, it sounds complicated too. I'll see what I can come up with tomorrow when coding in just the basics of fuel consumption (I'll use mahogany until we get coal; it'd be easy enough to swap) and engine damage.
Very well, you do what you can and we can assess the situation from there. Whatever you can manage will be a bonus anyway; the current progress is already brilliant! :doff
 
Ah, but it's not free. Food and rum consumption, remember?
I see your point of course, but I'm wondering what effect free World Map travel will have on the coal consumption, and possible exploits.
Another point to consider is that those who use DirectSail have to use the resources if they want steam power, so World Map travel has an unfair advantage.
I don't really know how valid those arguments are, but it's food for thought at least.
The steamships keep their food and rum consumption on the worldmap. And nobody's forcing anybody to use the steam engine all the time.
The steamships have got pretty much the same stats now as the Constitution, so if a player can deal with a Constitution without an engine, you should be able to deal with a Steamfrigate without using the engine. Right?
By default, when you exit 3D sailing mode, the engine is set to off, so whenever you go back to 3D sailing mode, the engine is off. Then you can push up if you feel the need arise. :shrug
 
In PROGRAM\SEA_AI\AIShip.c:
Code:
	// PB: Steam Ships -->
if(SteamShip(rCharacter))
{
if(!IsMainCharacter(rCharacter))
{
switch(sti(rCharacter.LastSailState))
{
case 0:
rCharacter.Ship.Power = 0;
break;
case 1:
rCharacter.Ship.Power = 50;
break;
case 2:
rCharacter.Ship.Power = 100;
break;
}
}
if(GetCargoGoods(rCharacter, GOOD_PLANKS) > 0 || !IsMainCharacter(rCharacter))
{
ref MyShipType = GetShipByType(GetCharacterShipType(rCharacter));
aref arship; makearef(arship, rCharacter.ship);
float PowerScalar = stf(GetAttribute(rCharacter,"Ship.Power"))/100;
float SpeedRateScalar = stf(GetLocalShipAttrib(arship, MyShipType, "SpeedRate"))/10
float DamageScalar = makefloat(GetCurrentShipHP(rCharacter)) / makefloat(GetCharacterShipHP(rCharacter));
rCharacter.Ship.Impulse.Rotate.z = 0.2 * PowerScalar * SpeedRateScalar * DamageScalar;

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)	StackSteam(rCharacter, makeint(abs(stf(GetAttribute(rCharacter,"Ship.Power")))/12.5));
}
}
// PB: Steam Ships <--
In PROGRAM\NK.c:
Code:
void StackSteam(aref rCharacter, int puffs_per_second)
// Character and number of tentacles
{
if (!bSeaActive) return;
bool PlayEngineSound = false;
int delay = 0;

// Particle Effects
for (int i=0; i < puffs_per_second; i++)
{
PostEvent("CreateStackSteam", delay, "i", rCharacter);
delay = delay + 1000/puffs_per_second;
}

if(IsMainCharacter(rCharacter) && abs(sti(GetAttribute(rCharacter,"Ship.Power"))) > 0)
{
// Sound
if(!CheckAttribute(rCharacter,"Ship.PlayedEngineSound"))
{
rCharacter.Ship.PlayedEngineSound = GetSeaTime();
PlayEngineSound = true;
}
if(GetSeaTime() >= sti(rCharacter.Ship.PlayedEngineSound) + sti(rCharacter.basetime)) PlayEngineSound = true;

if(PlayEngineSound)
{
int shipSoundID;
shipSoundID = PlayStereoSound("objects\engine.wav");
float volume;
volume = 0.1 + 0.9*abs(stf(GetAttribute(rCharacter,"Ship.Power")))/100;
SendMessage(Sound,"llf",MSG_SOUND_SET_VOLUME, shipSoundID, volume);
rCharacter.Ship.PlayedEngineSound = GetSeaTime();
}

// Fuel Consumption
if(!CheckAttribute(rCharacter,"Ship.FuelConsumption"))	rCharacter.Ship.FuelConsumption = 0;
else	rCharacter.Ship.FuelConsumption = stf(rCharacter.Ship.FuelConsumption) + abs(stf(GetAttribute(rCharacter,"Ship.Power")))/100;
if(stf(rCharacter.Ship.FuelConsumption) >= 60)
{
RemoveCharacterGoods(rCharacter,GOOD_PLANKS,1);
rCharacter.Ship.FuelConsumption = 0;
}
}
}
Again in PROGRAM\NK.c:
Code:
void UpdateShipPower()
{
ref rCharacter = GetMainCharacter();
string sshippower = "";
IShipPower.Log.color = COLOR_NORMAL;
if(SteamShip(rCharacter))
{
switch(abs(sti(GetAttribute(rCharacter,"Ship.Power"))))
{
case  100:	sshippower = "Engines: Full";
IShipPower.Log.color = COLOR_GREEN;
if(sti(GetAttribute(rCharacter,"Ship.Power")) < 0)
IShipPower.Log.color = COLOR_RED;
break;
case   75:	sshippower = "Engines: Half";
IShipPower.Log.color = COLOR_GREEN_LIGHT;
if(sti(GetAttribute(rCharacter,"Ship.Power")) < 0)
IShipPower.Log.color = COLOR_RED_LIGHT;
break;
case   50:	sshippower = "Engines: Slow";
IShipPower.Log.color = COLOR_YELLOW;
break;
case   25:	sshippower = "Engines: Dead Slow";
IShipPower.Log.color = COLOR_YELLOW_LIGHT;
break;
case    0:	sshippower = "Engines: ALL STOP";
IShipPower.Log.color = COLOR_NORMAL;
break;
}
if(sti(GetAttribute(rCharacter,"Ship.Power")) > 0)
sshippower = sshippower + " Ahead";
if(sti(GetAttribute(rCharacter,"Ship.Power")) < 0)
sshippower = sshippower + " Astern";
}
if(GetCargoGoods(rCharacter, GOOD_PLANKS) < 1)
{
sshippower = "Engines: NO FUEL";
IShipPower.Log.color = COLOR_BLUE;
}
SendMessage(&IShipPower, "lll", LOG_AND_ACTIONS_INIT, false, true);
SendMessage(&IShipPower, "lls", LOG_ADD_STRING, true, sshippower);
}
Effect:
- Fuel consumption counter increases by 1.0 every second on full speed and less if not at full speed (eg. 0.25 at dead slow ahead)
- If the counter reaches 60 (eg. after one minute of game time at full speed or 4 minutes at dead slow ahead), one plank item type is removed from the cargo hold
- If there are no planks in the cargo hold, the propulsion will stop and the power indication on the screen will change to blue and say "Engines: NO FUEL"
- Engine efficiency depends on hull HP; if you've got 100% of your hull HP left, engine works at 100% efficiency. If you've got 20% HP left, engine runs at 20% efficiency

Does that sound workable? Note that I coded everything as simple as I could for now, with everything being directly proportionate and using planks as fuel used.
 
it's a good enough system to me. it can always be made fancier later. i would imagine that with that kind of consumption you'd use the engine quite sparingly though, unless coal would be fairly light. if you'd have the engine at full ahead for an entire voyage you'd probably use anywhere from 300 to 800 units of coal. fortunately, you won't be using the engine that often.

mahogany isn't just expensive, but also quite heavy. i'd prefer to use repair planks myself, but since this is just a placeholder until we have coal, i don't really mind that much. speaking of which, i'd imagine the transition from coal to emergency fuel to be automatic. it's somewhat easier to code (i think) and less of a hassle in terms of gameplay. there should be an indicator for when you start burning planks though, or at least an onscreen message.
 
At the moment, I decided to use planks for now until we use coal, rather than mahogany.

Indeed the "one unit per minute" value probably uses up your fuel really rather quickly, but that's easily changed when we come to properly balancing this whole thing.
For now, I was more concerned with getting the concept to work right.

Have you used a Steam Frigate with Patch 7 yet, Morgan?
 
Just for sake of testing, can't you just set the Master & Commander storyline starting ship to "RN_SteamFrigate" or something?
I'd rather like to hear your opinion of how it works at the moment.
 
i guess. i'll have to go see how to do that, i've never used the function. probably in internalsettings.
 
Open PROGRAM\Storyline\JackAubrey.c and find:
Code:
sl.(sn).start.ship = "HMS_Surprise";
Replace with:
Code:
sl.(sn).start.ship = "RN_SteamFrigate";
Then start a new Master & Commander storyline and you'll be able to test her straight away. :doff
 
My latest code on this is included in here for testing:
http://forum.piratesahoy.net/index.php/topic/12605-flying-dutchman/page__view__findpost__p__411065
 
Corrected file here: http://www.pyratesahoy.com/build/b14_b2_wip/pb_code_2011-11-17.exe
 
Can anyone make me two interface pictures (old style and new style) for the new good to be added: coal?
I had a quick look into doing that myself, but it seems a bit beyond me to make that look good. :(
 
Does anyone else see white lines while sailing in first person on the steamship? Also, how do you activate the engines on a steam ship and what does it use for fuel? Sorry, this is my very first time trying to help mod and my first time using the steamship...
 
Back
Top