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.
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
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.
sorry, my mistake. I was using your 2016 Program folder because in 2021 updates I have some wrong battleinterface icons, but you already mentioned that they changed something. In your 2016 build the icons are proper, but I will get back to that. The blood is working nicely, thank you very much Jeffrey, it makes the game look completely different.
Comparing the 2021 fixes with your first 2016 build, filesync shows me that there are 795 files that are different. Somewhere in those files I guess there are fixes for the bugs that appear now with this 2021 build:
spyglass still not working
wrong icons in battle interface menu
incomaptible savegame everytime I save a game (that used to work)
when firing cannons, only certain cannons show smoke particle
some ship and character icons and desriptions missing when choosing ships/characters in Free Play game.
enemy ships surrender too easily (I don't know if this is a bug or made with purpose like that on original NH, but it sucks)
SHIP's LOG menu is not working when in F2 menu
EQUIP button is missing in Inventory menu (used to work in 2016 build)
storms have flat waves while in original NH they look pretty scary :)
If you could point me which files to look at, I could try to fix those. Thank you very much for all you are doing, I'm trying to make it as playable as possible, so you can post the new update here on itch.io
P.S. for storms I know that I need to fix the sea harmonics in Daystorm.c so I will fix that by myself, because it's same as with GoF mod.
Also, how to get rid of this ugly ===start_storyline.c===, it now seems to appear everywhere, in 2016 build it didn't...
I do not have an incompatible save problem. I start a default Tales of a Seahawk, save, load, no problem.
At this link, https://mega.nz/folder/DtcEmR6C#pjia47ERTPh1EoLClQMfOg
NH2021FullProgramSet.zip contains the full Program files.
NH2021Changes20210630.zip contains just the files I changed today.
For the spyglass, I spent a couple hours. What I did, was to search the COAS/GOF full code set for objISpyGlass. Then I compared the files from COAS to NH in the same files the search found. Then in cases like the telescope.c file, I had to judiciously create similar code, but with the different New Horizons function to determine if the main character had a spyglass. I think sea.c, interface.c and AICameras.c. I don't know if it works yet, since my starting character does not even have a telescope, but it's more closely matching now, using the "ispyglass" object type now, instead of "telescope". The engine still has the "telescope" object, so theoretically if the CreateEntity for that was put back into New Horizons, it might actually work, but it's never been tested in the new engine because it was derived 2.8 and the "telescope" object, though it still existed in the code, was never part of the COAS, GOF, ERAS mods I was using, so had no way to check it.
As for Battle Interface textures/icons, when I first did New Horizons, I spent days remapping the icon placement, but in many places, having never played New Horizons, I just guessed at the proper icon. What I had to do, was open up the texture file in the viewer app, then count the icon index number and replace it with a new number everywhere the .pic value is set in the scripts. But in order to figure the correct texture file, I had to review the CommandTextures.list, note the .t number, then note the .texNum for that corresponding index to the .tga file, then count across (they start at index zero), and put that number. The reason for that is that apparently the old engine counted differently, because the .ysize also needed to be doubled for the CommandTextures; it must have assumed all the texture files rows were supposed to be doubled, and it would automatically figure the .selPic value for when it shows the alternate "highlighted" selection as you scroll across the commands with your arrow keys. Now you have to specify the actual rows, and also add an explicit .selPic to get them correct and they are not really the same numbers as before. Then you have to search the entire script code base for all ".pic" and determine whether they need changing too, and add a .selPic. This took me a long time to do the first time, I probably got some of them wrong last time too.
But now, if they are wrong (I copied from the 2016 New Horizons) they might have changed the texture layout for that new Triton or ???. I refuse to go back through that effort.
Why? Because I spent about a month getting New Horizons working last time. You could launch it, start a game, play most things, save, etc. It worked, but I left the weather problems and the other playability issues for someone else to finish off; they had a working product. I don't know what to look for in the storylines, quests, playability because I have literally never played New Horizons. Pedrwth at PA! decided to do so, but he abandoned it. I think also Pillat briefly did so, but then abandoned it. So why would I even consider spending the time to figure all this out? They are not interested because apparently they now want the other TEHO open-source engine to get up to speed with this instead. I don't know why and I don't care. Regardless, I spent some time with this today, but it's not really worth my effort anymore. With what I just gave you, I can start a Seahawk, land on shore, save and load. I'm done.
I don't know why some cannons produce smoke and others do not...probably because the particles specified in the scripts are using the old particle names that don't exist as .xps format. That needs to be searched for in the scripts and either change the names to a compatible .xps that does exist, or make a new .xps (which I don't know how to do), or you can enable the .xml particle feature I made where at least the values are in a text format someone can edit and make new ones. I don't know what all the values do, but they can be experimented with, which Pedrwyth was going to do, but didn't.
Ship and character icons are similar to the battle interface texture thing.
The Select Storyline screen either needs the corresponding .ini file changed, where all the GUI elements are sized, font style/size specified, or possibly if dynamically set in the corresponding script INTERFACE\*.c file, sometimes the font size is specified there. I did notice that the font sizes in the older engine were handled differently, and many of them needed to be reduced. I'm not going to search all the script code and .ini files to adjust those.
FYI, the new sea values are in sea2 attributes, and 95% of the old .sea attributes are not even used in the 2.8 engine; an example is the "harmonics" they do nothing. The 2.8 engine code had nothing about those, so I don't even know what they used to do, but they are a prime example of something that is irrelevant now. To change the sea, you would need to compare to COAS or similar to figure out what to do.
I really appreciate what you did already. Sorry for the trouble and for taking your time. I will try to figure else alone with my modest knowledge. Regarding PA! team, I tried to convince them to use Maelstrom and to port the whole mod to this awesome engine, but they seem to be interested in the newest engine that is being developed by a group of developers from Sea Dogs: TEHO team. It might be a good thing for Sea Dogs game, but not for New Horizons, because it might take a couple of years to make it happen. With Maelstrom, it just needs fixing minor bugs and adaptations. But I think I'm alone on this one since Pillat isn't answering my messages and he hasn't been online for quite a while. To be honest, I got bored playing GoF mods and even Eras too, because COAS based games are not so dynamic, all the same quests, predictive dialogs etc. New Horizons is really good, but needs newer engine to make it's full potential. I don't know whether MK is making any progress in brining new contents to Eras, haven't seen any news on the Reef.
Thanks for the help!
I reverted the LAi_fightparams.c and LAi_events.c to the 2018 version because I realized that with 2021 files blocking with sword didn't have any effect, enemies were doing damage to me like I wasn't blocking at all, so it would've been pointless and too difficult. I also changed the step_sand sound in RESOURCES because it sounded so bad that I couldn't stand it.
https://mega.nz/file/paRgXTKS#BjDwpxFopxEH7nedgjLregJg5I5AcbPwRlNqlNw486U