Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Sorry for bombarding you with so many messages, but I was trying to fix all by myself. I got the game to run with 2021 build, but isn't this weird, I was trying to fix the bugs in the PROGRAM folder. when I accidentally saw the log in compiler:

ini file RESOURCE\INI\RESOURCE\INI\NEW_INTERFACES\mainmenu.ini not found!

DestroyWindow

PostDWindow

System exit and cleanup:

Mem state: User memory: 0  MSSystem: 0  Blocks: 0

I made the folders RESOURCE\INI\RESOURCE\INI\NEW_INTERFACES\mainmenu and the game got to main menu screen. Isn't that weird. Why is it needing double folders?

Because in the New Horizons Maximus_Functions.c, the void ReinitInterface sets the .IniFile path like this:

Interfaces[INTERFACE_SELECT_STORYLINE].IniFile = "RESOURCE\INI\"+GetCurrentInterfacePath()+"\select_storyline.ini";

But Maelstrom already knows for any Interfaces object, the .Inifile path will always be the default RESOURCE path (specified in start.ini), so it is redundant.  If you compare the 2016 version of that same file/function, all the "RESOURCE\INI\" portions were removed for Maelstrom.  Keep in mind, that is not the only place in the scripts where this type of problem will occur, so you need to search all the file contents for similar issues.

I still suggest going through a 2018 (the working copy I gave just recently) and the 2021 version, and comparing all the different files.

Using FreeFileSync, not counting the new files that would be added, there are 951 files that are different:


Then you have to go through every one of them, compare them, and modify what is different in the 2018 working version, that is specific to making it work with Maelstrom.  Here is that MAXIMUS comparison:

Some things are because they were Storm 2.8 fixes, like replacing all ResetSoundScheme(); calls in every file except sound.c, with ResetSound();

There are lots of things, but the only way to find them all is compare those 900+ files to be sure you get them all.  Then in the case of things like the ResetSoundScheme thing, is to do a global search of all the files, because some files are newly added and there is no comparison to do, and if they contain things that we know need to change, you have to search for them.

Ok, will do that now. 

Ok, so I updated to the latest build from May 2021. I spent last 2 days fixing all the script errors. I think I fixed them all, except the one in utils.c:

RUNTIME ERROR - file: utils.c; line: 2091

function 'GetStoryline' stack error

RUNTIME ERROR - file: utils.c; line: 2091

function 'GetStoryline' stack error

RUNTIME ERROR - file: utils.c; line: 2091

function 'GetStoryline' stack error

I just don't get it why GetStoryline is bad code, when it appears in different files as well.

Here's the updated Resource and Program folder:

https://mega.nz/file/1GoEiL5D#GAKiPDQFsoPzNFgXly6o-mBPcrCV7lkVDEWE_3l4qcc

https://mega.nz/file/oSgwiBwC#O5qG-vBnGNxrjHoGWQdV6pzXEOE1WJgukj70un8lqDY

It's because they screwed up in INTERFACE\select_storyline.c:

CharFirstName = GetStoryline(slno, CharFirstName);
CharMiddleName = GetStoryline(slno, CharMiddleName);
CharLastName = GetStoryline(slno, CharLastName);

Should be:

CharFirstName = GetStorylineVar(slno, CharFirstName);
CharMiddleName = GetStorylineVar(slno, CharMiddleName);
CharLastName = GetStorylineVar(slno, CharLastName);

The New Horizons modders wrote the functions GetStoryLine or GetStoryLineVar; they are not a part of COAS, GOF or ERAS.  So I really don't want to spend my time debugging and troubleshooting errors they have made.  I will sometimes help add or extend features for Maelstrom to work with it, like I did for the Flag and multiple display Log messages it uses...things like that.

Anyway, since it appears you did a fair amount of work already, I did sift through a few other files and this launches and I can start a new, default game:

https://mega.nz/folder/DtcEmR6C#pjia47ERTPh1EoLClQMfOg

Download FixesNH2021.zip

Also note that they did appear to add another command in BattleInterface.c and they may have changed/added the texture icons, but I am not going to adjust anything for that.  So if icons have shifted index in the texture file, someone will have to readjust all the .pic and .selPic values.  I made a note that the Triton needs to be checked  //Boyer note:  Need to check .picNum in texture and also add .selPicNum

I think that new NH modders are not very good at coding, so I won't be upgrading the mod anymore. I will focus now on fixing any bugs/conflicts that may occur due to the Engine upgrade. I will test the fixes that you provided now, and if I need any help with repositioning those buttons/icons, I hope I can count on your help :)

Everything seems to be working, except that I cannot hit with the sword. Firing pistol works with Q button, but clicking does nothing when I draw a sword... 

Because events were missing in Loc_ai\LAi_fightparams.c.  If you compare the current 2016 version  from Itch to the 2021 version, you will see a bunch of code for event_handlers added, even with a comment "//Boyer add below" which is my last name.

I made the change for you and uploaded to that same MEGA link, just the LAi_fightparams.c file by itself.

....please don't tell me I have to review all the 2021 files...I did the most obvious ones I could think of, but I really don't want to do them all.

No, no.  i will review them. But  good for letting me know about Boyer, I wasn't sure where that came from lol 

Is it possible to add blood particles to New Horizons now that it's running Maelstrom engine, like in COAS? If possible, I just need steps which files need to be added?

Need the blood.tga.tx texture file and send an "AddBlood" message in LAi_utils.c.  See https://mega.nz/folder/DtcEmR6C#pjia47ERTPh1EoLClQMfOg

NH2021Blood.zip

Hmm, I get this error log when applying blood update: (the game starts but can't load any storyline)

RUNTIME ERROR - file: worldmap\worldmap.c; line: 287

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

null ap

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 862

Uninitialized aref

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

null ap

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 862

Uninitialized aref

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

null ap

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 862

Uninitialized aref

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 841

Invalid function argument

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

Using reference variable without initializing

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 861

null ap

RUNTIME ERROR - file: battle_interface\landinterface.c; line: 862

Uninitialized aref

(1 edit)

That makes no sense that it is from that update, there are only two files in there, one is a texture file, the other is just the LAi_utils.c file, which only added the LaunchBlood fuction in the apply character damage and has nothing to do with worldmap or landinterface.  Are you sure you added the correct thing?

I also do not get any error when I start a new game after adding that change.