Commit Graph

234 Commits

Author SHA1 Message Date
Henrique Santiago d939ade06d Fix compile issue and miniwindows index 2012-08-03 10:26:04 -03:00
Eduardo Bart 9e917ece88 Fix glitch caused by grounds with speed 1 2012-08-03 04:42:49 -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 614d1544c0 Fix market reload and a crash when exiting 2012-07-31 11:42:26 -03:00
Eduardo Bart fbb3c9933a Fix audio stopping on buffer underruns 2012-07-31 00:12:04 -03:00
niczkx e316c0b5cd Merge both getString functions in binarytree 2012-07-31 02:02:41 -06:00
niczkx 4c369bc823 fix compiling on gcc 4.6 (too early to use 4.7.1...) 2012-07-30 18:52:30 -06:00
Mark Samman 39db801f93 Fixed 9.6 otb loading 2012-07-30 18:38:23 +02: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
niczkx a240429cb8 Fix possible gcc optimizations to binary reading 2012-07-28 02:54:25 -06:00
Eduardo Bart d2b85bdba8 More modules fixes 2012-07-26 19:13:47 -03:00
Eduardo Bart c54cd1fdf1 Use new coding style in game modules
Lots of refactoring and changes
Remove docs folder
2012-07-24 02:30:08 -03:00
Eduardo Bart 1c3e630237 Improve modules and sandbox system 2012-07-23 21:22:38 -03:00
niczkx 3461761739 comment out & remove untested stuff 2012-07-20 21:18:03 +02:00
niczkx 8a49d09b75 stop using pairs instead of index loops, please, it's so much slower 2012-07-20 20:56:08 +02:00
Eduardo Bart a11d6e501e More refactoring and some changes
* Move protocol safeSend() to send()
* Bind some new functions
* Refactor lots of enums
2012-07-20 02:52:57 -03:00
niczkx f74b013da2 ignore this 2012-07-19 15:55:10 +02:00
Eduardo Bart f289db3a9e Module sandboxing system
Sandboxing makes module scripts run inside an isolated lua environments,
making more easier and secure to script

Move and rework TextMessage using the new sandbox system
2012-07-19 06:15:23 -03:00
Eduardo Bart eb24d6776e Multi-protocol
Lots of chagnes to add multi protocol flexibility, not really
completed yet, still have to rework text messages opcodes and other stuff,
so this still a working in progress feature

* Rework dat reader, the dat reader can now
* dinamically detect dat version
* Split game into gamelib and game_interface
* Lots of other minor changes
2012-07-17 20:53:19 -03:00
niczkx 02f89dd8be fixes 2012-07-17 16:12:29 -03:00
Eduardo Bart c131d29b5f Fix some issues with the current working directory 2012-07-16 21:30:15 -03:00
Eduardo Bart bc81c9c8bf Packages system with .otpkg files
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).
2012-07-16 16:35:14 -03:00
Eduardo Bart 7a08fed689 Optimize overall memory usage
* Fixes in otbm loader
* Rework BinaryTree
2012-07-15 10:30:39 -03:00
Eduardo Bart 36e5a5a92f Remove if spaces 2012-07-14 14:29:42 -03:00
Eduardo Bart 70115e391d Merge fallen changes 2012-07-14 14:22:18 -03:00
niczkx 992cbf9d1d mapeditor changes 2012-07-14 16:20:38 -07: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
Kamil 8f492f7e06 Fixed bug with adding Vip from console or map, who is already on viplist. 2012-07-12 13:21:51 +02:00
Henrique 9523b5cde5 Changes to last commit. Maybe add FW_LUA, FW_SOUND, etc definitions further 2012-07-12 00:55:18 -03:00
Henrique 962e9c7d16 Allow logger usage on console applications 2012-07-12 00:21:26 -03:00
Eduardo Bart d39ca7de10 Restore periodicalEvent function
* and typo fixes
2012-07-10 14:36:18 -03:00
Eduardo Bart 31612036fb Fix issue #23 2012-07-09 10:30:41 -03:00
otfallen 42971b10f8 backing up at OTBM loading, if someone can continue working on it until I'm available again, I would appreciate it much, here is current progress: http://pastebin.com/qEfC9ftv 2012-07-09 08:46:11 +02:00
Eduardo Bart 1e8491cdcd fix possible compile issue in Os X 2012-07-08 14:05:29 -03:00
Eduardo Bart 472e78d368 Make C++ exception works for lua
* Throw exception when open a file fails
2012-06-25 19:42:38 -03:00
Eduardo Bart 98a1b611bf Refactor for documentation 2012-06-25 19:19:17 -03:00
Eduardo Bart 2c7ae6e521 Now otb reader is properly working 2012-06-24 12:44:33 -03:00
Eduardo Bart e65a8456e9 Add binary tree class for reading otb 2012-06-24 10:06:02 -03:00
Eduardo Bart 79532cd612 Optimize minimap save/load 2012-06-23 18:30:54 -03:00
Eduardo Bart fcd6d3cfe9 Minimap fixes
* Fix infinite loop while loading minimap
* Fix errors in FileStream class
* Remake OTCM map format
* Fixes in UIMap
2012-06-23 12:03:28 -03:00
Eduardo Bart 4515e360e4 A lot of cmake changes, fix compile on win32 2012-06-22 16:04:03 -03:00
Eduardo Bart 170236f822 add missings files 2012-06-22 02:28:13 -03:00
Eduardo Bart aed779a2c8 doc and luabinder changes 2012-06-22 00:14:13 -03:00
Eduardo Bart c5674d10ba some refactoring 2012-06-21 20:58:18 -03:00
Eduardo Bart 96c363d997 changes for otb compability 2012-06-21 14:54:20 -03:00
Eduardo Bart f3499efe83 Adjust fallen changes
* Restore old map load() used in minimap
* Change tabs to 4 spaces
* Add missing cmake file
2012-06-21 00:05:44 -03:00
otfallen d139c3738b map stuff 2012-06-21 04:31:29 +02: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
Henrique Santiago 4bdcae2f8b improvements to skins 2012-06-19 05:46:49 -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 e698383538 fix addons search path 2012-06-06 19:39:42 -03:00
Eduardo Bart 70ea0361b6 new useful function, cycleEvent 2012-06-06 17:14:53 -03:00
Eduardo Bart 296f2a17c4 many modules fixes 2012-06-03 21:28:19 -03:00
Eduardo Bart 079b7a5c41 allow to change graphics engine in options 2012-06-02 18:41:20 -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 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 fa9c942471 basic protocol 953 support, logging in real tibia! 2012-05-12 01:52:16 -03:00
Eduardo Bart 008fa85635 revert windows and line ending sh*t 2012-04-28 22:07:47 -03:00
Eduardo Bart df0147cf64 remove usage of libpng with custom save_png 2012-04-28 21:16:22 -03:00
Cayan 6ed0e099db Added support for exporting the sprites as PNG files. 2012-04-28 20:47:34 -03:00
Eduardo Bart b75483e9bf fixes
* fix filestream read
* fix transparent minimap
2012-04-27 19:17:51 -03:00
Eduardo Bart 9aa12acc22 performance improvements
* no more freezes because of file IO from hard disk, now we cache sound/spr file buffers
* more opengl painter tweaks
2012-04-24 18:05:46 -03:00
Eduardo Bart 9cf40d7f53 fix repeated texture allocation bug 2012-04-24 13:18:45 -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 c4525059ce implement basic sound engine using OpenAL 2012-04-13 16:54:08 -03:00
Eduardo Bart 4f15da695c optimizations 2012-04-05 16:08:46 -03:00
Eduardo Bart 8450f1f896 add FileStream class
* minimize memory consumption by using FileStream for loading sprites
2012-04-02 12:51:03 -03:00
Eduardo Bart 959d9a87b0 fix focus bug, change battle events 2012-03-29 19:47:12 -03:00
Eduardo Bart 5201071707 fiz rare logging crash 2012-03-28 16:59:51 -03:00
Eduardo Bart a4cef0d390 fix possible mapview crash 2012-03-28 16:09:45 -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 239f58296e restore inventory and healthbar
* make inventory/healthbar work again allowing reload
* changes in top menu toggle buttons
* all modules are now reloadable by default
* fix warning when using fade in
* remove some unused files
2012-03-23 10:48:05 -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 3ad97c9eab crash handler, logger and oengles changes
* save log messages to otclient.txt
* fixes in FrameBuffer and HardwareBuffer to work with OpenGLES
* possibility to get compilation information from lua (compiler version, build date, build revision, build type)
* make crash handler more informatave
* handle assert crash signals (SIGABRT)
2012-03-22 09:57:43 -03:00
Eduardo Bart 57adcb38bd rework windows crash handler
* use -Ofast -fomit-frame-pointer for release
* new windows crash handler that can generate backtraces reports
* fix crash after fatal errors
2012-03-21 12:31:34 -03:00
Eduardo Bart b4261a8c7b bunch of optimizations 2012-03-20 12:17:10 -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 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 e51789378a make hover, dragging, press and mouse release work in a proper way 2012-02-07 17:21: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 1340699b01 implement onMouseDoubleClick event in UIWidget 2012-02-03 03:47:26 -02:00
Eduardo Bart 34f9ecb6c8 fixes in Settings/g_configs 2012-02-01 22:10:55 -02:00
Eduardo Bart 98ef0e4574 allow setting/getting nodes in g_configs 2012-02-01 21:37:40 -02:00
Eduardo Bart 289efe34cf fix tcp congestion 2012-02-01 20:46:31 -02:00
Eduardo Bart 51b0822267 zoom out much more smoother 2012-01-31 15:06:55 -02:00
Eduardo Bart 7d8d214324 simpli map load/save 2012-01-30 01:11:05 -02:00
Eduardo Bart 6ce92a1a64 rework walk 2012-01-19 02:12:53 -02:00