Are you using the blue interface? That used to be buggy. How does the brown interface work?
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!
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 -
The thing is that Pirate_KK made his work exclusively on the blue interface. So I HAVE to use that.Are you using the blue interface? That used to be buggy. How does the brown interface work?
Now I'm REALLY quite confused. Turns out that my game doesn't always crash when opening the Select Storyline interface.
Sometimes it DOES work. See?
View attachment 10707
But when the interface DOES open, the storyline shown is NOT the Standard one, but the Woodes Rogers one.
One time I managed to scroll all the way to Master & Commander before it crashed, but the other time it crashed before getting to Hornblower.
I don't know WHAT I did, but it's got very unstable results.
No, they don't. I wish. Before, the game wouldn't run because there were obvious coding errors. And it generated a nice error.log telling me where to look.How strange. I suppose the fact that something works is a good sign, at least.
Do the error logs give you any kind of clues as to what's going wrong?
void InitInterface(string iniName)
{
Trace("Start Loading Interface");
string attr;
ref rName; makeref(rName, tmpNames);
GetLanguageParameters(); // MAXIMUS 30.07.2006
GameInterface.title = "";
GameInterface.SHIP.current = 0;
GameInterface.SHIP.ImagesGroup.t0 = "ICONS";
GameInterface.SHIP.ImagesGroup.t1 = "SHIPS16";
GameInterface.SHIP.ImagesGroup.t2 = "SHIPS1";
GameInterface.SHIP.pic1.str1 = "";
GameInterface.SHIP.pic1.img1 = "ship back";
GameInterface.SHIP.pic1.tex1 = 0;
GameInterface.SHIP.pic1.str2 = "";
GameInterface.SHIP.pic1.img2 = "";
GameInterface.SHIP.pic1.tex2 = -1;
GameInterface.SHIP.ListSize = 1;
GameInterface.SHIP.NotUsed = 1;
GameInterface.SELECTPICT.current = 0;
if (bNewInterface)
GameInterface.SELECTPICT.ImagesGroup.t0 = "EMPTYFACE_NEW";
else
GameInterface.SELECTPICT.ImagesGroup.t0 = "EMPTYFACE";
GameInterface.SELECTPICT.ImagesGroup.t1 = "ICONS";
GameInterface.SELECTPICT.ImagesGroup.t2 = "SHIPS16";
GameInterface.SELECTPICT.ImagesGroup.t3 = "SHIPS1";
GameInterface.SELECTPICT.BadTex1 = 0;
GameInterface.SELECTPICT.BadPic1 = "emptyface";
GameInterface.SELECTPICT.pic1.str1 = "";
GameInterface.SELECTPICT.pic1.img1 = "";
GameInterface.SELECTPICT.pic1.tex1 = 0;
GameInterface.SELECTPICT.pic1.str2 = "";
GameInterface.SELECTPICT.pic1.img2 = "";
GameInterface.SELECTPICT.pic1.tex2 = -1;
GameInterface.SELECTPICT.ListSize = 1;
GameInterface.SELECTPICT.NotUsed = 1;
GameInterface.MAP.current = 0;
GameInterface.MAP.ImagesGroup.t0 = "MAP";
GameInterface.MAP.pic1.img1 = "map";
GameInterface.MAP.pic1.tex1 = 0;
GameInterface.MAP.ListSize = 1;
GameInterface.MAP.NotUsed = 1;
for (slno = 0; slno < SKILL_MAX; slno++)
{
tmpCharSkills[slno] = 1;
tmpCharBonusSkills[slno] = 1.0;
}
Trace("Skill Things");
SendMessage(&GameInterface,"ls",MSG_INTERFACE_INIT,iniName);
slno = FindDefaultStoryline();
ProfileName = DEFAULT_PROFILE_NAME;
arstart = GetStorylineStartParams(slno);
curOutfit = GetModelIndex(arstart.model);
tmpOutfit = curOutfit;
curOutfitSex = OUTFITSEX_ANY;
curOutfitModel = OUTFITMODEL_ANY;
curOutfitOffType = OUTFITOFFTYPE_ANY;
curOutfitNation = 0;
curOutfitNamed = OUTFITNAMED_ANY;
initialOutfit = -1;
attr = arstart.model;
rName.(attr) = "";
if (CheckAttribute(arstart, "name") == true && arstart.name != "") rName.(attr) = arstart.name;
if (CheckAttribute(arstart, "lastname") == true && arstart.lastname != "") rName.(attr) = rName.(attr) + " " + arstart.lastname;
if (rName.(attr) == "") XI_SetRandomName();
Trace("Random Name");
curShip = -1;
if (CheckAttribute(arstart, "ship"))
curShip = GetShipIndex(arstart.ship);
else
CharShipName = "";
tmpShip = curShip;
curShipClass = -1;
curShipType = SHIPTYPENAME_ANY;
curShipModel = -1;
curShipCannonsQty = -1;
initialShip = -1;
shipclass_max = 6;
zoom_level = 0;
Trace("Start Date");
CharYear = sti(arstart.date.year);
CharMonth = sti(arstart.date.month);
CharDay = sti(arstart.date.day);
CharHour = sti(arstart.date.hour);
CharMinute = sti(arstart.date.min);
CharSecond = sti(arstart.date.sec);
curPeriod = GetPeriodFromYear(CharYear);
curPort = -1;
if (CheckAttribute(arstart, "port")) curPort = FindLocation(arstart.port);
curLocation = curPort;
if (CheckAttribute(arstart, "location")) curLocation = FindLocation(arstart.location);
SetSelectable("SELECTOR1", false);
SetSelectable("SELECTOR2", false);
curPlayerType = PLAYER_TYPE_MERCHANT;
tmpPlayerType = curPlayerType;
makeref(rShipModel, ShipModels);
Trace("Ship Models");
idShipDescr = LanguageOpenFile("ShipModels_descriptions.txt");
Trace("Descriptions");
curWindow = -1;
Trace("curWindow");
SetWindow(WINDOW_MAIN);
Trace("WINDOW_MAIN");
CreateString(true, "ScreenTitle", XI_ConvertString("titleSelectStoryline"), FONT_TITLE, COLOR_NORMAL, 320, 5, SCRIPT_ALIGN_CENTER, 1.0);
CreateString(true, "StorylineTitle", GetStorylineTitle(slno), FONT_NORMAL, COLOR_NORMAL, 320, 84, SCRIPT_ALIGN_CENTER, 1.0);
CreateString(true, "lblProfile", TranslateString("", "Profile") + ":", FONT_NORMAL, COLOR_NORMAL, 200, 245, SCRIPT_ALIGN_LEFT, 0.7);
CreateString(true, "StartDate", "", FONT_NORMAL, COLOR_NORMAL, 200, 270, SCRIPT_ALIGN_LEFT, 0.7);
CreateString(true, "StartLocation", TranslateString("", "unknown"), FONT_NORMAL, COLOR_NORMAL, 320, 292, SCRIPT_ALIGN_CENTER, 0.7);
CreateString(true, "LblNation", TranslateString("", "Nation") + ":", FONT_NORMAL, COLOR_NORMAL, 200, 318, SCRIPT_ALIGN_LEFT, 0.7);
CreateString(true, "LblFlags", TranslateString("", "Flags") + ":", FONT_NORMAL, COLOR_NORMAL, 320, 318, SCRIPT_ALIGN_LEFT, 0.7);
CreateString(true, "Difficulty", TranslateString("", GetDifficultyNameFromListNumber(CharDifficulty)), FONT_NORMAL, COLOR_NORMAL, 270, 344, SCRIPT_ALIGN_CENTER, 0.7);
CreateString(true, "PlayerType", TranslateString("", GetPlayerTypeName(curPlayerType)), FONT_NORMAL, COLOR_NORMAL, 395, 344, SCRIPT_ALIGN_CENTER, 0.7);
Trace("Create String Finished");
SetFormatedText("INFO_TEXT", GetStorylineDescription(slno));
SendMessage(&GameInterface,"lsl",MSG_INTERFACE_MSG_TO_NODE,"INFO_TEXT",5);
Trace("Start Create Text Box");
CreateTextbox(true, "Profile", "PROFILE_TEXTBOX", "PROFILE_BORDER", "", "", 345, 240, 1.0);
CreateTextbox(true, "CharacterName", "CHARNAME_TEXTBOX", "BOX1", "RAMKA1", "", 124, 375, 1.0);
CreateTextbox(true, "ShipName", "SHIPNAME_TEXTBOX", "BOX2", "RAMKA2", "", 516, 375, 1.0);
CreateTextbox(false, "ShipClass", "SHIPCLASS_TEXTBOX", "BOX4", "RAMKA4", "", 245, 306, 0.8);
SetTextboxNumeric("ShipClass");
SetTextboxMinMax("ShipClass", shipclass_max, MIN_CLASS);
CreateTextbox(false, "CannonsQuantity", "SHIPCANNONSQTY_TEXTBOX", "BOX5", "RAMKA5", "", 500, 306, 0.8);
SetTextboxNumeric("CannonsQuantity");
SetTextboxMinMax("CannonsQuantity", 0, 200);
CreateTextbox(false, "SearchText", "SEARCH_TEXTBOX", "BOX3", "RAMKA3", "", 500, 368, 0.8);
Trace("Storyline Quantity");
if (GetStorylinesQuantity() == 1) {
SetNodeUsing("STORYLINE", false);
SetNodeUsing("RAMKA", true);
SetNodeUsing("BOX", true);
}
slno = 0;
ChangeStoryline(false);
SetEventHandler("InterfaceBreak","ProcessCancelExit",0);
SetEventHandler("exitCancel","ProcessCancelExit",0);
SetEventHandler("ievnt_command","ProcCommand",0);
SetEventHandler("IEvnt_MouseClick", "IProcMouseClick", 0);
SetEventHandler("UpStep", "DoUpStep", 0);
SetEventHandler("DownStep", "DoDownStep", 0);
SetEventHandler("StartGame", "GameStart", 0);
Trace("Finish Loading Interface");
}
That appears to be CONFIRMED! I set all troublesome storylines' start.ship to "BarqueHeavy", which is comfortably part of [SHIPS1].The HMS_Bellona is not showing her interface screenshot in the Select Storyline, even though the code for that looks perfectly correct and it does work for the other ships.
I wonder if possibly the game is just having to load too much stuff from RESOURCE\INI . I remember ages ago that when we added too many sounds there, some were starting to drop out.
Maybe now other things are dropping out?
; ===== this insect file should go last so we can tell if we've exceeded the number of alias names. system.log will have errors on this name if we do
[nightinsects]
minDistance = 0.30
maxDistance = 3.0
volume = 0.3
name = NATURE\cricket.wav
name = NATURE\cricket2.wav
Wow. That's not good.That appears to be CONFIRMED! I set all troublesome storylines' start.ship to "BarqueHeavy", which is comfortably part of [SHIPS1].
Now I managed to scroll freely between every single storyline without any apparent problems.
So it seems now we know where the problem comes from: we're literally running into the game's ceiling.
I'm afraid that would just move the problem to whenever a ship is used that does use one of the other textures.Here's a thought: ensuring all the start ships use just one of the four interface textures seems to have fixed the problem, so what if we rearranged the interface textures so that all the correct start ships use only SHIPS1?
It would be a fiddly process, but certainly doable. Loading all of those massive textures can't be good for performance in any case.
He no longer uses the .h files for the dialog texts, but instead has those in the INI folders.What's so different about the dialogue system, out of interest?