Commit Graph

335 Commits

Author SHA1 Message Date
Eduardo Bart f4641333f4 Fix a rare drag/drop issue 2012-07-31 06:34:45 -03:00
niczkx 4c369bc823 fix compiling on gcc 4.6 (too early to use 4.7.1...) 2012-07-30 18:52:30 -06:00
Eduardo Bart 03b8241bbc Rename stdext::shared_object_ptr to compile in gcc 4.6 2012-07-30 12:08:21 -03:00
Eduardo Bart 59b6abfa09 Implement message modes for 9.6
Fix possible crash when closing otclient
Fix private messages
Fix messages in 9.6
2012-07-30 09:33:52 -03:00
Eduardo Bart 73769c62e4 Just some refactoring 2012-07-29 07:32:54 -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 c795eb91ab More multiprotocol support 2012-07-26 03:10:28 -03:00
Eduardo Bart 1c3e630237 Improve modules and sandbox system 2012-07-23 21:22:38 -03:00
Eduardo Bart 98c4240446 Changes for the mapeditor 2012-07-15 03:17:31 -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 c0c2411854 Improve minimap 2012-07-12 16:16:23 -03:00
kilouco aaf3351e87 Fixed so Shift-Tab functionality works properly. 2012-07-10 23:18:33 -03:00
Henrique Santiago 6a85c31a77 Some particle stuff, far from done 2012-07-06 02:01:13 -03:00
Eduardo Bart 98a1b611bf Refactor for documentation 2012-06-25 19:19:17 -03:00
Eduardo Bart aed779a2c8 doc and luabinder changes 2012-06-22 00:14:13 -03:00
Henrique Santiago a7c17cec2e Save miniwindows states 2012-06-21 16:31:36 -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 ad04043a88 Lua binder compability changes
* A lot of changes in lua binder to compile with clang's libc++
* Add more portability to luabinder
* Remove const keyword from bound lua functions
* Deprecate std::bind usage with luabinder replace its usage with registerSingletonClass/bindSingletonFunction for binding singleton classes
* Fix a bug in lua binder where calling functions with bil object would make the client crash
* More fixes to compile with clang
2012-06-17 12:21:46 -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 8cef6463b3 improve miniwindow moving 2012-06-11 11:10:03 -03:00
Eduardo Bart 1a7f2a44fc graphics fixes and improvements 2012-06-08 21:40:41 -03:00
Henrique Santiago 3f95d62467 fix draw square 2012-06-03 17:35:07 -03:00
Eduardo Bart e4cb9b27db fix crash in grid layout 2012-06-03 16:42:22 -03:00
Eduardo Bart 257f652bb7 more opengl graphics fixes 2012-06-02 15:58:30 -03:00
Eduardo Bart 1c5b906b5b some optimizations 2012-06-02 11:43:27 -03:00
Eduardo Bart 59a80ffaf9 scroll when focusing widgets 2012-06-01 21:38:26 -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 44cf5e20d3 begin some documentation in styles 2012-05-02 15:31:07 -03:00
Eduardo Bart 788a831f24 bug report module
* change modules authors and website
* avoid anchors recursivity crash
* update README
2012-05-01 10:06:38 -03:00
Eduardo Bart 2f0a151fed questlog module complete 2012-04-30 23:00:07 -03:00
Eduardo Bart 00740b56f3 begin playertrade, questlog and textbooks modules 2012-04-30 21:20:27 -03:00
Eduardo Bart beaba25af1 UI tweaks 2012-04-30 16:30:37 -03:00
Eduardo Bart 3f689e0edf optimize UIWidget for largers NPC trades 2012-04-30 03:34:29 -03:00
Eduardo Bart d0b839a4eb fix warnings and some reloading issues 2012-04-27 01:54:14 -03:00
Eduardo Bart fae2cc6481 new scripting functionality
* dofiles functions to run all scripts inside a directory
* new style option ! that evaluates its value from a lua code
2012-04-26 12:11:03 -03:00
Eduardo Bart 58d76e255d begin implementing OpenGL 1.0 engine
* option to pass -opengl1 or -opengl2 as argument
* note that with this commit there are a lot of graphics regressions and the master will remaing unstable for a while
* shaders disabled for a while
2012-04-18 20:03:43 -03:00
Eduardo Bart 1d2f6c7e9f enable text-auto-resize for width 2012-04-10 23:59:05 -03:00
Eduardo Bart 48d2027327 use counter for disabling layout updates 2012-04-09 18:44:33 -03:00
Eduardo Bart 5425d344ba optimize widget destruction 2012-04-09 17:53:45 -03:00
Eduardo Bart 2017fb366e some optimizations 2012-04-09 09:36:40 -03:00
Henrique Santiago 2f3c83e858 textedit maxlength, fix charlist status height 2012-04-08 19:10:07 -03:00
Eduardo Bart 92bd1aba54 optimize graphics performance 2012-04-08 16:31:36 -03:00
Eduardo Bart 2e43a77d64 change mouse press behaviour 2012-04-07 00:37:29 -03:00
Eduardo Bart 218f2e4994 add API to remove widget anchors 2012-04-05 19:46:53 -03:00
Eduardo Bart 4f15da695c optimizations 2012-04-05 16:08:46 -03:00
Eduardo Bart 16acfebe3b move clipping to painter 2012-04-04 19:46:49 -03:00
Eduardo Bart 53d56259c7 fix compile error no ARM platforms
* and some improvements
2012-04-04 16:02:43 -03:00
Eduardo Bart d4afb71263 clean containers when relogging 2012-04-03 11:15:11 -03:00
Eduardo Bart 90d3acce2a restore containers
* implemente Container class
* restore module containers
* add lua bindings for std::map
* improve grid layout
* fixes in UIItem rendering
* changes in miniwindow design
2012-04-02 20:09:47 -03:00
Eduardo Bart 7e6fe71b5e new build types
* and remove uneeded files
2012-04-02 09:49:43 -03:00
Eduardo Bart 0ddaa234af rework on UILineEdit
* allow multiline text editing
* rename UILineEdit to UITextEdit
2012-03-31 10:43:01 -03:00
Eduardo Bart c13a5b5dab fix crash and focus bug 2012-03-30 04:40:13 -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 8ea154016b fix and changes
* win32 compilation fix
* add buttons to miniwindow
* dispatcher events fixes
* ui fixes
2012-03-27 15:14:40 -03:00
Eduardo Bart 060c1cf8e7 ui changes
* create UIResizeBorder
* restore miniwindow
* scroll fixes
2012-03-26 19:24:01 -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 532e8e3e39 chat line wrapping
* rework UIWidget text wrapping
* implement auto wrap
* fixes in console
2012-03-25 19:14:09 -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 179e53bb77 scrollbar, options and widgets changes
* complete scrollbar skin
* implement scrollbar functionality (scrolling with mouse)
* fix onMouseClick issues
* add tabs in options (graphics and general tab)
* add new option for limiting frame rate using scrollbar
* add new widget property "clipping" that will be used on scrollable areas
2012-03-25 11:10:15 -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 b301aa1a2b rework splitter implementation 2012-03-23 00:06:00 -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 159eb98df2 introduce startup options
* startup options with -help and -version
* many startup options for graphics
2012-03-22 13:10:12 -03:00
Eduardo Bart c7469e4454 graphics fixes
* zooming without real FBOs kinda works, but with lower quality
* hardware detection for glGenerateMipmaps
* possibility to disable bilinear filtering, mipmaps, framebuffers, and realtime mipmap generation in g_graphics
* otclient works well using 3D acceleration in VirtualBox again
* many fixes regarding FBOs fallback implementation
2012-03-21 09:41:43 -03:00
Eduardo Bart 5c35938a92 many graphics performance tweaks
* use hardware vertex buffers (video memory)
* cache text drawing with vertex buffers instead of framebuffers
* avoid recalculating texture transformation matrix
2012-03-20 16:10:04 -03:00
Eduardo Bart b4261a8c7b bunch of optimizations 2012-03-20 12:17:10 -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 a24212d4de back to otclient dev, with new background!
* show otclient version in background
* disable about module (don't really need it)
* new function for formating strings like sprintf, Fw::formatString
* new nice background (taken from RPG maker XV)
* update contact information in README
* fix text rendering issues with opacity
2012-03-16 10:31:21 -03:00
Eduardo Bart b46d4c4d5f non relevant changes 2012-03-16 10:31:21 -03:00
Eduardo Bart 27b83fa722 some optimizations and compilation changes
* speedup render of widget images on low end devices using mipmaps
* changes in CMakeLists.txt to allow usage of distcc and crosscompiling
2012-02-20 11:10:54 -02: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 d4ce3c5354 fix issue on onMouseRelease 2012-02-08 18:46:25 -02:00
Eduardo Bart f056131ae1 fix possible crash when reading border style, fix onLogin event 2012-02-08 11:44:06 -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 e2203799dc clean table fields on widget destruction 2012-02-07 04:33:20 -02:00
Eduardo Bart 37f3f904c7 some fixes in MainWindow move 2012-02-07 02:55:20 -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 88301c329a a lot of changes in modules 2012-02-06 17:19:47 -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 64c9e4f1d5 add modulemanager module 2012-02-05 23:44:47 -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 cc081d8151 update TODO, rename onMouseDoubleClick to onDoubleClick 2012-02-04 15:04:44 -02:00
Henrique Santiago d931b03fed spinbox improvements 2012-02-03 09:59:55 -02:00
Eduardo Bart 1340699b01 implement onMouseDoubleClick event in UIWidget 2012-02-03 03:47:26 -02:00