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

Fixed Incorrect Officer Types Assigned for Player and Quest Characters

@Levis: For the Beta 4 public release, we may want to slightly reconsider this code:
Code:
  if (!CheckAttribute(GameInterface.strings,"OfficerType"))
   {
     // SUBTITLE: Officer type
     GameInterface.strings.OfficerType = XI_ConvertString(GetAttribute(xi_refCharacter, "quest.officertype"));

     // TITLE: Indicate character type/category
     if (IsMainCharacter(xi_refCharacter))
     {
       GameInterface.strings.fakeTitle  = XI_ConvertString(GetAttribute(xi_refCharacter, "quest.officertype"));
       GameInterface.strings.OfficerType = XI_ConvertString(GetCaptainType(xi_refCharacter)); // PB: Indicate Player Type as subtitle to ensure it ALWAYS displays
     }
Most notably, there is probably very little point in showing the player officer type that is stored at the beginning of the game, then never updated. :facepalm
So let's make it getcaptaintype?
 
So let's make it getcaptaintype?
GameInterface.strings.OfficerType already is.
But for testing purposes, fakeTitle isn't. That one will be overwritten anyway if you get any sort of rank.
There just needs to be a default text of some kind there.

Having the same thing displayed twice seems a bit superfluous to me.
Maybe just make it say "Player" for the fakeTitle? Or display the CharPlayerType selected at game start?
 
GameInterface.strings.OfficerType already is.
But for testing purposes, fakeTitle isn't. That one will be overwritten anyway if you get any sort of rank.
There just needs to be a default text of some kind there.

Having the same thing displayed twice seems a bit superfluous to me.
Maybe just make it say "Player" for the fakeTitle? Or display the CharPlayerType selected at game start?
When you have a rank somewhere it will show that right?
 
I think the starttype would be nice indeed.
So that could be any of the below:
Code:
#define PLAYERTYPE_ADVENTURER  "Adventurer"
#define PLAYERTYPE_AGENT  "Agent"
#define PLAYERTYPE_MILITARY  "Army Veteran"
#define PLAYERTYPE_CORSAIR  "Corsair"
#define PLAYERTYPE_ENGINEER  "Engineer"
#define PLAYERTYPE_EXPLORER  "Explorer"
#define PLAYERTYPE_GAMBLER  "Gambler"
#define PLAYERTYPE_GUNNER  "Gunner"
#define PLAYERTYPE_MARINE  "Marine"
#define PLAYERTYPE_MERCHANT  "Merchant"
#define PLAYERTYPE_NAVALOFFICER  "Naval Officer"
#define PLAYERTYPE_PHYSICIAN  "Physician"
#define PLAYERTYPE_QUARTERMASTER  "Quartermaster"
#define PLAYERTYPE_REBEL  "Rebel"
#define PLAYERTYPE_ROGUE  "Rogue"
#define PLAYERTYPE_SAILOR  "Sailor"
#define PLAYERTYPE_SHIPWRIGHT  "Shipwright"
#define PLAYERTYPE_SMUGGLER  "Smuggler"
#define PLAYERTYPE_SOCIALCLIMBER  "Social Climber"
#define PLAYERTYPE_SWORDMASTER  "Sword Master"
#define PLAYERTYPE_CURSED    "Cursed"
#define PLAYERTYPE_CUSTOM  "Custom"
#define PLAYERTYPE_LAND_OWNER  "Land Owner"
 
Yup, that sounds good right?
Although custom should maybe give something else.
 
Done:
Code:
    // TITLE: Indicate character type/category
     if (IsMainCharacter(xi_refCharacter))
     {
       GameInterface.strings.fakeTitle    = XI_ConvertString(GetPlayerType (xi_refCharacter));   // PB: Player Type can be overridden by titles
       GameInterface.strings.OfficerType   = XI_ConvertString(GetCaptainType(xi_refCharacter));   // PB: Indicate Captain Type as subtitle to ensure it ALWAYS displays
     }
So now the player quest officer type will NEVER be shown ANYWHERE.

@Levis: Can you confirm for certain that also doesn't actually serve any purpose?
Because if it does, then we're hiding something that actually should be changed at certain spots in the game, but currently isn't.
 
Done:
Code:
    // TITLE: Indicate character type/category
     if (IsMainCharacter(xi_refCharacter))
     {
       GameInterface.strings.fakeTitle    = XI_ConvertString(GetPlayerType (xi_refCharacter));   // PB: Player Type can be overridden by titles
       GameInterface.strings.OfficerType   = XI_ConvertString(GetCaptainType(xi_refCharacter));   // PB: Indicate Captain Type as subtitle to ensure it ALWAYS displays
     }
So now the player quest officer type will NEVER be shown ANYWHERE.

@Levis: Can you confirm for certain that also doesn't actually serve any purpose?
Because if it does, then we're hiding something that actually should be changed at certain spots in the game, but currently isn't.
Confirmed
 
Back
Top