This repository has been archived by the owner on Jan 13, 2023. It is now read-only.
Releases: incomingstick/OpenRPG
Releases · incomingstick/OpenRPG
v0.5.2
Added
- Added a openrpg.json file to our
data/
folder allowing us to better tell when we have found our data folder - Created cpp files for expanding platform dependent code and build them into the core library. If platform dependent code is needed, the module will need to compile against the Core library
- NOTE: This may end up as it's own platform library if it starts to get large
Fixed
- Added more check locations to both
export.js
as well as theLOCATE_DATA()
function in the Utils module. The lack of these locations was causing OpenRPG to be unable to locate ourdata/
- There is a bug in GCC-8 (used to compiled the prebuilts with TravisCI) that does not link to libraries correctly on Linux systems when using C++17, this has been resolved here by switching GCC-8 to GCC-9 on TravisCI.
- A typo causing the
include/core/platform/unix.h
header to never be used - A bug in the Core libarary that was causing a crash on Windows and an infinite loop on Linux machines
v0.5.1
Added
- After installing you can now run
man openrpg
for Unix style Man Pages thanks to @var-username - Calling
npm install
on this package will attemmpt to download the prebuild binaries from the matching github release putting it indist/
(ifdist/
already exists, it is cleared).build.js
attempts to determine the correct node or electron version to download, and if one cannot be found we fall back to the core libaries. Ifbuild.js
is still unable to locate the files, or the sha512 checksum fails, nothing is downloaded.
Changed
- Moved the ASSET_LOC from a preprocessor definition to a Core module function that searches multiple locations until it finds our data directory, throwing an error if no data can be found
- Core now takes advantage of the STL C++17 Filesystem library to locate our data folder using an array of paths
- Updated README.md with NodeJS info and updates to the build scripts, as well as some reorganization of pertinent information.
- Check and specify system architecture in build.bat
v0.5.0
There is likely a TON that has changed that is not noted below. This release is a HUGE one, so we likely missed something. If you notice something is missing, please open a PR to fix it (with commit citations please)!
Added
- We are now on the Arch User Repository and supporting Arch as our first Linux distro, as it is what I (@incomingstick) use!
- You can use the PKGBUILD branch of this Repo to build from
makepkg
that way - Clone us out of the AUR yourself by running
git clone https://aur.archlinux.org/openrpg-git.git && cd openrpg-git && makepkg -si
- You can use your favorite AUR helper, such as
yay
- Run
$ yay -S openrpg
- Run
- You can use the PKGBUILD branch of this Repo to build from
- We have improved our CMake logic to include the use of CPack for packaging, for all supported OS's! Check out our downloads page for your systems installer!
- Build scripts now include a package target for packaging with CPack
- NodeJS and
npm
integrated into the project workflow. You can now usenpm
and subsequentlycmake-js
to compile an additionalorpgAddon.node
binary that is a compiled Node module.- This NodeJS addon aims to be a complete wrap of the C++ libraries. As such, most functions and classes should operate as you would expect the C++ counterpart.
- Expose the
VERSION
preprocessor definition via theORPG_VERSION()
function
- An ASCII character sheet in
data/
thanks to @var-username- data/character_sheets/ascii_char_sheet
- "data/character_sheets/Blank ASCII Character Sheet.txt"
- Added build info for Windows and improved the Unix documentation
- Added an uninstall target to CMake and Make, allowing for the use of
make uninstall
to... uninstall- cmake_uninstall.cmake.in
- build.sh has a ton of new commands, including an uninstall command
$ ./build.sh uninstall
- This Changelog! You are likely looking at CHANGELOG.md
- The OGL is now in our main LICENSE, in addition to the OSL, to hopefully cover our bases with that stuff... hopefully we don't accidentally use copyright WotC stuff, or anyones stuff for that matter
- We now generate export headers via CMake for the Windows DLLs to ensure proper linking
- Some suggested vim settings, if thats your editor of choice
- TravisCI Windows builds! We are now testing Windows via TravisCI, as well as AppVeyor
- OSC XCode8 tests on TravisCI!
- Lots of namespacing to help prevent name collision when our project is used, the structure is as follows:
ORPG
ORPG::Core
ORPG::Utils
ORPG::Roll
ORPG::Names
ORPG::Character
NameGenerator
class now has a constructor that takes a file location as astd::string
, here are some important notes:- By creating this constructor we are allowing an end user to specify the location the namelist we will read from. It is extremely important we explore any possible security implications of this further. I @incomingstick) do think it could prove a beneficial feature to allow end users to specify namelists.
- I, @incomingstick, created this function specifically to help the test suite. When testing on a fresh system, we are built before we test, but the release builds defines ASSET_LOC as: "/usr/local/data/openrpg" Because of this, it attempts to check a folder that has not been installed yet, and we need a way to point NameGenerator to our source data folder.
- Character module now takes full advantage of our Names library to allow for the use of first and last names
- Added the Elf race to the Characters library
class Elf : public Character
class HighElf : public Elf
CharacterFactory
class has a new constructor that takes a name as astd::string
- Character library has a new class,
Skill
that helps represent the 5e Skill in a better way, and makes use of the newEnumSkill
enum to pair score to human readable tags thanks to @var-username ExpressionParser
now handles the modulo operation!
Changed
- Building Libraries as Dynamic instead of Static, because why wouldn't a game want Dynamic/Shared libraries!
- Split .github/ISSUE_TEMPLATE.md into two files:
- .github/FEATURE_REQUEST.md
- .github/BUG_REPORT.md
- Renamed
int random(...)
toint randomInt(...)
in the Utils namespace thanks to @var-username - Fixed some install locations to better form to different platforms
- build.bat now has actual commands such as
> .\build.bat clean
, or> .\build.bat rebuild
as well as better error reporting - Make sure we don't accidentally add some packaged/compressed files to the repo, cuz that would be obnoxious
- Lots of "auto-fication" across the project, as well as other C++11 improvements
- Lots of restructuring within the files themeselves to help keep things better organized
- Lots of additional documention comments throughout the project for you other devs out there
levels[]
is now an externally definded global variable renamed toEXP[]
in theinclude/character/character.h
header, so you must link to the Character library to use is- The
Skills
struct is now a class that acts as a wrapper of sorts for theSkill
class and theEnumSkill
enum thanks to @var-username Character
class now uses theSkills
class internally and has a new function to interface with it viavoid update_skills()
thanks to @var-username- Some header guards improved to better show their purpose in the project file system
Fixed
- Typo in the Warforged namelist that gave "Zealot" a period (was "Zealot.")
- Consistant URL usage for openrpg.io
- Better CMake output to help you developers understand whats going where / when.
- When installed on some systems, the creation of a data folder could potentially cause VSCode to fail to open
- Linking issues when running
make check
could cause some tests to fail, on some systems - Issue when running
make check
on a release build, that caused the tests to be unable to locate the data assets - A bug that would cause some divide by zero operations, as well as preventing the rolling of a 1 sided die thanks to @tehguy
- A typo in the roll parser test that was incorrectly validating d6's thanks to @pashcovich
- Missing note in Core::print_basic_help() about how to exit OpenRPG.
- Fixed a bug in the ExpressionTree where the
globalReadOffset
was not being reset when a new expression was set - Fixed a bug when stringing multiple rolls together that would causing the tree to parse an expression such as 2d6+4d8 as (2d6+4)d8
- Honestly there are a TON of bug fixes with the roll parser now that we are using the Mocha test suite
- Fixed a bug in NameGenerator that wasn't resetting the raceFile when a new race was set
- Fixed version sheild in CHANGELOG.md (it still had the '-dev'affix)
Removed
- Obliterated the old Name Generator test src/tests/name-generator-test.cpp
v0.4.0-dev
Merge branch 'patch-v0.4.0-dev'
v0.3.0-dev
Merge branch 'patch-v0.3.0-dev'
v0.2.0-dev
updated README.md
v0.1.0-dev
Merge branch 'patch-v0.1.0-dev'
v0.0.3-dev
Merge branch 'patch-v0.0.3-dev'
Merge pull request #3 from incomingstick/patch-v0.0.2-dev
Patch v0.0.2-dev