Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
This release includes everything I was expecting to be included in an "enhanced" version.
This change is as previous last changes deeper under the hood but less visible excluding few bug fixes (lightning bolt will not crash and vampire lord should revive properly).
As changes under the hood are concerned:
- most inheritance is done properly according to OOP principles, and it prefers composition over inheritance. In English what it means, is that in most cases, the data structures are defined to be defined as a combination of multiple data fields, instead of being defined as a category of categories. This change makes compilers to give both less warnings and make easier to understand most of sections of code related with iteration of items and such. The most important is breaking the relation of "Army" and "Monster", as "an army was a monster" instead of an army being defined as a monster. This made some code to be really almost impossible to debug related with damage, as the developer (aka me) had to look life and damage if it is multiplied or not with the number of units and similar.
- there were hundred of changes so that FreeHeroes 2 Enhanced compiles in C++ 14 and C++ 17 mode, especially as C++ 17 doesn't allow
std::bindconstruct. In plain text it means that if in future (or in present) you want to compile to a newer compiler, let's say Visual Studio 2017 and you want to improve it by adding some C++ 17 specific functionality in your fork, now you can do it, as you can compile it
- many changes were done to expose as possible (still there are thousands of places that this can be improved) to not use "int" or similar non-descriptive type, when code had the specific labeling.
Important note: FreeHeroes2 Enhanced did break file save functionality compared with FreeHeroes 2 "original" and it does not want to keep a binary compatible at major versions. FH2Enh as FH2 does not load original save files from the original GoG Heroes 2 game, but both versions will load maps and original assets.
This release added FH2Launcher and speeds up the Save/Load logic everywhere.
Please see the intro of feature set here:
(I've said that the new binary is 2KB less on Windows, it is 10 KB less on Windows. For Mono on OS X/Linux, I am not sure if it was clearly heard: install also with Mono the WinForms package).
Many small fixes, especially on installer and avoiding leaks on FHeroes2
Added preload logic which should improve overall gameplay as it should avoid many "micro-stutters" at the cost of few tens of MB of memory used.
This approach would not work on Pentium 1 era computers, but today computers have many GB of memory.
This release comes with an included a Windows installer (it is written in C#, and it can be extended to run on Mono to install on all other platforms).
See what is in this release:
This release is simply the adding packs for users which want to try do make sense with multiple archives.
This release fixes few issues found, it is built with VS 2017 Release configuration (so it is faster) and in fact it is even tuned to be a bit faster around drawing maps and locating sprites.
The biggest visual change is that it supports a semi-transparent info dialog and cursor.
See it how it looks & feels at Youtube: