Umoria Versions Save

Moria: a roguelike Dungeon Crawler game | Umoria Source Code

v5.7.5

6 years ago

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

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.

v5.7.4

6 years ago

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.

v5.7.3

6 years ago

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.

v5.7.1

7 years ago

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.

v5.7.0

7 years ago

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.