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

Explorers...

That seems to work; cool! And you don't even need to LOAD to the location; you just need to FIND it.
It would be nice if the disable code could be added like this in fast_reload_table.c though:
Code:
	// tavern
curTable.l3.pic = FRP_TAVERN;
curTable.l3.tex = FRT_TAVERN;
curTable.l3.note = FRN_TAVERN; // KK
curTable.l3.location = "Douwesen_tavern";
if(!bArcadeMode) curTable.l3..goto_disable = 1; // Screwface: Disable Go-To location
Would something like that be possible?

While we're on the subject of fast travel, does that l3 in the curTable code have anything to do with the l3 in the location init code?
And why doesn't fast travel work for certain fort locations, like Port au Prince?

Should we link this and the disable-sail-to mod with Realistic Sailing? If so, we should rename the option.
I'm thinking that there's a whole bunch of realism options anyway that make the 'Sailing Mode' options interface
rather useless. Does anyone else agree?

And what about spyglasses? I'm thinking that in realistic mode,
they shouldn't tell you anything you couldn't REALLY gather from the spyglass.
Maybe even remove all information from the spyglasses and only make them enlarge, like they should.
That way, you'd need to actually rely on your own knowledge of ship types and flags to recognize encounters.
Espcially if we make certain nations use certain ship types more than others, which we've already tried to do,
you can judge the nation from the ship type, ship skin (in some cases) AND ship flag.
Would be fun if people would actually get to do that, no?
But now your spyglass tells you the nation long before you can tell it yourself. :(
 
That seems to work; cool! And you don't even need to LOAD to the location; you just need to FIND it.
It would be nice if the disable code could be added like this in fast_reload_table.c though:
Code:
	// tavern
curTable.l3.pic = FRP_TAVERN;
curTable.l3.tex = FRT_TAVERN;
curTable.l3.note = FRN_TAVERN; // KK
curTable.l3.location = "Douwesen_tavern";
if(!bArcadeMode) curTable.l3..goto_disable = 1; // Screwface: Disable Go-To location
Would something like that be possible?

While we're on the subject of fast travel, does that l3 in the curTable code have anything to do with the l3 in the location init code?
And why doesn't fast travel work for certain fort locations, like Port au Prince?
I don't think it's possible to proceed like that just because you wouldn't have a link with the locator name anymore. In this case, how could we do to enable the fast travel as soon as we find the locator ? I don't know :shrug Plus, the l3 in the curtable has nothing to do with the l3 in location init. Just look the store one (ex : douwesen), it's l2 in curtable and l5 in location init file.

Should we link this and the disable-sail-to mod with Realistic Sailing? If so, we should rename the option.
I'm thinking that there's a whole bunch of realism options anyway that make the 'Sailing Mode' options interface
rather useless. Does anyone else agree?
:yes

And what about spyglasses? I'm thinking that in realistic mode,
they shouldn't tell you anything you couldn't REALLY gather from the spyglass.
Maybe even remove all information from the spyglasses and only make them enlarge, like they should.
That way, you'd need to actually rely on your own knowledge of ship types and flags to recognize encounters.
Espcially if we make certain nations use certain ship types more than others, which we've already tried to do,
you can judge the nation from the ship type, ship skin (in some cases) AND ship flag.
Would be fun if people would actually get to do that, no?
But now your spyglass tells you the nation long before you can tell it yourself. :(
It would give more realism to the different flags mod. We should have a look in the ispyglass.c file :mm
 
you shouldn't forget that there are new players who don't have the ship knowledge they'd need when they don't get it with a spyglass anymore. i love the idea, but we're in danger of making the same mistake as the makers of CoaS made: optimizing the game towards experienced players, basically eliminating any kind of learning curve.
 
That's why there are 4 difficulty level for the spyglass in the buildsettings :

Code:
// ======================================
// SPYGLASS VIEW
// ======================================

int KBSPG = 2;
// Makes the info given by spyglasses unaccurate and depending of distance
//	0: Stock PotC: Deactivate mod
//	1: "Fun" settings of parameters (not too hard, for beginners)
//	2: "Realistic" (values as near as reality as it can, adjusted to the distances of the game)
//	3: "Hard" for experts - very few info, very inaccurate, need to close
//	4: Fine tuning - the mod will use values that you can tweak in InternalSettings.h

I think the fine tuning one is particulary interesting for the realistic mod and all its value can be adjusted in the internalsettings.h at this section of code :
Code:
// ======================================
// SPYGLASS VIEW by KBLACK
// ======================================

// --- Makes the info given by spyglasses unaccurate and depending of distance
// (all nautical terms are in spanish - except those I know in English)
// (all settings are INT)

// --- KBSPG - Fine tuning section (set by default to "Fun" )
// --- Accuracy parameters
#define KBSPGACCSPG1				4			// Accuracy parameter of Cheap Spyglass
#define KBSPGACCSPG2				3			// Accuracy parameter of Standard Spyglass
#define KBSPGACCSPG3				2			// Accuracy parameter of Good Spyglass
#define KBSPGACCSPG4				1			// Accuracy parameter of Mastercraft Spyglass

// --- Range parameters. Further modified by Accuracy of spyglass

#define KBSPGRANGEHULL				750			// Range in yards to start getting info about hull status
#define KBSPGRANGECLASS				750			// Range in yards to start getting info about class of ships ( number of decks and details of hull ) 
#define KBSPGRANGECANNONS			750			// Range in yards to start getting info about number of cannons (counting "portas") 
#define KBSPGRANGEGUNPOWDER			750			// Range in yards to start getting info about quantity of gunpowder (counting "portas") 
#define KBSPGRANGENAME				750			// Range in yards to start getting info about name of ships (you've to be close to read it)
#define KBSPGRANGELOAD				750			// Range in yards to start getting info about type of ammo loaded

#define KBSPGRANGESAILS				1500		// Range in yards to start getting info about sails status (easy to see from far away)
#define KBSPGRANGENATION			1500		// Range in yards to start getting info about nation - if you see the sails, you see the flag - further away you get "UNKOWN" nation
#define KBSPGRANGESPEED				1500		// Range in yards to start getting info about speed - although more inaccurate with the distance, you can guess it
// from the waves the ship makes, and the change in distance, and the rigging deployed

#define KBSPGRANGECREW				350			// Range in yards to start getting info about number of sailors (in realistic, fun or tuned, you'll get the fraction 	
// of sailors in the topo deck, and have to calculate depending the number of decks the ships has - a lugger, what you 
// see it's what you get; a manowar, you have most of the crew in the lower decks
#define KBSPGRANGEMORALE			350			// Range in yards to start getting info about morale of crew 
#define KBSPGRANGECALIBER			350			// Range in yards to start getting info about caliber of guns 

#define KBSPGRANGETYPE				350			// Range in yards to get the type of ship - really funny to have to guess the ship by the shape :-)
// No need for RANGE - but also spyglasses return unaccurate info about distance

// --- Variability of the info - scalar to tune how wide is the range of variable info. I't multiplied by accuracy of spyglass.

#define KBSPGVARHULL				5			// Default 5 - Higher more unaccurate
#define KBSPGVARCANNONS				20			// Default 20 - Lower more unaccurate
#define KBSPGVARGUNPOWDER			20			// Default 20 - Lower more unaccurate
// No need for KBSPGVARCLASS		
// No need for KBSPGVARNAME		
// No need for KBSPGVARLOAD		

#define KBSPGVARSAILS				1			// Default 1 - Higher more unaccurate
#define KBSPGVARSPEED				100			// Default 100 - Lower more unaccurate
// No need for KBSPGVARSAILS

#define KBSPGVARCREW				10			// Default 10 - Lower more unaccurate
// No need for KBSPGVARMORALE
// No need for KBSPGVARCALIBER
// No need for KBSPGVARTYPE

#define KBSPGVARRANGE				20			// Default 20 - Lower more unaccurate
In fact, the expert or fine tuning level would be autamically turned on when you would choose to play in realistic mod
 
but a new player would likely not know about that file either. so unless it's got the unrealistic data on by default, the problem would be there anyway. or was buildsettings mentioned in the installation process?
 
My personal idea is to link all this to a realistic game mode
(which replaces Realistic Sailing) and is OFF by default.
New players wouldn't have any troubles from this, but experienced players could turn it on.
I'd be inclined to just make an Arcade and Realistic game mode that influences more than just the sailing.

For the Fast Travel, could somebody add the required lines to the location init files?
That's the if(!bArcadeMode) Locations[n].reload.l(num).goto_disable = 1; // Screwface: Disable Go-To location ones.

For the spyglasses, I was thinking of just doing it simply like this:
Code:
	//---------------------------------------------------------------------------------------------------------------------------------------------------------------
// SPYGLASSES:   ItemIndex                                     Price  texture           activate         nation     cannons   crew               skiptrade
//			     | itmID     model        picIndex  rare	   	 |    |                        | update  | shipname | hull    | speed     quality| skiprand
//			     |  |           |   picTexture  |   |   MinLevel |    |                zoom    |    |    | | shiptype | sail  | | charge    |    | | skipequip
//---------------|--|-----------|-----------|---|---|------|-----|----|-------------------|----|----|----|-|-|------|-|-|-----|-|-|---------|----|-|-|-----------
if(bArcadeMode)
{
n = InitSpyglass(n,"spyglass1","", 			8, 14,	0.30,  1,  300, "eye_BadTub.tga",    2.5, 500, 150,  1,1,1,     0,0,0,    0,0,0,        1,   0,0,0);// Cheap Spyglass
n = InitSpyglass(n,"spyglass2","", 			8, 15,	0.07,  2,  800, "eye_CommonTub.tga", 4.0, 500, 150,  1,1,1,     0,1,1,    0,1,0,        3,   0,0,0);// Average Spyglass
n = InitSpyglass(n,"spyglass3","", 			8, 16,	0.05,  5, 3000, "eye_GoodTub.tga",   5.5, 500, 150,  1,1,1,     1,1,1,    1,1,0,        7,   0,0,0);// Great Spyglass
n = InitSpyglass(n,"spyglass4","spyglass4", 1, 14,	0.02,  7, 5000, "eye_BestTub.tga",   7.0, 500, 150,  1,1,1,     1,1,1,    1,1,1,        9,   0,0,0);// Master Spyglass
}
else
{
n = InitSpyglass(n,"spyglass1","", 			8, 14,	0.30,  1,  300, "eye_BadTub.tga",    2.5, 500, 150,  0,0,0,     0,0,0,    0,0,0,        1,   0,0,0);// Cheap Spyglass
n = InitSpyglass(n,"spyglass2","", 			8, 15,	0.07,  2,  800, "eye_CommonTub.tga", 4.0, 500, 150,  0,0,0,     0,0,0,    0,0,0,        3,   0,0,0);// Average Spyglass
n = InitSpyglass(n,"spyglass3","", 			8, 16,	0.05,  5, 3000, "eye_GoodTub.tga",   5.5, 500, 150,  0,0,0,     0,0,0,    0,0,0,        7,   0,0,0);// Great Spyglass
n = InitSpyglass(n,"spyglass4","spyglass4", 1, 14,	0.02,  7, 5000, "eye_BestTub.tga",   7.0, 500, 150,  0,0,0,     0,0,0,    0,0,0,        9,   0,0,0);// Master Spyglass
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------
More advanced ideas would be welcome, of course.
The realistic spyglass mod we have now just makes the numbers change for inaccuracy,
which might still be considered a bit odd. Not to mention percentages sometimes show higher than 100. :wacko:
 
that sounds good to me. it might cause some frustration when you really need to land, but that's the risk you take for venturing into uncharted territory. adding all realistic buildsettings to realistic sailing mode would also get rid of all the tweaking that needs doing before you start a game. speaking of which, wouldn't this cause problems with the game if you change the sailing mode mid-game if it influences so much?
 
Not at the moment, since most of the changes are made during the game starting process.
If you'd start the game with realistic sailing mode, then switch to arcade, you'd use arcade sailing mode,
but still need to discover shores and fast travel locations before being able to use that.

Additional thoughts on the spyglasses would be welcome. :doff
 
Does anyone have any idea what's wrong with the Fast Travel for certain forts, say Port au Prince?
If you use that, you end up looking at the loading screen forever.
I tried to fix it in the past, but can't figure out what's wrong. :modding
I'm sincerely hoping someone (Screwface? Pirate_KK?) can fix that properly.

Also, is anybody going to put those goto_disable lines into the location init files?
It shouldn't be too hard to do. :no
 
Thanks a lot. Could you first have a look at that fort fast travel though?
If necessary, somebody else could theoretically do the goto_disable lines, (I'll do it in a while if nobody else does),
but that fort fast travel problem seems too complicated for me. I tried to fix it, but failed. :(
 
I don't know if that's the reason but i discovered that if i outcomment this section of code in PlayerFastTravel function (reload_tables.c file) :

Code:
	if (HasSubStr(finishLocName, "fakefort")) {
locatorName = "reloadc3";
if (finishLocName == "Cayman_fakefort1" || finishLocName == "Guadeloupe_fakefort1" || finishLocName == "Port_au_Prince_fakefort1" || finishLocName == "Philipsburg_fakefort1")
locatorName = "reloadc2";
if (finishLocName == "Santo_Domingo_fakefort1")
locatorName = "reloadc1";
DoReloadCharacterToLocation(finishLocName, "reload", locatorName);
return;
}
I don't know what is the function of this section of code but after it is outcommented, the fast travel to port au prince fort seems to rework properly. It was more particulary the DoReloadCharacterToLocation call which was causing the bug. I didn't test the other buggy forts because i don't know which forts it were but i guess it were perhaps guadeloupe, cayman, philipsburg and santo domingo, no ?
 
You can find a list of the erroneous forts here: http://forum.piratesahoy.net//index.php?/topic/13394-stuck-in-fort-screen/page__view__findpost__p__323129
Maybe we should indeed just remove that section of code;
it doesn't really matter if you end up at the wrong locator, does it?
 
The good locator is the reloadc3 for port au prince, not reloadc2 which is the locator of the jungle entrance

In hispaniola init file :
Code:
// ccc may07 Location Remodeling Campaign -->
// additional gate to fort
Locations[n].reload.l31.name = "reload8";
Locations[n].reload.l31.go = "Port_au_Prince_fakefort1";
Locations[n].reload.l31.emerge = "reloadc3";
Locations[n].reload.l31.autoreload = "0";
Locations[n].reload.l31.label = "Fort.";
// <--  ccc may07 Location Remodeling Campaign

Plus, if you only outcomment the DoReloadCharacterToLocation line, the fast travel is restored and you arrived at reloadc3 locator so the section of code which change the locator name in the playerfasttravel seems to have no effect :?
 
I discovered that if you outcomment the section of code, the fast travel rework for the buggy forts but do not work anymore for some others (ex : cayman and marigot).
In facts, it seems the solution was simpler than some silly things i wrote previously. We don't need to outcomment the code section of the PlayerFastTravel function. It seems the bug was just because a return; call was missing after the DoReloadCharacterToLocation which is above the section of code :

Code:
	if(checkLocation!=Locations[startLocIdx].id)
{
reloadName = GetFastReloadName(Locations[startLocIdx].id,checkLocation);
if(reloadName=="") {
Log_SetStringToLog(XI_ConvertString("There is no way there now"));
return;
} else {
DoReloadCharacterToLocation(checkLocation,"reload",reloadName);
return; // Screwface : fix for fast travel to fort bug
}
}

// KK -->
if (HasSubStr(finishLocName, "fakefort")) {
locatorName = "reloadc3";
if (finishLocName == "Cayman_fakefort1" || finishLocName == "Guadeloupe_fakefort1" || finishLocName == "Port_au_Prince_fakefort1" || finishLocName == "Philipsburg_fakefort1")
locatorName = "reloadc2";
if (finishLocName == "Santo_Domingo_fakefort1")
locatorName = "reloadc1";
DoReloadCharacterToLocation(finishLocName, "reload", locatorName);
return;
}
// <-- KK
Without this return call, it seems that in some case (port au prince) the DoReloadCharacterToLocation was called 2 times so it causes the multiple reload bug :shrug
With this simple line, the fast travel seems to rework fine ! I tested it with port au prince, santo domingo, cayman, marigot and philipsburg and it works !
 
The "Explorers" mod is by Screwface is finished and will be included in Alpha 9.5 Patch 4.
It'll just be quite hard in some towns to find the locations you're looking for,
since neither the signs nor the citizens are of any help there. :facepalm

Also some islands, most notably Aruba and Curacao are quite confusing when
you're trying to find ports and shores without Sail-To, because you don't SEE any ports or shores.
 
Back
Top