• 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!

B14 troubles

The incompatibility with Intel graphics chips actually applies to the game as a whole, from the original unmodded game all the way to Build 14. It is unknown if the incompatibility also applies to the newer engine used in Build 15. As mentioned there are workarounds that make the game somewhat playable with Intel graphics chips, but for full compatibility and performance a proper graphics processor is needed, such as NVIDIA GeForce.

Since for whatever reason the provided installation files do not work for you, I have made a configuration of the game ready to go. No install, just extract. This is a clean configuration of Build 14 with the latest updates applied over the UK version. I have included the best available workaround for the Intel graphics chip incompatibility so that the game will at least be playable. Also, I saw in another of your posts that you would like most of the storylines to not be included to reduce the total size, so I have removed them as well including their videos, leaving only "Tales of a Sea Hawk" and "Free Play". I have also removed all other languages, leaving only English.

This configuration works in my limited testing, but as mentioned since I do not have an Intel graphics chip, I cannot check if it truly does run on a computer with such a chip.


If you would like to verify the checksums after downloading the ZIP file, here they are:
Code:
CertUtil -hashfile CoastGuard71.zip MD5
c1 5e 26 5c 02 df f6 f9 78 33 ad dc 38 60 f7 87

CertUtil -hashfile CoastGuard71.zip SHA1
85 5a 68 59 ea b2 1a 40 03 4c 45 de 84 12 b5 4a bd 19 20 b0

CertUtil -hashfile CoastGuard71.zip SHA256
48 31 ba 79 63 6b 10 04 2a 76 b7 ec c5 a2 21 fb 25 69 6d 36 e8 88 bc 77 1e 39 e7 eb 77 b2 6d 28
After uploading the file I downloaded it to verify the checksums, and they match.

Just extract this ZIP file to a suitable location. Do not replace any files, and do not place the extracted contents in any of the Program Files directories.
After that, open engine.ini to set your display resolution. If you want to be able to Alt-Tab, leave full_screen = 0 the way it is. If you set your full display resolution it will appear as if in fullscreen anyway. Some however seem to have better performance in fullscreen, so in that case and if you want you can set full_screen = 1.
I have also disabled error logging as this helps with performance. If you want to enable error logging, set tracefilesoff = 0.
Then run ENGINE.exe to start the game and then go to "Options" and configure the game to your liking.
Now you can start a new game and it should work and be playable.

Hopefully this works as good as possible without any major problems. This is possibly the best bet and if it still doesn't work then unfortunately it is likely that other hardware is needed.

The ZIP file cannot remain for long so I will remove it after you have downloaded it or at most after 7 days.
I was able to install and play your British version, very delightful, but for some reason cannot find it now. Would you do me the favor of reestablishing the link to :
https://piratesahoy.bowengames.com/potc/Baste/CoastGuard71.zip

I've tried to recover that game but the link seems to not work now.

Would really like to get back into that game.

Thanks Mate

Ron

Belay my last matey, found my backup download of your zip and will install it on the Win10 T510 to replace the mysteriously absent game in question...
 
Last edited:
Interesting the logic revelation of the save during boarding. Is that flow logic from Akella? Not good logic. Originator may have done so to mimic reality where boarding does not allow for pausing... but due to the scene transition instability is a liability in the present situation. A clever coder should be able to tinker with the code to avoid the auto return to sailing after SAVE. That has to be a logic switch that can be easily removed without problem using the final scenario at conclusion to do the only return to sailing?
That is indeed how it was made by the original Akella developers. Much of the game's source code is available, but unfortunately not the source code for the engine itself used in B14. Since the implementation for saving while boarding is in the engine, nothing can be done about it. It may or may not be the same with the new engine used in B15.

About the file, this time I'm uploading two versions - one with the workaround for Intel graphics chips and one without.


The non-Intel one would have better graphics but in case it doesn't work the Intel one can be used.
I also found some more language files that I have now removed so the checksums are different than before.

Code:
CertUtil -hashfile CoastGuard71Intel.zip MD5
e7 d2 43 5f 24 4f a4 92 6d 74 58 e6 fb 8b 48 2c

CertUtil -hashfile CoastGuard71Intel.zip SHA1
df a7 bc c2 16 18 f5 40 a2 85 b4 cc fa c9 eb 36 a7 d1 62 45

CertUtil -hashfile CoastGuard71Intel.zip SHA256
c0 16 a7 e9 c9 2f 34 ae 4f 5f 47 e2 fb f2 10 0c aa 7a 86 eb 23 25 3d fa ff 12 d4 75 77 29 44 b8

CertUtil -hashfile CoastGuard71NoIntel.zip MD5
1c 7d 92 59 a7 05 24 c3 ac ae 07 c0 b8 81 d2 d9

CertUtil -hashfile CoastGuard71NoIntel.zip SHA1
f3 ff dd c4 67 ba 6a d2 22 f2 f4 1c 2c 67 21 d2 fe 05 2a 1b

CertUtil -hashfile CoastGuard71NoIntel.zip SHA256
df 0e a4 11 7a 15 fe f1 5c ce d2 8a 3c 69 0c 96 95 c8 19 52 8e b7 3a a6 d2 f7 73 25 76 b3 a4 1e

As before, they will only remain until you have downloaded them or at most for 7 days.
 
Ahhhhah! Thought the reason might be in the original coding logic, never that it was written into the engine, not a good idea. Oh well, Coder may not have considered how screen transition instability would affect play. Thanks for the revisions, downloading now, will be interesting to compare the play. The Intel version is for the T61 which has only Intel while the NVIDIA version will be a lot more enjoyable on the T510 with that graphics package!

Thanks Mr. Wizard of C

Your British game is much more enjoyable to play, also I notice the opening citation shows a 2024 version while the US still shows 2022? Seems we don't recognize the 120124 update zip file addition... does that update really make a difference in play?
 
Your British game is much more enjoyable to play, also I notice the opening citation shows a 2024 version while the US still shows 2022? Seems we don't recognize the 120124 update zip file addition... does that update really make a difference in play?
That shows when the contents of the ZIP file with the latest updates are applied, after using the installer and the TAR file, for both the US and UK versions. I wouldn't know how much of a difference is noticeable, but the file does contain a lot of improvements.
In case anyone would wonder, the in-game language is the same between the US and UK versions, with both using American spelling. I just use the UK version because it has an improved codebase over the US version, but that pretty much only matters when no mods are installed, and the contents are the same if the Build Mod is installed.
 
That shows when the contents of the ZIP file with the latest updates are applied, after using the installer and the TAR file, for both the US and UK versions. I wouldn't know how much of a difference is noticeable, but the file does contain a lot of improvements.
In case anyone would wonder, the in-game language is the same between the US and UK versions, with both using American spelling. I just use the UK version because it has an improved codebase over the US version, but that pretty much only matters when no mods are installed, and the contents are the same if the Build Mod is installed.
Off subject, but I'm desperately in need of advice. While attempting to clone my W10Pro to another drive for the bogus Win10 T540P I've tried Haselo, which I used before to clone W7 drives, but the new version shows the long arm of "MasterSoft" in that they now do not allow USB cloning (how am I supposed to clone from one SSD to another without using a USB interface?) or clone W10Pro at all. I've gone through the assortment online find no one offers a no-cost trial, other than setup, and since I've only the one copy needed refuse to pay $50US for that privilege. I tried downloading an earlier 3.6 Haselo but it too has been tagged even though it's on Netherlands pages, which should be out of the reach of Haselo (unless they link to Haselo achieves) Do you or any of your cohorts know of a reliable clone download that hasn't been corrupted by "MasterSoft"? I do have a W10Pro CD but the T540P cannot link to my net carrier for some reason, in order to perform the install, looking only for a WAN net and not finding one because it's not what I'm using. Plain 'ol public internet service provider ComCast (Xfinity) which I can get on every other Lenovo but not this 540? What is the issue with that? What do I need to reset to get to my net service provider (Public) not WAN or LAN. I've researched the net but find nothing that addresses this issue. Where in what settings is this misidentified as a WAN requiring an Ethernet cable that the trouble shooting says I need? My service uses a wireless router to the cable. The router ignores repeated attempts to lock on the 540 when I push the search button feature for connecting new computers. Thanks for the guidance, appreciate the help in getting this 540 working again.
 
Unfortunately I don't know of any cloning software that could suit your needs, but I would prefer to do a clean install anyway.
This would involve secure erase of the SSD with the manufacturer's software tool on a bootable USB flash drive. For example with Samsung SSDs, use their "Magician Software" on a working computer to create such a USB flash drive. Having the computer partially disassembled in order to unplug the SSD and plug it in again might be needed in case the software reports it as being in a "frozen" state.

If you do this and get a choice between "Secure Erase" and "Enhanced Secure Erase", choose the regular, not the enhanced. Regular erases, enhanced overwrites with garbage data. That could be useful in some cases, but for installing an operating system a clean drive is preferred.
SSDs should always have secure erase be performed first before installing an operating system, just like HDDs should have zero fill be performed first. This is to restore as much performance of the drive as possible.

It might be that no network drivers are available during the installation for this computer. In any case, it should be possible somewhere among the choices to install Windows 10 with a local account with no need for an Internet connection, unless Microsoft has removed that option. It was a while ago since I installed it, and they were hiding the option, but somewhere should be a choice for proceeding with a local account. Something like "I don't have Internet access", "More options", or even trying to continue with an online account, failing since there's no Internet connection, and getting presented with the option of a local, offline account. Make sure that no network cable is connected to the computer during installation, and that any wireless connection is disabled and/or unplugged. Unless they really have removed it, one of the options should allow you to proceed.

If it really doesn't work and if drivers are present, you might have to connect an Ethernet cable between your computer and router, choose to continue with an online account but enter a completely made up and nonsensical email address, have it fail because it can't connect, and then possibly be presented with the choice of an offline account.
 
Hmmm... actually my key issue is that somehow my T540P was configure for WAN/LAN not Public internet... as my T510 W10Pro is using. I have no clue as to how to change that choice to Public and cannot find info online that explains howto. I have a W10Pro CD install but without internet can't get it to complete. Unaware of the alternative to offline install I've not tried that. I did get the offline option offer but not knowing what issues are involved I've hesitated to use it. Once I do the W10Pro install I tried to link the "Legacy" installation but was not allowed for no explanation. I've read that any W10Pro can be activated by Legacy installation but cannot find any coherently clear directions not full of tch jargon and references to features I'm not familiar with. This whole situation is very confusing for me since this is my first try.

I took the activated W10Pro installed it in the T540P, booted, and get internet! So what about the the situation with the W7Pro boot that only looks for WAN/LAN ETHERNET CABLE AND CANNOT WORK BECAUSE MY SERVICE IS PUBLIC? Where in the W7Pro program is the setup for internet service that locks choice? I cannot find info online about how to configure what must be in the program, not BIOS, and how to select Public service. Nothing provided by the vendor gives me direction and they have no techies on staff to troubleshoot this issue. Do you or anyone you know have this knowledge and can guide me setting it right?

I have a new Samsung 500GB SSD ready to install the W10PRO and the W10Pro CD but that's where I'm stuck. I will explore the offline installation since I knew nothing about it until your mention. Still. I would feel more comfortable having this internet issue solved before going on. I know from my experiment it's in the program, but where, and how do I get to it?

Appreciate the help. I'm baffled and really tired of dealing with MS stupidity.

Thanks :)
 
I personally prefer to have an offline, local account. An online account potentially connects your activity to Microsoft and even if you don't do anything questionable I don't think others should have any information about what you do with your computer.

I would try to install with an offline, local account, and then in "Network and Sharing Center" and then "Change adapter settings" check if Windows even detects a wireless network adapter. If not, then install the drivers and see if it is possible to connect then.
This seems to be the available drivers for that model: laptops and netbooks :: thinkpad t series laptops :: thinkpad t540pcontentdetail - Lenovo Support US
For wireless network, it seems some units of that model have Intel adapters and some have Realtek adapters.

If it turns out it is possible to connect then, that would mean it's not possible during installation because the driver is missing.
 
Unfortunately I don't know of any cloning software that could suit your needs, but I would prefer to do a clean install anyway.
This would involve secure erase of the SSD with the manufacturer's software tool on a bootable USB flash drive. For example with Samsung SSDs, use their "Magician Software" on a working computer to create such a USB flash drive. Having the computer partially disassembled in order to unplug the SSD and plug it in again might be needed in case the software reports it as being in a "frozen" state.

If you do this and get a choice between "Secure Erase" and "Enhanced Secure Erase", choose the regular, not the enhanced. Regular erases, enhanced overwrites with garbage data. That could be useful in some cases, but for installing an operating system a clean drive is preferred.
SSDs should always have secure erase be performed first before installing an operating system, just like HDDs should have zero fill be performed first. This is to restore as much performance of the drive as possible.

It might be that no network drivers are available during the installation for this computer. In any case, it should be possible somewhere among the choices to install Windows 10 with a local account with no need for an Internet connection, unless Microsoft has removed that option. It was a while ago since I installed it, and they were hiding the option, but somewhere should be a choice for proceeding with a local account. Something like "I don't have Internet access", "More options", or even trying to continue with an online account, failing since there's no Internet connection, and getting presented with the option of a local, offline account. Make sure that no network cable is connected to the computer during installation, and that any wireless connection is disabled and/or unplugged. Unless they really have removed it, one of the options should allow you to proceed.

If it really doesn't work and if drivers are present, you might have to connect an Ethernet cable between your computer and router, choose to continue with an online account but enter a completely made up and nonsensical email address, have it fail because it can't connect, and then possibly be presented with the choice of an offline account.

Finally solved the problem with MiniTool Partition Wizard v9.1. It was something in the program! I've cloned the working W10pro from the T510 and am now using.
I appreciate your help in getting this system restored and I agree that MS is too intrusive and manipulative, both signs of a monopolistic entity. Why our government's FTC has not taken action to break up this monster is a reflection on the Republican Political party's role as the protector of "Big Business" to the detriment of we little people citizens. Oh well, it is what it is and we must find ways to work around these overlord issues. All is well now and I'm looking forward to opening B15 and seeing just how much better it is.

Thanks again Mate,

Ron
 
Well, spoke too soon. The MS activation needed malware has showed its ugly fangs and is blocking my attempts to continue use. Seems MonopolySoft has a new price-gouging program called "license" seems by installing auto-updates all MS users must now have a license for a particular computer use of their software OS. No more swapping around to not pay the MS Devil its due.

Tried the BNH B15 and found it unplayable. Started a new forum similar to B14 for users to post their Beta Test Blues. Unfortunately, as seen in previous B14 versions post v17 sinking a ship causes screen freeze in B15 and in your Brit B14v24 you kindly provided. Am I hallucinating or do others also have this defect? Why me? Can't understand why the earlier versions didn't, but starting with 18, and since, this bug continues. Shouldn't someone with integrity have taken on this joust with the NH demon? Also. am I the only "perfectionist" that has issues about mislabeling items, i.e., bar shot called chain shot when the two don't even look alike? Pointed this out to the Powers that be...ignored. Guess I'm the only one bothered by this.

If anyone out there in PA! Land has a working B15 zip please send it my way via link in reply so I can get into the Beta Testing that obviously needs to be done... thanks Maties.

CG71
 
'ello Mate, top o' the mornin'. Tried the BNH B15 and found it won't work on a USB since the support files are only on the OS drive and the code doesn't look for them. Also, when I installed on the drive the game loaded but with no Config giving Full Screen play it's in a tiny frame on my screen?( Even worse, when I went into Internalsettings.h to personalize to my parameters it no longer loaded!( ...Disgusting, seems the code is booby-trapped to crash if altered in any way... really? Coder thinks he's got a copyright privilege in a community setting. Is Trump the mystery coder? Have you tried to run BNH? What are your experiences? Others have reported all kinds of issues. I started a BNH B15 issues forum as a sounding-board for we Beta-testers... you have an invitation to make use of it to help rescue this noble endeavor from the disaster I found when trying to use it... if you are so inclined :)

Thanks for the help Mr. Wizard ?)

CG71
 
As I don't play any Build Mod version I cannot provide detailed experiences, but from what I've heard no one else seems to have these particular problems.

I just did a quick test myself with both Build 14 and Build 15, both on an internal SSD. I haven't tried running them from an external USB drive so I cannot speak for that. My testing was performed on a computer with Windows 7 Professional 64-bit.

I didn't experience any obvious problems. I can change things in InternalSettings.h, images are loading, and I can sink ships without the screen freezing or the game crashing or any other problem happening. I also didn't encounter any issues with boarding.
If these problems were widespread I'm quite sure the Build Mod developers would have done something about them. To my knowledge the Build 15 developer has not prevented the code from being modified.

Pinpointing why these problems happen for you in the newer versions but not in the older versions is difficult, but it might be because of your system environment.
It might not be an option for you, but I would secure erase the SSD and then do a clean install of Windows 7 since the hardware of your computers is intended for that version of Windows. No clone installation. Then I would also install the appropriate drivers for those models, having prepared them on a USB flash drive together with the online installer of the latest Windows 7 version of Chrome since that browser is easy to use. Firefox ESR can also be used but Chrome is easier.
It would unfortunately take a long time to install updates from Windows Update and it has become a hassle to do so, but doing all this could be the best bet to get the computers into a working state for B14 and B15.
 
Hmmm.... interesting. I've played on two OS, Win7 and 10 Pro... on three different Lenovo machines T61, T510, T540P. My experience with ship sink freeze began with 14v17... and has continued since. the only change was the code version. As described when I installed on the USB the game did not boot, On the SSD it boots but not full screen and when I modded the Internal settings it didn't. This makes no logical sense... does it? That's why I started the issues forum to gather info from others to determine validity. I ran Win7 on the 510 and 540 until I was able to get W10 working. The issues I've had with sinkings is on the T61 W7 and while running B14 on 510 W10. Makes no sense at all. The SSD on the 540 was new and blank I cloned W10 from the activated W10 that came with the 510. I'm leery of using Win updates since I've found they can create problems with blocking digitally unsigned drivers, etc MS has become neurotic about security to the point of obstruction, maybe just for the Pro edition?, I run the usual malware programs and use CCleaner to clear out the trash, I use Smart Game booster to close interfering background code. I also use Tweaking to keep the code valid. I also run chkdsk /f and/or /r to restore from possible corruption, Can any of these cause corruption? Lenovo claims these machines are code compatible with 10... could it be the Pro version has interfering security blocks? The complexity of systems offers too many possibilities and the resolutions are not very obvious. Are you aware of a diagnostic program to troubleshoot such situations?

Why would an install that boots stop booting when I only change numbers in Internal Settings as I have with every B14 v without issue? Do we have an assurance from the coder that he has not used a checksum block to prevent alteration?

Thanks for the help, really appreciated Mate :)

CG71
 
Indeed it doesn't make sense that it doesn't work if the only change is a newer version, but at the same time most players don't seem to have these problems. I for instance can't recreate these issues as both B14 and B15 ran fine for me.

I've never used "optimizers" and "boosters" on any of my own computers, but from what I've seen on others' computers, they are never of any help and if anything only hurt performance. It's one's own choice, but I would never use them.

I don't think there's a program that can help with troubleshooting such particular situations, but I might point to Ultimate Boot CD for help with diagnosing hardware problems: Ultimate Boot CD - Overview
That is a useful collection to have in one's toolbox. It can be burned to a CD and also be made to run from a USB flash drive. One example of a useful tool is MemTest86 to check for faulty memory - which obviously would cause problems with the operating system and other software.

Why would an install that boots stop booting when I only change numbers in Internal Settings as I have with every B14 v without issue? Do we have an assurance from the coder that he has not used a checksum block to prevent alteration?
Your first question is valid and I agree that it is strange as it should work. Your second question I would take as an insult if I were Hammie. It implies that he's acting with malicious intent and would need to assure the community that he is not, when he has been contributing and helpful in the community for years.

The entire Build 15 source code including the engine is available here:
Anyone could look at it and compile it themselves.

Also anyone could contribute to B15 just as they can to B14. Hammie has brought it to the new engine, but he doesn't need to be the only developer.
 
Help with storms? Any idea where the constant storms generator is located. The "Weather" in Program location I zeroed used to work just fine but this last v24 seems to be back to the irritating constant storms, and I'd like to be rid of such childish nonsense.as masts knocked down by 4# shot from small boats, skiffs, etc this nonsense is very irritating and out of place in this simulator. My Internal settings zeroing of mast damage scalar is not working in this version... where did they hide the code for knocking down masts? Somebody has a passion for knocking down masts, they need to grow up and live in the real world with the rest of us.
Also, hope all is well with you, I'm playing your B14v24 British and enjoying NVIDIA graphics like a whole new world. Don't be in a rush to move to 10, I had to in order to improve the visuals. 7 is still the better OS even for games such as this. I'm still getting sink-a-ship screen freeze and would really appreciate someone having a fix for this! Beginning to suspect it's a prank somebody threw into the code to antagonize players.
As for 10... MStupid had to put a 7 emulator in order to make 10 palatable enough for users to actually buy it...just consider that... I've not found anything about features of 10 that are an improvement over 7...
 
Last edited:
Been playing B14v24 British... just now had a black screen crash during screen transition...game still running submerged since the sound continues, but an F5 save doesn't work when I restart game! Anybody have an idea why this happens? How do I make an elevation in screen priority that sticks? Tried to elevate several times without effectiveness. I had played for couple hours before this event.

Why was the Light Pinnace-of-War taken off the List of Ships? That was my favorite, it was my favorite since it had the best characteristics of all available ships without any faults, as far as I know. Anyway I can recover it into my game? How was it removed so I can reverse that process... appreciate the help.

I'm gonna have to go into the characteristics of characters since whenever I interview prospects in the tavern I get 20+ bad actors before I get a good one... that's skewed in favor of negative and wastes my playtime... needs correcting since the list is 50/50 for good/bad makes no statistical sense for what's happening unless someone intentionally skewed the draw away from random... not fair is it?

All the visuals are so much better with the W10 NVIDIA graphics... 7 INTEL is now so flat and 2 dimensional that it's boring to play, spending all my game time on the T510 W10, so much more enjoyable.

I hope I'm not being intrusive with my frequent requests for assistance with all these features that bother me... my analytical sense and QA training take over my conscious reson and I become a bit of a perfectionist... not everyone appreciates that... hope you enjoy the tinkering as much as I do... let me know if I become overbearing so I can backdown as much as you need to be comfortable. You are such a wealth of knowledge I don't want to irritate you and lose your kind help with forging this crude game into something a little more elegant to play.

Cheers Matey! :)
 
For disabling storms, find this in PROGRAM\WorldMap\worldmap_encgen.c:
Code:
void wdmStormGen(float dltTime, float playerShipX, float playerShipZ, float playerShipAY)
{
    ref mc = GetMainCharacter();
    bool encoff = false;
    if(GetAttribute(mc,"worldmapencountersoff") == 1)    return;
    if(CheckAttribute(mc,"ship.SubmergeDutchman"))        return;    // PB: No encounters or storms while you are submerged
    int numStorms = wdmGetNumberStorms();
    if(numStorms < 1)
    {
        wdmTimeOfLastStorm = wdmTimeOfLastStorm + dltTime*WDM_STORM_RATE*1000.0;
        if(rand(1001) < wdmTimeOfLastStorm)
        {
            wdmCreateStorm();
            wdmTimeOfLastStorm = 0.0;
        }
    }else{
        wdmTimeOfLastStorm = 0.0;
    }
}
Change it to this:
Code:
void wdmStormGen(float dltTime, float playerShipX, float playerShipZ, float playerShipAY)
{
    ref mc = GetMainCharacter();
    bool encoff = false;
    return;
    if(GetAttribute(mc,"worldmapencountersoff") == 1)    return;
    if(CheckAttribute(mc,"ship.SubmergeDutchman"))        return;    // PB: No encounters or storms while you are submerged
    int numStorms = wdmGetNumberStorms();
    if(numStorms < 1)
    {
        wdmTimeOfLastStorm = wdmTimeOfLastStorm + dltTime*WDM_STORM_RATE*1000.0;
        if(rand(1001) < wdmTimeOfLastStorm)
        {
            wdmCreateStorm();
            wdmTimeOfLastStorm = 0.0;
        }
    }else{
        wdmTimeOfLastStorm = 0.0;
    }
}
I can't try it myself right now but that should disable storms on the map.

For disabling falling masts, find this in PROGRAM\SEA_AI\AIShip.c:
Code:
float Ship_MastDamage()
{
    int iDamageType = GetEventData();
    int iMastNum = GetEventData();
    float x = GetEventData();
    float y = GetEventData();
    float z = GetEventData();
    float fDamage = GetEventData();
    aref rCharacter = GetEventData();
    rCharacter.seatime.lasthit = GetSeaTime(); // NK 04-09-16, to set time when last hit
    // NK -->
    float hp = GetCharacterShipHP(rCharacter);
    hp = sqrt(sqrt(pow(hp,2.5)))/82.0;
    hp = 1.0/hp;
    float collhp = sqrt(hp);
    ref rBall; makeref(rBall, AIBalls); // KK

    if(!bSeaActive) return makefloat(0);//MAXIMUS

    switch (iDamageType)
    {
        case SHIP_MAST_TOUCH_ISLAND:
            if(!IsMainCharacter(rCharacter)) return 0.0; // PB: Collision damage for player ship only
            fDamage = fDamage + MAST_ISLAND_SCL * collhp;
        break;

        case SHIP_MAST_TOUCH_SHIP:
//            if(!IsMainCharacter(rCharacter)) return 0.0; // PB: Collision damage for player ship only, GR: disabled, let NPC take damage
        //aref rCollideCharacter = GetEventData();
            fDamage = fDamage + MAST_SHIP_SCL * collhp;
        break;

        case SHIP_MAST_TOUCH_BALL:
            //Log_SetStringToLog("Captain, we hit their mast!");
            int iBallType = sti(rBall.CurrentBallType);
            float fMult = 1.0;
            int bidx = -1;
            ref rBallCharacter;
            if(CheckAttribute(rCharacter,"Ship.LastBallCharacter"))
            {
                bidx = sti(rCharacter.Ship.LastBallCharacter);
                if(bidx >= 0)
                {
                    rBallCharacter = GetCharacter(bidx);
                    if(sti(rBallCharacter.index) != GetMainCharacterIndex() && CheckAttribute(rCharacter,"surrendered")) return fDamage; // NK because AI doesn't respect surrender. 05-04-23
                    rBallCharacter.Ship.lasttgt = sti(rCharacter.index); // NK 04-09-22 to see who AI is attacking
                    ref rCannon; if(USE_REAL_CANNONS) rCannon = GetCannonByType(CANNON_TYPE_LONG_LBS4); // KNB
                    else rCannon = GetCannonByType(CANNON_TYPE_CANNON_LBS12);
                    if(CheckAttribute(rBallCharacter,"Ship.Cannons.Type")) {rCannon = GetCannonByType(sti(rBallCharacter.Ship.Cannons.Type)); } // NK bugfix 04-06
                    fMult = stf(rCannon.DamageMultiply);
                    fMult *= MAST_MULT_SCL;
                } else {
                    bidx = -1;
                }
            }

/*            if(USE_REAL_CANNONS)    // Reduce effects of perks    // wasn't included in effects of original Ship Defence perks
            {
                if (sti(GetAttribute(rCharacter, "TmpPerks.Rigging")))        fMult *= 0.85; // -15%
                if (sti(GetAttribute(rCharacter, "TmpPerks.RiggingAdvance")))    fMult *= 0.75; // -25%
            }
            else
            {
                if (sti(GetAttribute(rCharacter, "TmpPerks.Rigging")))        fMult *= 0.8; // -20%
                if (sti(GetAttribute(rCharacter, "TmpPerks.RiggingAdvance")))    fMult *= 0.6; // -40%
            } */

            switch (iBallType)
            {
                case GOOD_BALLS:
                    fDamage = fDamage + MAST_BALL_SCL * hp * fMult;
                break;

                case GOOD_GRAPES:
                    fDamage = fDamage + MAST_GRAPE_SCL * hp * fMult;
                break;

                case GOOD_KNIPPELS:
                    fDamage = fDamage + MAST_CHAIN_SCL * hp * fMult;
                break;

                case GOOD_BOMBS:
                    fDamage = fDamage + MAST_BOMB_SCL * hp * fMult;
                break;
            }
// KK --> //KB - Tuning ships - Now hits at masts have a chance of critical hit, higher from chasers, even higher from gchasers. No matter calibers, but yes range
            if (bidx != -1 && iBalltype != GOOD_GRAPES) {  //Grapes can't bring down a mast... never!!!
                float endmastchance = 0.0;
                float mastchance = MASTCRIT / 100;
                if (CheckAttribute(rBall,"quad")) {
                    if (rBall.quad == "cannonf") {  //KB It's a chaser
                        mastchance = CMASTCRIT/100;
                        if (CheckTun(bidx, "gchasers")) mastchance = GCMASTCRIT/100;
                        if (CheckTun(bidx, "ltopmasts")) mastchance = mastchance + TMSAILCRIT/100;
                    }
                }

                //Checking crit mast fall
                float fShotDistance = Ship_GetDistance2D(rBallCharacter, rCharacter);
                if(fShotDistance <= 0) fShotDistance = 1.0; // NK for when dist < 0 05-04-15
                float exponent = (fShotDistance/100) -1;
                endmastchance = mastchance / pow(2,exponent); // decreasing  with range
                if (iRealismMode == 0 || Ship_GetDistance2D(GetMainCharacter(), rCharacter) < GetVisibilityRange(1)) { // KK: Mast fall can be seen from LONG range
                    if ( frnd() < endmastchance ) { // KB - bring down a mast
                        //Trace("KB - Tuning - Critical on mast");
                        PlaySound("objects\shipcharge\hurrah.wav");
                        fDamage = 1.0;
                    }
                }
            }
//KB - END Tuning ships // <-- KK
        break;
    }

    fDamage = Clampf(fDamage);

    // if mast fall - play sound
    if (fDamage >= 1.0)
    {
        Play3DSound("mast_fall", x, y, z);
        if(AUTO_SKILL_SYSTEM)
        {
            // LDH divide experience between cannons and accuracy - 27Dec08
            Ship_AddDelayedCumXP(rCharacter, "Cannons", makeint(fDamage*50));
            Ship_AddDelayedCumXP(rCharacter, "Accuracy", makeint(fDamage*50));
        }
    } else {
        if(AUTO_SKILL_SYSTEM)
        {
            // LDH divide experience between cannons and accuracy - 27Dec08
            Ship_AddDelayedCumXP(rCharacter, "Cannons", makeint(fDamage*25));
            Ship_AddDelayedCumXP(rCharacter, "Accuracy", makeint(fDamage*25));
        }
    }

    return fDamage;
}
Change it to this:
Code:
float Ship_MastDamage()
{
    return 0;
}
Again, can't try it myself right now, but that should prevent masts from falling.

For the rest of the Build 14 stuff, I can't be of more help since I don't play it so I don't really know exactly what has and hasn't been changed. I did talk with others who play Build 14 and Build 15 and they don't have any issues with sinking ships or black screens. In any case, someone who plays or develops for Build 14 would have to reply about the ship and the officers.
 
For disabling storms, find this in PROGRAM\WorldMap\worldmap_encgen.c:
Code:
void wdmStormGen(float dltTime, float playerShipX, float playerShipZ, float playerShipAY)
{
    ref mc = GetMainCharacter();
    bool encoff = false;
    if(GetAttribute(mc,"worldmapencountersoff") == 1)    return;
    if(CheckAttribute(mc,"ship.SubmergeDutchman"))        return;    // PB: No encounters or storms while you are submerged
    int numStorms = wdmGetNumberStorms();
    if(numStorms < 1)
    {
        wdmTimeOfLastStorm = wdmTimeOfLastStorm + dltTime*WDM_STORM_RATE*1000.0;
        if(rand(1001) < wdmTimeOfLastStorm)
        {
            wdmCreateStorm();
            wdmTimeOfLastStorm = 0.0;
        }
    }else{
        wdmTimeOfLastStorm = 0.0;
    }
}
Change it to this:
Code:
void wdmStormGen(float dltTime, float playerShipX, float playerShipZ, float playerShipAY)
{
    ref mc = GetMainCharacter();
    bool encoff = false;
    return;
    if(GetAttribute(mc,"worldmapencountersoff") == 1)    return;
    if(CheckAttribute(mc,"ship.SubmergeDutchman"))        return;    // PB: No encounters or storms while you are submerged
    int numStorms = wdmGetNumberStorms();
    if(numStorms < 1)
    {
        wdmTimeOfLastStorm = wdmTimeOfLastStorm + dltTime*WDM_STORM_RATE*1000.0;
        if(rand(1001) < wdmTimeOfLastStorm)
        {
            wdmCreateStorm();
            wdmTimeOfLastStorm = 0.0;
        }
    }else{
        wdmTimeOfLastStorm = 0.0;
    }
}
I can't try it myself right now but that should disable storms on the map.

For disabling falling masts, find this in PROGRAM\SEA_AI\AIShip.c:
Code:
float Ship_MastDamage()
{
    int iDamageType = GetEventData();
    int iMastNum = GetEventData();
    float x = GetEventData();
    float y = GetEventData();
    float z = GetEventData();
    float fDamage = GetEventData();
    aref rCharacter = GetEventData();
    rCharacter.seatime.lasthit = GetSeaTime(); // NK 04-09-16, to set time when last hit
    // NK -->
    float hp = GetCharacterShipHP(rCharacter);
    hp = sqrt(sqrt(pow(hp,2.5)))/82.0;
    hp = 1.0/hp;
    float collhp = sqrt(hp);
    ref rBall; makeref(rBall, AIBalls); // KK

    if(!bSeaActive) return makefloat(0);//MAXIMUS

    switch (iDamageType)
    {
        case SHIP_MAST_TOUCH_ISLAND:
            if(!IsMainCharacter(rCharacter)) return 0.0; // PB: Collision damage for player ship only
            fDamage = fDamage + MAST_ISLAND_SCL * collhp;
        break;

        case SHIP_MAST_TOUCH_SHIP:
//            if(!IsMainCharacter(rCharacter)) return 0.0; // PB: Collision damage for player ship only, GR: disabled, let NPC take damage
        //aref rCollideCharacter = GetEventData();
            fDamage = fDamage + MAST_SHIP_SCL * collhp;
        break;

        case SHIP_MAST_TOUCH_BALL:
            //Log_SetStringToLog("Captain, we hit their mast!");
            int iBallType = sti(rBall.CurrentBallType);
            float fMult = 1.0;
            int bidx = -1;
            ref rBallCharacter;
            if(CheckAttribute(rCharacter,"Ship.LastBallCharacter"))
            {
                bidx = sti(rCharacter.Ship.LastBallCharacter);
                if(bidx >= 0)
                {
                    rBallCharacter = GetCharacter(bidx);
                    if(sti(rBallCharacter.index) != GetMainCharacterIndex() && CheckAttribute(rCharacter,"surrendered")) return fDamage; // NK because AI doesn't respect surrender. 05-04-23
                    rBallCharacter.Ship.lasttgt = sti(rCharacter.index); // NK 04-09-22 to see who AI is attacking
                    ref rCannon; if(USE_REAL_CANNONS) rCannon = GetCannonByType(CANNON_TYPE_LONG_LBS4); // KNB
                    else rCannon = GetCannonByType(CANNON_TYPE_CANNON_LBS12);
                    if(CheckAttribute(rBallCharacter,"Ship.Cannons.Type")) {rCannon = GetCannonByType(sti(rBallCharacter.Ship.Cannons.Type)); } // NK bugfix 04-06
                    fMult = stf(rCannon.DamageMultiply);
                    fMult *= MAST_MULT_SCL;
                } else {
                    bidx = -1;
                }
            }

/*            if(USE_REAL_CANNONS)    // Reduce effects of perks    // wasn't included in effects of original Ship Defence perks
            {
                if (sti(GetAttribute(rCharacter, "TmpPerks.Rigging")))        fMult *= 0.85; // -15%
                if (sti(GetAttribute(rCharacter, "TmpPerks.RiggingAdvance")))    fMult *= 0.75; // -25%
            }
            else
            {
                if (sti(GetAttribute(rCharacter, "TmpPerks.Rigging")))        fMult *= 0.8; // -20%
                if (sti(GetAttribute(rCharacter, "TmpPerks.RiggingAdvance")))    fMult *= 0.6; // -40%
            } */

            switch (iBallType)
            {
                case GOOD_BALLS:
                    fDamage = fDamage + MAST_BALL_SCL * hp * fMult;
                break;

                case GOOD_GRAPES:
                    fDamage = fDamage + MAST_GRAPE_SCL * hp * fMult;
                break;

                case GOOD_KNIPPELS:
                    fDamage = fDamage + MAST_CHAIN_SCL * hp * fMult;
                break;

                case GOOD_BOMBS:
                    fDamage = fDamage + MAST_BOMB_SCL * hp * fMult;
                break;
            }
// KK --> //KB - Tuning ships - Now hits at masts have a chance of critical hit, higher from chasers, even higher from gchasers. No matter calibers, but yes range
            if (bidx != -1 && iBalltype != GOOD_GRAPES) {  //Grapes can't bring down a mast... never!!!
                float endmastchance = 0.0;
                float mastchance = MASTCRIT / 100;
                if (CheckAttribute(rBall,"quad")) {
                    if (rBall.quad == "cannonf") {  //KB It's a chaser
                        mastchance = CMASTCRIT/100;
                        if (CheckTun(bidx, "gchasers")) mastchance = GCMASTCRIT/100;
                        if (CheckTun(bidx, "ltopmasts")) mastchance = mastchance + TMSAILCRIT/100;
                    }
                }

                //Checking crit mast fall
                float fShotDistance = Ship_GetDistance2D(rBallCharacter, rCharacter);
                if(fShotDistance <= 0) fShotDistance = 1.0; // NK for when dist < 0 05-04-15
                float exponent = (fShotDistance/100) -1;
                endmastchance = mastchance / pow(2,exponent); // decreasing  with range
                if (iRealismMode == 0 || Ship_GetDistance2D(GetMainCharacter(), rCharacter) < GetVisibilityRange(1)) { // KK: Mast fall can be seen from LONG range
                    if ( frnd() < endmastchance ) { // KB - bring down a mast
                        //Trace("KB - Tuning - Critical on mast");
                        PlaySound("objects\shipcharge\hurrah.wav");
                        fDamage = 1.0;
                    }
                }
            }
//KB - END Tuning ships // <-- KK
        break;
    }

    fDamage = Clampf(fDamage);

    // if mast fall - play sound
    if (fDamage >= 1.0)
    {
        Play3DSound("mast_fall", x, y, z);
        if(AUTO_SKILL_SYSTEM)
        {
            // LDH divide experience between cannons and accuracy - 27Dec08
            Ship_AddDelayedCumXP(rCharacter, "Cannons", makeint(fDamage*50));
            Ship_AddDelayedCumXP(rCharacter, "Accuracy", makeint(fDamage*50));
        }
    } else {
        if(AUTO_SKILL_SYSTEM)
        {
            // LDH divide experience between cannons and accuracy - 27Dec08
            Ship_AddDelayedCumXP(rCharacter, "Cannons", makeint(fDamage*25));
            Ship_AddDelayedCumXP(rCharacter, "Accuracy", makeint(fDamage*25));
        }
    }

    return fDamage;
}
Change it to this:
Code:
float Ship_MastDamage()
{
    return 0;
}
Again, can't try it myself right now, but that should prevent masts from falling.

For the rest of the Build 14 stuff, I can't be of more help since I don't play it so I don't really know exactly what has and hasn't been changed. I did talk with others who play Build 14 and Build 15 and they don't have any issues with sinking ships or black screens. In any case, someone who plays or develops for Build 14 would have to reply about the ship and the officers.
Wow! THANK YOU SO MUCH! I would never have been able to ferret this out of that tornado of code that PotC has become. Has anyone considered cleaning out the obsolete trash and slimming this Hurricane down to a simple compilation? A noble deed indeed if anyone is Hero enough to slay this code dragon. Enough metaphors... appreciate your kind guidance how in the world do you have such intimate knowledge of code you haven't been involved in creating? You are truly a Wizard of C to have so much talent. I'm blessed by your association and through you will have a much more enjoyable experience on the Spanish Main... Yarrr Maties!

I understand to delete all code from open "{" to the final close "}" and replace with:
"float Ship_MastDamage()
{
return 0;"

...correct?

All this to negate the Internalsettings table of mast damage that was so much smaller and concise? Was this done intentionally to negate user mods to the game by creating a hidden override? The effect of this change is absurd... e.g., a 4# ball from a skiff on the first volley takes down the mainmast on a Barfluer Ship of the Line! Doesn't anyone Beta test these builds before release?

The term code quality describes the general evaluation of a piece of software code's effectiveness, reliability, and maintainability. The main qualities of code quality are readability, clarity, reliability, security, and modularity to name a few. These qualities make the code easy to understand, change,

Okay, I'll get off my "Soap Box" now... just a lifetime of dedicated QA work in a multitude of official positions with huge responsibility and consequences has made me a zealot for proper coding etiquette. nobody should take this as personal criticism I'm just expressing my emotional angst.

However, I might point out this is B14v24 British thanks to my Brit Mate... not v22(=bland US version...) fellow voyeurs on the Spanish Main you must check out this Brit version... a lot more fun for sure!

Rightly should have its own forum topic since it is not a twin but a relative?

I believe the best forum location for such user mods is the forum Pieter created for such user mods personalizing game play... that's where this belongs...right?


Now my problem is how to capture all this wonderful info in a doc I can download and print out or refer to while accomplishing your guidance. Not familiar enough yet to know how to capture and download from these pages.

Think I got it wordpad to PDF995 to Office Word 2007... hope so... THANKS MATE !

btw... ANY EASIER WAY? I'D BE GLAD TO KNOW... :)

Indeed it doesn't make sense that it doesn't work if the only change is a newer version, but at the same time most players don't seem to have these problems. I for instance can't recreate these issues as both B14 and B15 ran fine for me.

I've never used "optimizers" and "boosters" on any of my own computers, but from what I've seen on others' computers, they are never of any help and if anything only hurt performance. It's one's own choice, but I would never use them.

I don't think there's a program that can help with troubleshooting such particular situations, but I might point to Ultimate Boot CD for help with diagnosing hardware problems: Ultimate Boot CD - Overview
That is a useful collection to have in one's toolbox. It can be burned to a CD and also be made to run from a USB flash drive. One example of a useful tool is MemTest86 to check for faulty memory - which obviously would cause problems with the operating system and other software.


Your first question is valid and I agree that it is strange as it should work. Your second question I would take as an insult if I were Hammie. It implies that he's acting with malicious intent and would need to assure the community that he is not, when he has been contributing and helpful in the community for years.

The entire Build 15 source code including the engine is available here:
Anyone could look at it and compile it themselves.

Also anyone could contribute to B15 just as they can to B14. Hammie has brought it to the new engine, but he doesn't need to be the only developer.
Your Ultimate Boot sounds like a very good tool to have in the toolbox. Visited the link and since the download is an ISO file which I rarely have used I would appreciate some guidance in getting this downloaded safely. Does it need to be directly downloaded to a CD in my drive or can it be a file to be burned onto a CD? Since you've experience in this process please advise me how to proceed... Thanks :)
 
NZAR A83 Cannon ball sizes Borgards standardised ordnance
Researched and compiled by Dr John Osborne MG DTT PhD FSG April 1994, reviewed March 2016.

In 1712, Colonel Albert Borgard was appointed Chief Firemaster and later, in 1718, Assistant Surveyor of
Ordnance. He rationalized the multitude of gun types then in the Royal Ordnance and specified a complete
system of artillery.

His designs were accepted in 1716. Few of his gun designs were successful and they were
redesigned when Armstrong was appointed Surveyor of Ordnance in 1722. But Borgard's effort to standardize
the Ordnance had long lasting effect.

Borgard dispensed with the historic names for the types of guns, such as Falcon, Minion, Saker, Demi‐Culverin
etc. and specified each type by the weight of the round cast iron shot (cannonball) they fired. He further
limited the number of cannonball weights to a strict set of values:
The large gun values were 4, 6, 9, 12, 18, 24, 32 and 42 pounds (lb), where 1 lb = 0.45 kg

Ball weight, not cannon bore caliper (caliber) was used to categorize.

Shouldn't the listings in the code be consistent with this fact?
 
Back
Top