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

Need Help TEHO Character Selection

luftwaffle

Landlubber
Hello all - longtime lurker, first time poster. Used to browse the site back when POTC was our only real English option from Akella.

I'm playing Sea Dogs: To Each His Own now and while I love almost every aspect, I absolutely hate the lack of character selection. Gentlemen of Fortune for COAS added several options, and even COAS had three starters to choose from. I've dug around HeroDescribe.txt, selectCharacter.ini, selectCharacter.c, RPGUtilitie.c and so far have only managed to re-enable the character selection arrow. Sadly the arrows don't actually trigger an action to select another profile.

I've browsed the Russian forums and compared resource files from COAS - nada. Best I can tell is there's some new configuration to TEHO referencing YY (seems to be the "main character") but searching doesn't pull anything up. Even downloaded the English 1.5.1 program folder and explored there.

Has anyone managed to enable character selection or otherwise play as another person? I know the game is a little more strict in terms of narrative, but even so it should be doable to force a "free mode" or sorts pulling resources from another character texture and models.

I did manage to toggle cheats back on but that's about it.
 
Unfortunately not much can be done in the way of modding currently as the devs have encrypted the files needed to do so. Some limited mods are around on these forums and are very useful, but nothing to the extent of mods for the other games in the series. The devs have said they will open the game to modding when they are done releasing all of their planned DLC for the game. Who knows when that will be?
 
The way I understand it, the next DLC will finish Charles' story, and the next two will be an English and a Spanish character. I don't know what is planned after that, if anything.

While there is plenty of code in the PROGRAM file you downloaded that references the other characters, any attempt to activate them is pretty much certain to break the game. We'll get them soon enough.

It may be possible to change the character model of the main character, but that's not something I know how to do. You'll still have all the same story lines.

If you check the new game creation screen, while you only have the one character, he has three possible types or personalities, each with a different weapons specialty and various skills and benefits. Much of the difference has been documented in various posts on Steam, or you can simply try them all out.

If you haven't checked out Hook's Mod (see the thread in this forum) it gives you a lot of options for experimentation with the console.c file. Be sure to read the readme in that thread before doing anything.

Hook
 
The devs have said they will open the game to modding when they are done releasing all of their planned DLC for the game. Who knows when that will be?

As far as i know, they only said that they are thinking about it but not that they will do it for shure. Till now they were only asking the community about their wishes and votes but didn´t make a final decision. Some days ago i was asking them about their final decision without response till now.

The way I understand it, the next DLC will finish Charles' story, and the next two will be an English and a Spanish character. I don't know what is planned after that, if anything.

Me too.
 
Thanks for the input - glad I wasn't the only one wracking my head over it.

Hook - you mentioned the "next" DLC. I'm guessing the 'Final Lesson' wasn't the last one? Which makes sense, because in one of the lines of code there's a DLC check around the select character menu. Would support the theory that more characters will be enabled in the future. Hopefully.

Thought about changing the model directly, but found a similar issue - simply changing the HeroDescribe.txt parameters didn't work as expected (at all). When I replaced the and renamed the textures it wound up generating the game from the old COAS starting point - which completely baffled me - along with some graphical errors. I mentioned the YY value above for this - that has something to do with the main character (Charles) as best I can tell, but I'm drawing blanks on clues to follow. Did see SCGB(?) appeared to denote officers.
 
For reference, this was the best location I could find for toggling selection. From selectCharacter.c:

Code:
if(heroQty == 1)
    {
        SetNodeUsing("LEFTCHANGE_CHARACTER",  false);
        SetNodeUsing("RIGHTCHANGE_CHARACTER", false);
    }
    
    if (!CheckAttribute(&NullCharacter, "HeroParam.HeroType") || !CheckAttribute(&NullCharacter, "HeroParam.nation"))
    {   // иначе уже загружен и выбран ГГ, смотрим настройки и идем обратно
        SetVariable(true);
    }
    else
    {
        SetVariable(false);
    }
    TmpI_ShowLevelComplexity();
    SetByDefault();

The initial if statement seems to correspond to the default value in herodescribe, likely other locations, the best I can tell. Further down in the same file you can see the input actions are still defined, likely left over from COAS:

Code:
void ProcessCommandExecuteLeft()
{
    if (startHeroType > 1)
    {
       startHeroType--;
    }
    else
    {
       startHeroType = heroQty;
    }
    SetVariable(true);
}

void ProcessCommandExecuteRight()
{
    if (startHeroType < heroQty)
    {
       startHeroType++;
    }
    else
    {
       startHeroType = 1;
    }
    SetVariable(true);
}

Granted, in TEHO the charType value is now for the fencer, gunner, etc, instead of adventurer, corsair, etc. I'll try to dig up that specific check statement that seemed to associate DLC with characters. Might just be story NPCs. Either way it's the end of work day I need to get going.
 
Found it! Also realize I've just posted three times in a row, but did want to share this in case it helps or if anyone else wants to toy around with this puzzle. I find it fun anyway.

Moving on, the code I'm referencing is in the RPGUtilite.c file, towards the bottom starting at or around line 3198. The file can be found in the 'PROGRAM\characters' directory. Excerpt pasted below:

Code:
void CCS_SetNewMainCharacter(ref ch, int num)
{
    if(num < 1) num = 1;
    switch (num)
    {
        case 1: //Шарль де Мор
            ch.FaceId                 = 201;
            ch.HeroModel             = "Sharle_1,Sharle_2,Sharle_3,Sharle_4,Sharle_5,protocusto,Sharle_6,Sharle_8";
            ch.name                 = "Charles";
            ch.lastname                = "de Maure";
            ch.nameGen                = "Charles";
            ch.lastnameGen            = "de Maure";
            ch.nameDat                = "Charles";
            ch.lastnameDat            = "de Maure";
            ch.sex                    = "man";
            ch.model.animation         = "man_A";
            ch.HeroParam.HeroType     = "HeroType_1";
            ch.nation                = FRANCE;
            ch.BaseNation            = FRANCE;
            ch.info                    = "AThe son of a French noble, an idler, a painter, and a lady killer - he has come to the Caribbean in order to find his lost brother. " +
                                      "This is the place where he is going to find himself, face lies and dangers, seek after knowledge and love. In the end, he will have to get rid of any obstacles to reach the ultimate goal. " + NewStr() +
                                      "Morals, society, titles and privileges do not mean much to Charles. He knows the price of man's vice, he never experience the bitter taste of defeat or a fight to the death. And how could he possibly gain such experience in the bright and gorgeous salons of Paris?" +
                                      "Charles was wise enough to understand that his home education couldn't prepare him for real life, so he was taking extra classes." + NewStr() +
                                      "What activities did he find most interesting and promising? ";
                                     
        break;
        case 2: // Диего  де Монтойя
            return;          
/*          
            ch.FaceId                 = 203;
            ch.HeroModel             = "Diego_1,Diego_1,Diego_1,Diego_1,Diego_1,protocusto,Diego_6";
            ch.name                 = "Диего";
            ch.lastname                = "де Монтойя";
            ch.nameGen                = "Диего";
            ch.lastnameGen            = "де Монтойя";
            ch.nameDat                = "Диего";
            ch.lastnameDat            = "де Монтойя";
            ch.sex                    = "man";
            ch.model.animation         = "man_A";
            ch.HeroParam.HeroType     = "HeroType_1";
            ch.nation                = SPAIN;
            ch.BaseNation            = SPAIN;
            ch.info                    = "Здесь будет описание Главного Героя Диего де Монтойя.";                                  
*/          
        break;      
        case 3: // Паттерсон
            return;
/*          
            ch.FaceId                 = 202;
            ch.HeroModel             = "Willy_1,Willy_1,Willy_1,Willy_1,Willy_1,protocusto,Willy_6";
            ch.name                 = "Вильям";
            ch.lastname                = "Патерсон";
            ch.nameGen                = "Вильяма";
            ch.lastnameGen            = "Патерсона";
            ch.nameDat                = "Вильяму";
            ch.lastnameDat            = "Патерсону";
            ch.sex                    = "man";
            ch.model.animation         = "man_A";
            ch.HeroParam.HeroType     = "HeroType_3";
            ch.nation                = ENGLAND;
            ch.BaseNation            = ENGLAND;
            ch.info                 = "Благородные намерения этого молодого дворянина о честной торговле на благо нации и собственного кошелька разбились о реалии жестокой действительности." +
                                      " Пришлось обзаводиться каперским патентом и прокладывать себе путь к благосостоянию пушками и клинком, забыв о чванливых манерах Старого Света...";
*/                                    
        break;
    }

I noted while in-game at the character select there was a misspelling of Charle's bio - the extra 'A' in front of the first word. At the top of the above code you can see that extra letter. Further down you should see two other characters, currently disabled, but with mostly complete details or each. My theory is the main characters/playable characters changed between COAS and TEHO, possibly why herodescribe.txt no longer works. As a disclaimer know that sentence is greatly oversimplified and I admit to not being an expert on Akella's engine - I simply enjoy tinkering.

I'm going to do some more testing on my own machine and see what I can come up with. It's a slow work day so this is my project for right now.
 
Found it! Also realize I've just posted three times in a row, but did want to share this in case it helps or if anyone else wants to toy around with this puzzle. I find it fun anyway.

Moving on, the code I'm referencing is in the RPGUtilite.c file, towards the bottom starting at or around line 3198. The file can be found in the 'PROGRAM\characters' directory. Excerpt pasted below:

Code:
void CCS_SetNewMainCharacter(ref ch, int num)
{
    if(num < 1) num = 1;
    switch (num)
    {
        case 1: //Шарль де Мор
            ch.FaceId                 = 201;
            ch.HeroModel             = "Sharle_1,Sharle_2,Sharle_3,Sharle_4,Sharle_5,protocusto,Sharle_6,Sharle_8";
            ch.name                 = "Charles";
            ch.lastname                = "de Maure";
            ch.nameGen                = "Charles";
            ch.lastnameGen            = "de Maure";
            ch.nameDat                = "Charles";
            ch.lastnameDat            = "de Maure";
            ch.sex                    = "man";
            ch.model.animation         = "man_A";
            ch.HeroParam.HeroType     = "HeroType_1";
            ch.nation                = FRANCE;
            ch.BaseNation            = FRANCE;
            ch.info                    = "AThe son of a French noble, an idler, a painter, and a lady killer - he has come to the Caribbean in order to find his lost brother. " +
                                      "This is the place where he is going to find himself, face lies and dangers, seek after knowledge and love. In the end, he will have to get rid of any obstacles to reach the ultimate goal. " + NewStr() +
                                      "Morals, society, titles and privileges do not mean much to Charles. He knows the price of man's vice, he never experience the bitter taste of defeat or a fight to the death. And how could he possibly gain such experience in the bright and gorgeous salons of Paris?" +
                                      "Charles was wise enough to understand that his home education couldn't prepare him for real life, so he was taking extra classes." + NewStr() +
                                      "What activities did he find most interesting and promising? ";
                                    
        break;
        case 2: // Диего  де Монтойя
            return;         
/*         
            ch.FaceId                 = 203;
            ch.HeroModel             = "Diego_1,Diego_1,Diego_1,Diego_1,Diego_1,protocusto,Diego_6";
            ch.name                 = "Диего";
            ch.lastname                = "де Монтойя";
            ch.nameGen                = "Диего";
            ch.lastnameGen            = "де Монтойя";
            ch.nameDat                = "Диего";
            ch.lastnameDat            = "де Монтойя";
            ch.sex                    = "man";
            ch.model.animation         = "man_A";
            ch.HeroParam.HeroType     = "HeroType_1";
            ch.nation                = SPAIN;
            ch.BaseNation            = SPAIN;
            ch.info                    = "Здесь будет описание Главного Героя Диего де Монтойя.";                                 
*/         
        break;     
        case 3: // Паттерсон
            return;
/*         
            ch.FaceId                 = 202;
            ch.HeroModel             = "Willy_1,Willy_1,Willy_1,Willy_1,Willy_1,protocusto,Willy_6";
            ch.name                 = "Вильям";
            ch.lastname                = "Патерсон";
            ch.nameGen                = "Вильяма";
            ch.lastnameGen            = "Патерсона";
            ch.nameDat                = "Вильяму";
            ch.lastnameDat            = "Патерсону";
            ch.sex                    = "man";
            ch.model.animation         = "man_A";
            ch.HeroParam.HeroType     = "HeroType_3";
            ch.nation                = ENGLAND;
            ch.BaseNation            = ENGLAND;
            ch.info                 = "Благородные намерения этого молодого дворянина о честной торговле на благо нации и собственного кошелька разбились о реалии жестокой действительности." +
                                      " Пришлось обзаводиться каперским патентом и прокладывать себе путь к благосостоянию пушками и клинком, забыв о чванливых манерах Старого Света...";
*/                                   
        break;
    }

I noted while in-game at the character select there was a misspelling of Charle's bio - the extra 'A' in front of the first word. At the top of the above code you can see that extra letter. Further down you should see two other characters, currently disabled, but with mostly complete details or each. My theory is the main characters/playable characters changed between COAS and TEHO, possibly why herodescribe.txt no longer works. As a disclaimer know that sentence is greatly oversimplified and I admit to not being an expert on Akella's engine - I simply enjoy tinkering.

I'm going to do some more testing on my own machine and see what I can come up with. It's a slow work day so this is my project for right now.
were you ever able to find out how to change character models?
 
Back
Top