Moria: a roguelike Dungeon Crawler game | Umoria Source Code
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.
getAndCastMagicSpell()
: losing mana when cancelling a mage spell.pray()
: should loose mana when failing to recite a prayer.Press ? for help
to the message bar on game start/load.row
,col
) and Monster (y
,x
) now use Coord_t
for their positions.Coord_t
in all functions that used y, x
coordinates.inventory
onto Player_t
treasure_list
and current_treasure_id
onto Game_t
rcmove
variable in memoryUpdateRecall()
signature is now an uint32_t
like everywhere else.store_buy
function signature type to use uint8_t
, and return a bool
.item_sub_catory
, current_askin_price
.clang-format
and clang-tidy
updates.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.ui_inventory.cpp
functions to avoid name clashes (bugfix).int16
types.CMakeLists.txt
updates:
configure_file
to set variables in splash.txt
and versions.txt
.make install
.AUTHORS
: add more known features from -JWT-
.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.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.config.h
to namespace'd constants - perhaps not a good approach but let's see!versions.txt
.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: ccfa74783ad67eb3276ff3eca0f2509599012d33Continuing 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.misc
and moria
files no longer exist!sets.cpp
functions elsewhere, allowing for most to become static
.externs.h
is now empty, so deleted!const
in various places.Coord_t
in Dungeon related functions.[Press any key to continue.]
to [ press any key to continue ]
, and any variations, as it looks clearer.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.
Player_t
struct.Dungeon_t
and put all dungeon related globals here.Dice_t
instead of using an array.char *
with std::string
.death_tomb.txt
, death_royal.txt
files).lit
status values), as a previous
refactoring broke loading of pre-5.7 saves. https://github.com/dungeons-of-moria/umoria/commit/219f350
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.
Coord_t
instead of y
/x
values in various coordinated related functions.