Skip to content

0.90.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@crankycyclops crankycyclops released this 01 Feb 06:05
· 73 commits to master since this release
95717f5

Added

  • Added room connection descriptions (Connection descriptions feature #72 ), a more flexible way to generate room descriptions that can be updated dynamically when those connections change. This new feature shouldn't have any impact on older projects.
  • Wrote two new Lua methods, Being:insertIntoInventory() and Being:removeFromInventory() to replace functionality previously served by the now removed method Thing:setLocation.
  • Implemented Lua function Resource.new() to create new Resources from within Lua
  • Implemented Lua methods Game::getEntity(), Game:start(), Game:stop(), and Game::inProgress()
  • Added LuaState::getLuaVersion(), which returns the version of Lua the core library was built against
  • Added LuaEntity::err() to allow writing to an Entity's error stream
  • Started writing unit tests for the LuaState class
  • Unit tests are now built and run against Lua 5.1, 5.2, and 5.3
  • Trogdord can now listen on IPv6 as well as IPv4, and can also be configured to listen for requests only from certain IP addresses

Changed

  • Reimplemented the items in a Being's inventory using std::weak_ptr. Any code that calls Being::getInventoryObjects() or Being::getInventoryObjectsByName() will have to be adjusted to take this change into account.
  • Game::removeEntity() now enforces a more complete set of rules and no longer returns a boolean value (instead, it throws an exception if anything goes wrong.)
  • Object::setOwner() is now protected and an Object can only be inserted into a Being's inventory by calling Being::insertIntoInventory().
  • Thing::setLocation() is now protected and a Thing can only be inserted into a Place by calling Place::insertThing().
  • Removed Lua method Thing:setLocation().
  • Many formerly private members and methods in trogdor::LuaState are now protected to make unit testing easier

Fixed

  • It turns out that the Tangible and Resource types weren't being registered with Lua. This was uncovered by my new unit tests and has been fixed.
  • Fixed a bug that affected the way the Lua Resource type was registered
  • Did some minor refactoring and code cleanup