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!
A Pirate Podcast with Interviews
Music, Comedy and all things Pirate!
- Episode Guide - About - Subscribe -
- Twitter - Facebook - iTunes - Android -
- Youtube - Fill the Coffers -
Quick links for Beyond New Horizons
- Download latest version
- Wiki
- FAQ
- Report bugs here
- Bug Tracker on Github
Quick links for Maelstrom
- Download the latest version of Maelstrom
- Download the latest version of ERAS II
- Download the latest version of New Horizons on Maelstrom
Quick links for PotC: New Horizons
- Download latest version
- Wiki
- FAQ
- Report bugs here
Thanks to YOUR votes, GOG.com now sells:
- Sea Dogs
- Sea Dogs: Caribbean Tales
- Sea Dogs: City of Abandoned Ships
Vote now to add Pirates of the Caribbean to the list!
Quick links for AoP2: Gentlemen of Fortune 2
- Downloads and info
- ModDB Profile
- Forums Archive
A Pirate Podcast with Interviews
Music, Comedy and all things Pirate!
- Episode Guide - About - Subscribe -
- Twitter - Facebook - iTunes - Android -
- Youtube - Fill the Coffers -
void procActionRepair()
{
int chrIdx = GetEventData();
int eRepType = GetEventData();
if(chrIdx<0) return;
if(!bSeaActive) return;
ref chref = GetCharacter(chrIdx);
if( LAi_IsDead(chref) ) return;
if(eRepType!=0)
{
float fMaterialH = GetEventData();
float fMaterialS = GetEventData();
}
if(bAbordageStarted)
{
if(eRepType==0)
{
PostEvent("evntActionRepair",BI_FAST_REPAIR_PERIOD,"ll", chrIdx, 0);
}
else
{
PostEvent("evntActionRepair",BI_FAST_REPAIR_PERIOD,"llff", chrIdx, eRepType, fMaterialH,fMaterialS);
}
return;
}
beats me. I'm trying to make sensse of this code too.Why are there repairs going on during boarding???
I don't know.Also, if it is because of "being repaired", why would that in any way seem to be triggered by looting?
Well... it seems that boarding is not saved per-se, I’m being booted back to the sea upon reloading. I don’t know yet, but I’m assuming that loot, crew status, etc, is saved, but the boarding must be done again. Therefore, I wonder what might happen if I kill the captain and then save/reload?
Anyway, I’ve found something. I have disabled ENABLE_EXTRA_SOUNDS and it seems now that the game is crashing not only every time I loot a body, but also chests. I haven’t checked it in a town. I also hit a buffer overflow when I returned to the main map.
compile.log said:PauseAllSounds
SETTING MUSIC: music_map
ResumeAllSounds
Repair & Defence skill added in ProcessSailRepair: 1.5714 actual 2“A stack overflaw was rised”. Cool.system.log said:Island Set
User Rised Exception
C:\PROJECTS\DRIVE_V2\ENGINE\SOURCES\s_stack.cpp line 47
stack overflaw
Somebody mentioned something about repairs while looting, I’ve also already suspected an issue with the music and/or sound effects. I’ll have more of a look at it and if I can find anything useful then I’ll post it in the other thread.
UPDATE - It’s not crashing every time, I just boarded a Ketch and looted everything with a problem. Might this have been because I had no sail cloths?
bool CheckInstantRepairCondition(ref chref)
{
if(!bMapEnter) return false;
if(!GetOfficersPerkUsing(chref,"InstantRepair")) //ASVS - come on, we have a function for that, why not using it?
return false;
if(GetHullPercent(chref) < 90.0 && GetCargoGoods(chref, GOOD_PLANKS) > 0) return true;
return GetSailPercent(chref) < 90.0 && GetCargoGoods(chref, GOOD_SAILCLOTH) > 0;
}
if(!LAi_IsBoardingProcess())
It seems to have done it. I’m leaving that as it is for now, I’d actually rather have no automatic repair and be able to loot stuff. I obviously didn’t get the code right for catching the boarding location, but breaking the function let me get through the decks.See if you can find the ProcessSailRepair function and put a 'return' statement at the top. That will stop it from executing altogether.
Would be interesting to know if that helps against the crashes. If so, it should be simple enough to abort it during boarding.
I don't know what LAi_IsBoardingProcess() does. There is a different check that I normally use to check if there is a boarding going on....I have enclosed it with...
It makes no difference.Code:if(!LAi_IsBoardingProcess())
That does sound plausible. I'm not sure if repair is called every time you loot a body though.I think I know what’s happening here - the system is trying to repair the player’s ship, but since he’s not technically on his ship it’s throwing a wobbler. So there are two potential problems; it is trying to repair every time a body is looted, which has already been suggested, and then it can’t do so for the above reason.
Maybe they had a low morale and surrendered? But then you should have gotten the dialog.How come is it that when there are four British heavies together, all in top condition, and I roll up next to one, hoist the black flag and when I board it goes straight to the captain, with no crew fights? I wouldn’t complain normally but I actually need the melee!
void ProcessDayRepair()
{
if( GetHullPercent(chref)<100 ) return false;
if( GetSailPercent(chref)<100 ) return false;
}
bool CheckInstantRepairCondition(ref chref)
{
if(GetHullPercent(chref) < 90 && GetCargoGoods(chref, GOOD_PLANKS) > 0) return false;
if(GetSailPercent(chref) < 90 && GetCargoGoods(chref, GOOD_SAILCLOTH) > 0) return false;
}