Releases: dungeons-of-moria/umoria
Releases · dungeons-of-moria/umoria
Umoria 5.7.5
Notable changes
- CLI: Added a parameter to provide a custom game seed value, using
-s
. - CLI: Display high scores flag now changed to
-d
, because of the game seed. - CLI: Remove
-o
and just use the one arg (-r
) for specifying (forcing)
the use of roguelike keys (hjkl
). - Renamed the data/help files. E.g.
owizcmds.hlp
>help.txt
. - Support only save/score files for Umoria
5.2.2
up to5.7.x
.
Bug Fixes
TV_NEVER
was an unsigned int, but should be signed as it's being given
a-1
value. 8c3d1d2- The
monsterTakeHit()
check is now correct inspellLightLineTouchesMonster()
.
b26547d - When player was in Run/Find mode, the
find_count
was not being
dereferenced, soplayerEndRunning()
would not be called correctly.
95dc308
Code
- Add an optimized "release" build, with an
-O2
optimization flag. - Setting version number in version.h now updates data files automatically, via CMake.
- Release date in
data/versions.txt
is now set automatically via CMake. - Rename field names for all structs in
types.h
. - Rename many constants for better clarity on their purpose.
- Move the game options globals into a Config_t struct.
- Refactor
main.cpp
to contain [mostly] just CLI arg parsing, and some
basic game initialization. All other game logic moved tomoria.cpp
. - Lots of clang-tidy based refactoring.
Umoria 5.7.4
Bug Fixes
- Create Food spell was creating random items instead of just food.
Code
The main focus of this release was to rename all functions, function variables, and global variables. The old naming did not reveal their purpose very well, which made understanding the code more difficult.
These are not meant to be final names, they have been chosen to aid future refactoring tasks.
Additionally:
- The
variable.cpp
file was renamed toglobals.cpp
. - Many defines (mainly in
constant.h
) changed to aconstexpr
.
Umoria 5.7.3
The main focus of this release was to refactor the source code, applying the Extract Method refactoring pattern, along with fixing a couple of small bugs.
I've also added to the documentation with a better contributing guide, as well a proper Code of Conduct.
Bug Fixes
- Various repeat commands (e.g tunnelling) were broken in the 5.7.1 release.
- Remove
curs_set(0)
as a visible cursor is needed in menus!
Code
- Extract Method refactoring.
- Refactor
if/else
statements:- Add guard clauses / early returns where possible.
- Remove
else
when anif
returns. - Makes many easier to understand (e.g. less indentation).
- Refactor
do/while
statements, to be justwhile
statements where possible. - Remove unneeded braces for
if
statement expressions. - Rename many variables to make their function more obvious (still lots more to do in this area).
- Lots of general small refactoring.
Umoria 5.7.1
NOTE: this version has a small bug in some repeat commands (e.g. tunnelling). It is recommended you download v5.7.0
, or v5.7.3
and greater, when released.
- Lots of spelling fixes, mostly source code comments, but a few in-game also.
- Improved CLI: adds help and version information (
-h
and-v
). - Updates to the manual, FAQ, and historical/errors documents.
- Build using C++ compiler, with all warnings fixed! (
-Wall
,-Wextra
,-Werror
,-Wshadow
) - Now uses CMake for Mac/Linux build - Windows/MinGW still uses a normal Makefile.
Umoria 5.7.0 Restoration Release
Notable changes
- Windows, macOS and Linux support.
- Renaming binary from
moria
toumoria
, save file togame.sav
,
and scores toscores.dat
. - Use
clang-format
/-tidy
to clean up the code formatting. - Moves all standard library header includes into one file.
- Replaces custom types (e.g.
int8u
,int16u
, etc.) with their equivalent
C standard types. - Introduce the
_Bool
type. - Converts deprecated K&R style function declarations.
- Refactor all comments.
- Reorganise all old document files, create a
historical
directory.
Deprecated
- Remove support for discontinued computers and OS: Atari ST, Amiga, MS DOS,
"Classic" Mac OS (pre OS X), VMS, System III, etc., etc.