Commit Graph

72 Commits

Author SHA1 Message Date
Henrique Santiago 2142ee765d Fix issue #21, but miniwindows can be a lot smarter 2012-08-21 02:35:20 -03:00
Eduardo Bart 54f4e2b801 Fix console error 2012-08-06 20:54:56 -03:00
Henrique Santiago e6bd3907e1 Background label hide function, Skins fix and combobox hide, messagebox changes, show entergame when reload 2012-08-06 16:15:20 -03:00
Eduardo Bart 3bac3dcbb4 Rework stdext classes
Implement new classes:
* stdext::any => ligher replacement for boost::any
* stdext::packed_any => like any but optimized to use less memory
* stdext::shared_object => ligher replacement for std::shared_ptr
* stdext::shared_object_ptr => replacement for boost::intrusive_ptr
* stdext::fast_storage => for storing dynamic data
* stdext::packed_storage => same but with less memory
* stdext::packed_vector => std::vector with less memory

Compiling should be a little faster now because global boost including
is not needed anymore
2012-08-01 09:23:35 -03:00
Eduardo Bart f4641333f4 Fix a rare drag/drop issue 2012-07-31 06:34:45 -03:00
Eduardo Bart e0431021b5 Huge engine change, replace all std::shared_ptrs
Create a new shared pointer type stdext::shared_object_ptr and stdext::shared_obj
using boost::intrusive_ptr

Advantages:
 * half memory usage
 * faster and lightweight

Disadvantages:
 * using weak_ptr is not supported anymore
 * compiling seems slower
2012-07-29 00:34:40 -03:00
Eduardo Bart 497902736c Enable widget debugging 2012-07-28 08:43:48 -03:00
Eduardo Bart e3298d561c Rework application class and framework
Make otclient's framework flexible enough to run console apps like
servers, so this mean is possible to build otclient versions without
graphical interface and use it's framework to code servers
2012-07-13 22:23:11 -03:00
Eduardo Bart 98a1b611bf Refactor for documentation 2012-06-25 19:19:17 -03:00
Eduardo Bart 8761220deb Refactoring and flexibility changes
* 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
2012-06-19 21:16:52 -03:00
Eduardo Bart cb58d2dcfa Compile fixes for mingw32 2012-06-18 13:05:16 -03:00
Eduardo Bart 1c7bbaea89 Fix memory leaks
* Fix recursive reference memory leak in UIWidget
* Make Event/ScheduledEvent memory-leak safe
* Fix exit crashs by freeing graphics resources before destroying GL context
* Add many asserts to avoid any leak regression
2012-06-18 05:13:52 -03:00
Eduardo Bart 10b33c6124 Compile with clang and add cotire
* Add cotire cmake module to speedup compilation https://github.com/sakra/cotire
* Fix clang error and warnings
* Rename Font to BitmapFont to fix conflict with Xlib.g Font typedef
* Remove legacy PCH support
* Improve Position hash
2012-06-16 20:20:22 -03:00
Eduardo Bart cae4d46a7d implement style priority with # syntax 2012-06-14 21:30:46 -03:00
Eduardo Bart 1a7f2a44fc graphics fixes and improvements 2012-06-08 21:40:41 -03:00
Eduardo Bart 14db1066fc change logger 2012-06-01 17:39:23 -03:00
Eduardo Bart bd2faabe99 graphics optimization feature inspirated by diablo3 engine
* the rendering now consits of two panes
- the background pane (for animated stuff like the map)
- the foreground pane (for steady stuff, like UI)
each pane has it own max FPS and works idependently
this may increase graphics performance on many platforms
2012-06-01 16:39:09 -03:00
Eduardo Bart c01b32b032 rework log function and protocol
* remove some protocol ifdefs, replace with game features system
2012-05-28 19:04:44 -03:00
Eduardo Bart 4c80d783d6 rewrite and reoganize tools functions
* create stdext namespace which contains additional C++ algorithms
* organize stdext in string, math, cast and exception utilities
2012-05-28 10:06:26 -03:00
Eduardo Bart 2478809945 add lua flexibility for protocol
* use shared_ptr for InputMessage and OutputMessage and bind them
* allow sending network messages from lua
* implement extended opcode
* use own OS type  for otclient to allow server side detection
* fixes in input event bot protection
* move RSA to input/output network messages
* allow to capture opcodes before GameProtocol parsing with the event GameProtocol.onOpcode
* fixes in lua std::string pop/push to allow byte buffering
2012-05-14 18:39:31 -03:00
Eduardo Bart d0b839a4eb fix warnings and some reloading issues 2012-04-27 01:54:14 -03:00
Eduardo Bart 959d9a87b0 fix focus bug, change battle events 2012-03-29 19:47:12 -03:00
Eduardo Bart 6ace984440 fix combobox 2012-03-29 17:21:59 -03:00
Eduardo Bart 8d14d9bc99 restore old modules
* partially restore vip, battle, healthbar, skills and inventory modules
* more fixes on UIWidgets
* implement UIMiniWindow close/minimize functionality
* allow drag and drop miniwindows beteween game panels
2012-03-28 11:10:21 -03:00
Eduardo Bart e2ea267703 rework mouse events propagation 2012-03-28 08:46:15 -03:00
Eduardo Bart ee869bb279 side panel splitter 2012-03-26 15:33:00 -03:00
Eduardo Bart 9309d6e7f3 some rework in UIWidget input 2012-03-26 10:34:43 -03:00
Eduardo Bart ccf55132a1 OMG the chat is finally scrolling!
* implement UIScrollArea
* rework console to allow scrolling
* many core ui changes in the way.. so maybe we will have new bugs
* fix in UIScrollBar
2012-03-25 14:10:19 -03:00
Eduardo Bart de0008caf1 ui and graphics changes
* implement draw clipping using opengl stencil buffers
* allow to create Widgets by style name with g_ui.createWidgetByStyle
* styles can now have children widgets
* make proper use of the isNotPathable in pathfinding
* add scrollbar skin
2012-03-24 12:22:40 -03:00
Eduardo Bart efa9811342 dragging fixes 2012-03-23 19:48:18 -03:00
Eduardo Bart 33458a3e39 modules changes
* speedup widget destruction checks
* rework outfit module using grid layout and the new design
* fixes in console, terminal, textmessage modules
2012-03-22 18:47:52 -03:00
Eduardo Bart c0611bfe2a restore some game functionallity
* i'm gradually restoring game functionality with the new modules design, though still a lot to do
* you can reload all scripts and modules using Ctrl+R shortcut while playing (finally! this is the reason of all this rework)
* a bunch of fixes, but new regression too :P
* fix performance issue that could lead freezes in the client in older machines
* completely new game module with new design
* fix crashs in map render
* remove uigame.cpp (now every game input is via lua)
* enable DEBUG macro by default, with it you are able to view any possible lua leak while running
2012-03-18 10:35:45 -03:00
Eduardo Bart b46d4c4d5f non relevant changes 2012-03-16 10:31:21 -03:00
Eduardo Bart e03bf33f58 BEAWARE all game functionality is disabled with this commit for a while
* rework client modules
* hide main window when loading
* remake top menu functions
* rework modules autoload
* improve path resolving for otml and lua
* move core_widgets to core_lib
* fix tooltip issues
* split some styles
* add bit32 lua library
* fix assert issues
* fix compilation on linux 32 systems
* rework gcc compile options
* renable and fix some warnings
* remove unused constants
* speedup sprite cache
* move UIGame to lua (not funcional yet)
* fix a lot of issues in x11 window
* fix crash handler
* add some warnings do uiwidget
and much more...
2012-02-20 00:28:13 -02:00
Eduardo Bart 96358b317d drag fixes 2012-02-09 16:38:50 -02:00
Eduardo Bart c707f990bf fix popupmenu, fix mouserelease events, fix connect 2012-02-09 04:42:07 -02:00
Eduardo Bart e51789378a make hover, dragging, press and mouse release work in a proper way 2012-02-07 17:21:53 -02:00
Eduardo Bart 71c706157a drag fixes 2012-02-07 00:06:48 -02:00
Eduardo Bart 46df3c7dbe some window moving 2012-02-06 22:41:53 -02:00
Eduardo Bart add8505a5b implement auto repeat configuration for key press events, to give more flexibility 2012-02-06 10:53:28 -02:00
Eduardo Bart a55e138002 some cleanup in modules, fixes in tooltip, uiwidget warnings, disable map saving for a while 2012-02-05 20:42:35 -02:00
Eduardo Bart 24aab00431 fix use with, improve move, change icons, improve topbar 2012-01-24 16:39:16 -02:00
Eduardo Bart 452d1a76b0 fix key events for win32 2012-01-17 04:24:58 -02:00
Eduardo Bart 44a20222bb walk and key event system rework with some regressions 2012-01-15 19:19:52 -02:00
Eduardo Bart a1374baee1 major UIWidget rewrite with new features 2012-01-10 20:13:40 -02:00
Eduardo Bart 028441831d save window position and size 2012-01-06 06:49:23 -02:00
Eduardo Bart c9280ecf9d invert widget event propagation order 2012-01-05 00:42:17 -02:00
Eduardo Bart 30ce5e2ba9 reorganize some stuff 2012-01-04 23:28:29 -02:00
Eduardo Bart 7172d2251a display window on screen center 2012-01-02 23:32:34 -02:00
Eduardo Bart 05230f44e4 new lua function for creating widgets: createWidget 2012-01-02 22:42:53 -02:00