Skip to content

Releases: dungeons-of-moria/umoria

Umoria 5.7.5

05 Sep 18:37
Compare
Choose a tag to compare

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 to 5.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 in spellLightLineTouchesMonster().
    b26547d
  • When player was in Run/Find mode, the find_count was not being
    dereferenced, so playerEndRunning() 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 to moria.cpp.
  • Lots of clang-tidy based refactoring.

Umoria 5.7.4

06 Aug 21:29
Compare
Choose a tag to compare

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 to globals.cpp.
  • Many defines (mainly in constant.h) changed to a constexpr.

Umoria 5.7.3

21 Jun 22:04
Compare
Choose a tag to compare

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 an if returns.
    • Makes many easier to understand (e.g. less indentation).
  • Refactor do/while statements, to be just while 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

27 Jan 20:26
Compare
Choose a tag to compare

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

27 Nov 22:32
Compare
Choose a tag to compare

Notable changes

  • Windows, macOS and Linux support.
  • Renaming binary from moria to umoria, save file to game.sav,
    and scores to scores.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.