Umoria Versions Save

Moria: a roguelike Dungeon Crawler game | Umoria Source Code

v5.7.15

2 years ago

Software license fix. Umoria 5.6 was released under a GPL-3.0-or-later license but I had accidentally changed the license to GPL-2.0 in a commit from the very early days of the project: https://github.com/dungeons-of-moria/umoria/commit/df109c5f55f6792dfd79055524728206f3a05247

The license has been corrected to be GPL-3.0-or-later.

Other Changes

  • Refactor keyboard input code.
  • Refactor ui_inventory.

v5.7.14

3 years ago
  • Revert to Moria keys as default.
  • Minor configuration update to support compiling on Visual Studio 2019.
  • Bug Fix: Calculate throw distance/position correctly. Introduced with commit #fc1d6d.
  • Bug Fix: Correctly stack inventory items (arrows/bolts). Introduced with commit #195c9a6.

v5.7.13

3 years ago
  • Bugfix in getAndCastMagicSpell(): losing mana when cancelling a mage spell.
  • Minor change to the splash screen.

v5.7.12

3 years ago
  • Bugfix in pray(): should loose mana when failing to recite a prayer.
  • Add Press ? for help to the message bar on game start/load.
  • Use roguelike keys by default, and remove setting option from the CLI.
  • Player (row,col) and Monster (y,x) now use Coord_t for their positions.
  • Use Coord_t in all functions that used y, x coordinates.
  • Reorganise some game arrays and variables, placing them on an object:
    • put inventory onto Player_t
    • put treasure_list and current_treasure_id onto Game_t
  • Type changes:
    • rcmove variable in memoryUpdateRecall() signature is now an uint32_t like everywhere else.
    • Change store_buy function signature type to use uint8_t, and return a bool.
    • Various other types changes.
  • Typo fixes: item_sub_catory, current_askin_price.
  • Various clang-format and clang-tidy updates.
  • Move the Manual and FAQ to the historical directory and remove from release. It seems that these are very much out of date - possibly for any 5.x version - so it makes sense to move them back in with the rest of the historical documents.
  • Various compiler fixes.

v5.7.11

4 years ago
  • Rename several ui_inventory.cpp functions to avoid name clashes (bugfix).
  • Player ToHit/Armor/Damage Adjustment functions now return int16 types.
  • Minor style changes.
  • Various CMakeLists.txt updates:
    • Allow out-of-source builds.
    • Use configure_file to set variables in splash.txt and versions.txt.
    • Remove unneeded make install.
    • Fix for finding ncurses on Linux/macOS.
    • GCC 8 support.
  • Update AUTHORS: add more known features from -JWT-.

v5.7.10

6 years ago

Bug Fixes

  • xor_byte decryption was not being performed correctly while reading score.dat files. Introduced with commit: 676cdfed6c274279fa889c079e84788adc954cac (readHighScore() function). Note: game.sav files were not affected by this bug.

Code

  • Delete constant.h, moving many constants into config.h and the rest into their related headers. Things are looking pretty ugly at the moment but perhaps it's a better starting point for further refactoring.
  • Change config.h to namespace'd constants - perhaps not a good approach but let's see!

v5.7.9

6 years ago
  • Add AUTHORS file containing all known author information. This removes contributors section from versions.txt.

Bug Fixes

  • Kill experience points now calculated correctly. When extracting a method the wrong int type was used when calculating the creature.kill_exp_value * creature.level. This bug was introduced in Umoria 5.7.3 with the commit: ccfa74783ad67eb3276ff3eca0f2509599012d33

Code

Continuing the process of moving related functions to the same file, plus other changes. Highlights:

  • types.h now has just the two core vtype_t and obj_desc_t types.
  • The numbered misc and moria files no longer exist!
  • Moved sets.cpp functions elsewhere, allowing for most to become static.
  • externs.h is now empty, so deleted!
  • Add consistent const in various places.
  • Use more Coord_t in Dungeon related functions.

v5.7.8

6 years ago
  • Improve Wizard Mode help files.
  • Easier item creation in Wizard Mode (inspired by Bmoria).
  • Change [Press any key to continue.] to [ press any key to continue ], and any variations, as it looks clearer.

Code

There are two main areas of focus for this release. The first was to create more objects to move the numerous global variables on to. E.g. Dungeon_t.

The second area of focus has been to start grouping related functions and variables in the same file. Ex. most player functions are moved to player.cpp, or a new player_xxx.cpp file has been created (run, stats, tunnel, etc.). The LOS and look functions are located in los.cpp.

Grouping globals and functions together like this should make their usage and their relationships more obvious.

These locations are by no means final, but are a useful first pass.

  • Grouping related functions together in the same file.
  • Move more Player globals to the Player_t struct.
  • Create a Dungeon_t and put all dungeon related globals here.
  • Create a Dice_t instead of using an array.
  • Started replacing char * with std::string.
  • Simpler display of death screens (using death_tomb.txt, death_royal.txt files).

v5.7.7

6 years ago

Bug Fixes

v5.7.6

6 years ago

Bug Fixes

Code

A big focus of this release was to make the code safer by using references instead of pointers. I made a good start, but there's still a way to go.

  • Pass by Value and Pass by Reference major refactoring.
  • Replace "magic numbers" with an enum, e.g. spells for mage/priest, wands, and staffs.
  • Use Coord_t instead of y/x values in various coordinated related functions.