* Added a new module for exiting the client (client_exit).
* Added tab spacing to the UITabBar class.
* Added tab popup menus for things like channel tabs.
* Impelemented channel tab popup menus (still need to be finished).
* Fixed UITabBar tab draging (will now change after dragged half way over the
next tab, not 2 pixels).
* Fixes to the client_options module.
* Edited some UI settings.
* Changed game_cooldown and game_spelllist menu button icons.
* Fixed some typos.
* Updated the walking(mouse/keys) control to be a lot more responsive/smooth!
* Updated creature diagonal steps to animate faster (due to demand).
* Added a warning popup for boost walker option in cipsoft servers.
* Added KeyUp event controls in the g_keyboard class.
* Fixed an issue with the minimap not reconfiguring.
* Fixed a bug with creature lights drawing properly.
* Fixed refreshContainer method.
* Some layout edits.
* Some minor typo fixes.
TODO:
* Add walk event stack.
* Test new walking edits extensively.
* Finish pending state feature.
* Fixed the game_viplist module to work with the latest vip protocols.
* Fixed a referencing error in the game_cooldown module
* Started editing the design of the popupmenu (needs more work).
Added key 'moveable' to tabbars
(tabbars are ordered with margins now, not with anchors to the previous
widget)
If stretching is forbidden by options the mapPanel will now update when
the window is resized
* Implement walk booster (dash) as an option in settings menu
* Dash is smarter (can pre-animate)
* Implement smart walking (walk in diagonal when holding two arrow keys)
* Implement ping meter for all protocols
* Ping meter uses uses real ping packet for 9.6 and walk for others
* Added UICreatureButton class for handling/replacing "battle buttons" (can now be used in other modules).
* Added the ability to use items on creatures via the battle window.
* Some minor cosmetics.
* Tables can now have headers (the layouts will require some more work before read to be used formally).
* Finished Market offers display, Item details display, and Item statistics display.
* Added getSelectedWidget to UIRadioGroup class.
Market TODO:
* Create buy/sell offer.
* Purchase sale offer or accept purchase offer.
* More item filtering features (weapons, types, depot only, vocation, etc).
* Item searching feature.
* View your offers (history/current).
* UI touch ups and optimizations.
* Started building the market UI.
* More work on the market functionality.
* Fixes to the market protocol. (Known issue: if I use safeSend method from Market (like so: MarketProtocol.send~) is thinks it is a bot).
* Fixes to the market offer class.
* Outfit window will no longer display the mount box if you are using protocol < 870.
* Added getFeature to playermount module.
* Added isMarketable and getMarketData to the lua binding.
* Added lua casts for MarketData.
* Fixed typo in the module manager.
* Added new 'light flat panel' for more variation (can change later) will require some graphics for market.
* Added new functions to table lib.
* Fixed some styling issues from previous commits.
When otclient initializes it tries to find all .otpkg files inside the
current search paths (./ ./modules ./addons) and then add them
to the front of current search paths. This way .otpkg can contains
many modules/addons and modifications in a single file that otclient
can recognize.
otpkg files can be compressed files supported by PhysFS, which
are ZIP (.zip) and LZMA (.7z).
* Added new arrow buttons.
* Fixed the vertical separator.
* Added new game_playermount module to handle player mounting.
* Moved the battle icons to /images.
* Outfit window accommodates for mounts, loads addons more efficiently and keeps addons set on update, added new Outfit.randomize function that allows you to randomize your outfit colors, and set up a new layout.
* Split game module into game and game_interface
* Move core_lib to corelib
* Move miniwindow to corelib
* Introduce init.lua script for initializing the client, giving much more flexibility
* OTClient is no longer Application derived and is much simpler