Commit Graph

1733 Commits

Author SHA1 Message Date
Ahmed Samy ab21558c47 Do not test for TILESTATE_NONE
This flag is ALWAYS set, cause it's always 0 i put there by mistake.
It causes an issue by simplying drawing everything dark, cause of
the opacity...
2013-12-27 05:10:00 +02:00
Sam 17c4d59b15 Enabling versions 7.8 to 8.0 2013-12-26 23:20:34 +01:00
Sam da959aca28 Support for protocol 7.7/7.72 / Tiny fix 2013-12-26 21:31:55 +01:00
Ahmed Samy 6745bff132 Introduce g_resources.getDirectoryFiles
This can recursively find files in a directory that's not in physfs search
path, this is needed for mapeditor needs, esp the file browser.

We do not want to limit users to the application run directory
so we have to use this.

This function uses boost filesystem.
Prototype:
	g_resources.getDirectoryFiles(directory STRING, filenameOnly BOOL,
	recursive BOOL)

filenameOnly is there if we want to just get the filenames in the
directory.
recursive if we want to loop directories in the directory.
2013-12-25 21:32:49 +02:00
Sam 27db78567b Fix writables in 7.6, fixes #416 2013-12-25 15:11:12 +01:00
Sam 9d8cf33acc Fix 7.60 login protocol 2013-12-23 23:45:49 +01:00
LordHepipud aa84ee4362 Fix 7.70 RSA / XTEA encryption
RSA / XTEA encryption was implemented with Client 7.70

~~~~Lord Hepipud~~~~
2013-12-23 23:31:59 +01:00
Henrique Santiago 1e17919a26 Use of createTable on containers 2013-12-22 17:36:43 -02:00
Ahmed Samy df3546b073 lua: now we have a function to static allocate an array
lua_newtable() definition:
	#define lua_newtable(L) 	lua_createtable(L, 0, 0)

This simply allocates space for 0 fields, meaning, if we push any
values into this array, it will re-allocate the array, which is bad.

This function statically allocates an array, so it's ready to have
X fields into it.

Performance tests:

lua_newtable
1428161
1426992
1413513

lua_createtable
2004544
1974117
1957533

These tests were done on an AMD 8350fx CPU, single thread used.

narr: This is for fields that just have an index, e.g. arr[0] etc.
nrec: For fields which needs like arr.a, arr.b etc.

This is how many times each of the functions can run per second, as
you can see about 1.7x the calls to lua_newtable.

All credits goes to @dalkon, he was too lazy to do it by himself, and
asked me to do it for him.
2013-12-21 16:13:24 +02:00
Ahmed Samy 24e26e190b Also unbind g_minimap.updateTile 2013-12-18 04:40:53 +02:00
Ahmed Samy ad7cda534d Fix minimap tile update for item removal 2013-12-18 04:40:52 +02:00
Sam 863bece70b VC12 fixes by @dalkon 2013-12-15 19:09:03 +01:00
Ahmed Samy 22f97aa00b More binds to lua 2013-12-15 04:59:45 +02:00
Ahmed Samy e32607b05c Tiny fixes 2013-12-15 04:33:43 +02:00
Ahmed Samy 1790eee1c6 Add selection to tile 2013-12-14 23:06:52 +02:00
Ahmed Samy ec2518525a Add more tile flags to be checked for 2013-12-14 19:44:54 +02:00
Ahmed Samy eb4fb4ff41 Animations are now optional
The default behaviour is still there though.
2013-12-14 18:48:18 +02:00
Ahmed Samy 4f997a3826 Only request tile cache to be updated once for both x & y 2013-12-12 16:24:50 +02:00
Ahmed Samy c54015a60d Fixup movePixels a little bit
Thanks to @dalkon for dis.
2013-12-12 16:21:22 +02:00
Ahmed Samy 57c432d3ea Increase maximum move offset to be 64 instead of 32 2013-12-12 03:23:13 +02:00
Ahmed Samy bd8c883e13 Take out debug message 2013-12-12 02:53:57 +02:00
Ahmed Samy b5c3b37b3c Tiny fix for movePixels 2013-12-12 02:46:20 +02:00
Ahmed Samy ece6507df2 Bind g_minimap.updateTile to lua
This is needed to update tile removals from minimap widget.
2013-12-11 19:08:12 +02:00
Ahmed Samy 04515ffbb8 Fix map move pixels function
Thanks to @dalkon for this.
2013-12-11 18:36:31 +02:00
Ahmed Samy ed24a0735a Bind {un,}lockVisibleFloor to lua 2013-12-09 20:15:39 +02:00
Ahmed Samy 2498129ff3 mapio: don't add saved with line in description 2013-12-07 02:52:51 +02:00
Ahmed Samy 066638e7c0 mapio: don't add description twice 2013-12-07 02:27:21 +02:00
Ahmed Samy 95610de5f3 bind set{Width,Height} of g_map to lua 2013-12-07 02:00:31 +02:00
Ahmed Samy 9154c0a678 mapio: fix load on new maps 2013-12-06 23:08:08 +02:00
Ahmed Samy 772ec208c0 don't throw error on fail 2013-12-05 22:23:46 +02:00
Sam 99500c9c91 Protocol 8.40-.42 fixes, closes #272 2013-12-04 16:02:51 +01:00
Ahmed Samy b9b9a32b83 Spawns: add function to find a spawn to place a creature on 2013-12-04 14:30:26 +02:00
conde2 ba091c9f5b Indentation 2013-12-01 01:30:48 -02:00
conde2 3288711d16 Mistake 2013-12-01 01:25:34 -02:00
conde2 8b0509a5c3 Try to fix compilation 2013-12-01 01:19:29 -02:00
conde2 d7612e9304 Little mistake 2013-12-01 01:12:06 -02:00
conde2 4dcb30110f Use of clamp 2013-12-01 00:48:36 -02:00
conde2 7ff73d1064 Fix indentation 2013-11-30 23:34:21 -02:00
conde2 ca2fe9cf45 Fix compilation under MSVC
Use template for std::min and std::max
2013-11-30 23:08:43 -02:00
Sam ec012cb137 Fix 7.6 protocol issue / Typo 2013-11-19 01:09:31 +01:00
Sam 69ae324676 Tiny setPVPMode fix 2013-11-19 00:55:42 +01:00
Sam 4d656f8bd1 New pvp modes to combat controls 2013-11-19 00:50:00 +01:00
Sam c98439ae65 onOutfitChange fix 2013-11-18 23:18:48 +01:00
Sam 4f9f04206d Added enter / escape button to minimap flag window 2013-11-18 20:57:50 +01:00
Sam fc54a6e418 Full modal dialog functionality 2013-11-18 18:58:15 +01:00
Ahmed Samy 25d3019d1a force use of template version of std::min/max 2013-11-14 00:02:47 +02:00
Ahmed Samy 1711d8bdaf Revert "replace all std::min/std::max with just min/max"
This reverts commit 28d967ccce.
2013-11-13 23:53:54 +02:00
Ahmed Samy 28d967ccce replace all std::min/std::max with just min/max
This errors out in MSVC since the inclusion of winsock2.h, CL uses the
macro not the template version.
2013-11-13 23:48:10 +02:00
BrunoDCC 4bfe9b640e Fix houses and monsters 2013-11-13 18:48:37 -02:00
Eduardo Bart 28786a3570 Update make_snapshop.sh 2013-11-13 14:33:29 -02:00
Eduardo Bart b07a77f705 Changes to compile for Win64 2013-11-13 13:55:34 -02:00
Eduardo Bart dd829395e3 Merge pull request #376 from dalkon/master
Item phases & Fix party "bug" & Additions
2013-11-12 15:56:54 -08:00
dalkon 18fa54181a Format fix 2013-11-13 00:50:46 +01:00
dalkon 5b8ff29fa3 Fix party "bug" & Additions 2013-11-13 00:48:41 +01:00
dalkon 59e90e8f1e Item phases 2013-11-13 00:18:15 +01:00
Eduardo Bart fc0297d6db Fix compile errors in ubuntu 2013-11-12 20:07:46 -02:00
Eduardo Bart 1060c6f78c Compilation for MSVC2013, thanks @dalkon
OTclient now compiles in "Microsoft Visual Studio 2013 Express for Windows Desktop"
All the needed libraries you can download at https://www.dropbox.com/s/2yfb1c763io8efy/otclient-msvc13-libs.zip
NOTE: You have to change VC++ Directories to the properly directories
NOTE: Latested MSVC 2013 or greated is required
2013-11-12 16:32:39 -02:00
dalkon c9597d6682 Visual Studio 2013 Compatibility 2013-11-12 16:32:39 -02:00
Ahmed Samy 2b015d49d7 don't set bits twice 2013-11-12 20:06:59 +02:00
Ahmed Samy f04b4a0b42 small fix 2013-11-12 20:02:24 +02:00
Ahmed Samy ff5c22d4c0 Tiny fix
Saving newly made houses by the map editor is not even supported, so this
is not a bug
2013-11-12 17:15:09 +02:00
Eduardo Bart 0938e22eb9 Fixes in stdext::format 2013-11-11 23:07:25 -02:00
Eduardo Bart 1868b235cb Implement creature marks 2013-11-11 01:45:18 -02:00
Eduardo Bart 9a30050340 Fix typo 2013-11-10 23:40:29 -02:00
Eduardo Bart 9d689f0c43 Add missing changes for protocol > 1000 2013-11-10 23:31:59 -02:00
Eduardo Bart 2b34c0ea0a Fix #337
The sound buffer was not being fully preloaded because it's size was incorrect
2013-11-10 20:35:00 -02:00
Eduardo Bart d32f71c2b9 Partial support for protocol 1020 and minimize lag
I am able to login in global Tibia however there are game protocol errors
* there is a new opcode 167, which I dont know what it is
* there are changes in opcode 147 which handles text messages that I don't know too

Connection writing was optimized, playing "lag" should improve by 10ms,
and improve much more in systems with low fps
2013-11-10 20:10:04 -02:00
BrunoDCC 7d7bd00a63 minor fix :3 2013-11-09 22:48:29 -02:00
BrunoDCC c81a623c43 Fixes for creatures name
fixes on save houses (Now open most generate some error)
First 10.22 commit (open dat to edit)
Add server id for new versions
2013-11-09 20:04:48 -02:00
Sam 6f9436dd60 UISprite widget added
Display single sprites
2013-10-30 21:35:29 +01:00
Eduardo Bart 38dec168ee Fix boost::asio misuse that would cause lag
io_service::reset was not called before io_service::poll, meaning that new events would be really polled in the next Connection::poll call, this could lead to network lag in computers with low framerate (ie: a user with 10 fps would have 100ms lag just because of that)
2013-10-22 21:42:35 -02:00
Joao Pasqualini Costa b3717ceb93 Fix - Writeable / Readable items 2013-10-21 22:25:12 -02:00
Joao Pasqualini Costa 084ee45650 A little mistake 2013-10-20 20:33:44 -02:00
Joao Pasqualini Costa 7290ec3334 Some work on container pagination
Bind lua functions for containers
Update onAddItem now it have the pagination slot
Note: getSize as i see is equal to getItemsCount, but not sure thats why
I've added !
2013-10-20 20:21:20 -02:00
Joao Pasqualini Costa 971d90a596 Fix protocol error #362
TODO:
Handle the helpers in LUA, it could be added into Battle Window i think,
if someone know where should this be comment here !
2013-10-20 18:31:20 -02:00
Sam 8230bf2af4 Merge branch 'master' of https://github.com/edubart/otclient 2013-10-20 17:15:30 +02:00
Sam 241b54262a Updated lua consts 2013-10-20 17:15:24 +02:00
Ahmed Samy 63ce68b449 mapio: make sure we read the house tile flag 2013-10-12 11:38:30 +02:00
BrunoDCC de3160c90d Save houses and spawns fix 2013-10-11 02:35:31 -03:00
Sam 778559c7b9 Protocol 10.10 fixed containers 2013-10-09 17:58:58 +02:00
Sam 3aac0ac0ec Reverting mapio.cpp change
Should not have been commited.
2013-10-07 21:38:55 +02:00
Sam 4adfafc67e Fix for Client 8.5 2013-10-07 21:32:13 +02:00
Sam 1b27a095a9 Hotkeys for Fluid Containers
Hotkeys now save subType for fluid containers instead of always trying
to use item with subType 0.
2013-10-05 18:08:49 +02:00
Sam 5843b78e87 Support for client version 7.6
Tell me if there are parts which I should change.

- Not everything is tested yet, feel free to report bugs in 7.6
- the data send in between login opcode and account data might not be
correct, but I could not find any documents showing the right protocol
yet
- Hotkeys working
2013-10-04 04:09:54 +02:00
Ahmed Samy 7cf645e715 Woops, fix operator less than 2013-09-02 19:12:12 +00:00
Ahmed Samy 537508021e Make g_map.findItemsById return a map instead of a vector 2013-09-02 17:53:32 +00:00
Ahmed Samy e741a62ce9 g_map.findItemsByid 2013-08-31 01:18:17 +00:00
Ahmed Samy 56d6ef6642 Introduce 4 new functions:
- g_map.beginGhostMode(float opacity)
- g_map.endGhostMode()
- UIMap::movePixels(int x, int y)
- MapView::move(int x, int y)
2013-08-30 01:54:36 +00:00
Ahmed Samy 3db8f54aa9 Introduce 2 new functions to g_things
- g_things.findItemTypesByName
- g_things.findItemTypesByString
2013-08-29 17:53:21 +00:00
Ahmed Samy 9234030c1b Zone colors: add more tile flags to be checked for 2013-08-27 15:49:48 +00:00
Ahmed Samy 520baa28ea Move "getNPC" that was introduced in commit
00729bbc2e
from Spawn to CreatureType

I didn't have a closer look at how his code was structured, what he
basically did
is that he set all creatures in a spawn as NPC's even if it's a monster
which is
so erroneous.

Highlights:
- Add branch prediction macros
- Minor code style fixes & some others

Hopefully the branch prediction thing will speed up OTB since it's
awfully slow.
2013-08-27 03:40:18 +02:00
KnopersPL 1f914351bb Update protocolcodes.cpp
Fix for server messages on 850
2013-08-25 12:24:18 +02:00
KnopersPL eb68504dc1 Update protocolgameparse.cpp
Fix the slow animation move effect, some opcodes error and logging in as GM
2013-08-25 12:20:54 +02:00
Ahmed Samy 32647f11bf Introduce 2 new functions to Map
- g_map.colorizeThing
- g_map.removeThingColor
2013-08-24 00:09:56 +02:00
Ahmed Samy 644d4daeea More cleanups 2013-08-23 02:12:36 +02:00
Ahmed Samy b27352c321 Merge branch 'master' of https://github.com/BrunoDCC/otclient
* 'master' of https://github.com/BrunoDCC/otclient:
  Add full npc read (it not cause bug)
  Fixed a npcs save Fixed a spawns and npcs load
2013-08-23 02:03:40 +02:00
BrunoDCC a6be9ae525 Add full npc read (it not cause bug) 2013-08-22 21:00:48 -03:00
Ahmed Samy 5df3ec8cf2 More cleanups
Also, bind map descriptions auxiliar functions
2013-08-23 01:55:15 +02:00
BrunoDCC 00729bbc2e Fixed a npcs save
Fixed a spawns and npcs load
2013-08-22 20:54:09 -03:00
Ahmed Samy 3b2d8a2b5e Fix build 2013-08-22 23:20:44 +02:00
Ahmed Samy d5298c1011 Cleanups 2013-08-22 21:15:17 +02:00
Allan Ference aaad8ab8a0 Fix spawn loading and saving, thanks to @BrunoDCC 2013-08-20 12:14:52 +02:00
Allan Ference efbd9ab693 Attempt to fix spawn loader 2013-08-19 18:57:25 +02:00
Allan Ference 092209c0bb Attempt to fix houses and spawns save 2013-08-19 10:38:22 +02:00
Allan Ference 05f7f6a4cf Introduce Item::getName() 2013-08-18 18:29:20 +02:00
Joao Pasqualini Costa 96bb28e806 Fix Mount frame issue
This will fix mount for all protocols
2013-08-17 22:19:24 -03:00
Allan Ference e7137c2535 Rework NPCs loader with g_resources (Untested) 2013-08-17 23:36:44 +02:00
Allan Ference 5eabf6f518 Optional and configurable zone colors 2013-08-17 23:06:58 +02:00
Allan Ference 5849136526 Introduce g_things.findItemTypeByName 2013-08-17 15:09:10 +02:00
Allan Ference 0451fd6b58 OTBM saver: don't escape version check for waypoints 2013-08-15 11:20:22 +02:00
Allan Ference 9cf878335a Minor changes
Mainly code style
2013-08-14 18:58:53 +02:00
Allan Ference 1ea2b380ca Disregard progressbar 2013-08-09 17:35:56 +02:00
BrunoDCC 4d498ed0d8 Fix OTBM save
Remove if(version > 1) { (it causes bug)
2013-08-07 20:04:21 -03:00
Allan Ference 9aa667da26 MapEditor: more changes for ease of use 2013-08-04 14:21:12 +02:00
Allan Ference e6db43ac3a MapEditor specific: Use colors for tile states 2013-08-04 14:19:10 +02:00
Mark Samman 4a04a18835 Fix login with 9.83-10.10
This only adds protocol compatibility, the features aren't actually
implemented yet
2013-07-28 07:05:46 +02:00
Mark Samman 261642190b Fix compiling on OS X 2013-07-28 04:30:52 +02:00
BeniS 95abf2a1d2 Fix a bug with autowalking & add prompt param for tryLogout.
(We don't want to be prompted when pressing Ctrl + Q or  Ctrl + L).
2013-07-07 05:36:56 +12:00
Sam 987c6d6c91 Mount display issue
fixes #275
Not really needed but enables some cool stuff
2013-07-02 23:16:11 +02:00
Sam b81590f297 Fixed Alt + F4 keycombo on Windows 2013-06-29 16:53:15 +02:00
BeniS e062562888 Added sublime text 2 project file.
* Changed the order of the dofiles params.
2013-05-12 21:16:43 +12:00
BeniS 18d23653c4 Added some control params to dofiles lua method.
* File name contains string.
* Recursive file checking for deep searches.
2013-05-12 17:00:52 +12:00
Sam cc12db0d1f Reverted getTopMultiUseThing() change 2013-04-09 23:54:10 +02:00
Joao Pasqualini Costa 57bb6ff974 Fix #315 by @pacmanis
Credits go to @pacmanis
2013-04-09 18:02:43 -03:00
Eduardo Bart b43a196eac Minor fixes and add auto resize for images 2013-03-15 21:59:22 -03:00
Joao Pasqualini Costa 6ef3508362 Properly Fix #301 2013-03-14 20:57:02 -03:00
Eduardo Bart a71e07f063 Restore walk optimization 2013-03-14 00:16:57 -03:00
Eduardo Bart 4bdd1e79fd Fix compile error for win32 2013-03-13 21:18:17 -03:00
Eduardo Bart e9e4dcd71b Improve walk when lagging 2013-03-13 20:55:20 -03:00
Eduardo Bart 0891e2b30a Add C++ traceback to errors 2013-03-12 01:36:36 -03:00
Eduardo Bart 24664714bd Fix rare but serious bug in Connection
* Implement output pooling for writing data in connection,
this should fix rare cases where sending would fail
2013-03-12 00:18:47 -03:00
Eduardo Bart 64fc4570c9 Try to fix compilation for gcc 4.6 [3] 2013-03-06 15:47:38 -03:00
Eduardo Bart 392acc0b43 Try to fix compilation for gcc 4.6 [2] 2013-03-06 15:40:47 -03:00
Eduardo Bart 69f72b9c86 Try to fix compilation for gcc 4.6 2013-03-06 13:05:46 -03:00
Eduardo Bart 489688e9fb Merge branch 'sql' 2013-03-06 13:00:21 -03:00
Eduardo Bart 61be2103ed Fix linkage 2013-03-06 12:54:27 -03:00
BeniS a7b27ef8dd Forgot to add MySQLResult lua binding 2013-03-05 20:33:27 +13:00
Eduardo Bart 44bf4dcb6e Fix ubuntu compile errors 2013-03-05 02:54:08 -03:00
BeniS 9305053e34 Few issues with compilation and layout 2013-03-05 17:47:43 +13:00
Eduardo Bart 1dd558d57e Revert "Use boost::thread instead of std::thread"
This reverts commit 71b5c5f2e4.
2013-03-05 01:47:23 -03:00
BeniS 15ee7962f1 Some minor clean ups 2013-03-05 17:31:19 +13:00
Eduardo Bart 8c016b143a Fix #294 2013-03-04 23:59:37 -03:00
Eduardo Bart 71b5c5f2e4 Use boost::thread instead of std::thread 2013-03-04 23:06:00 -03:00
Henrique Santiago 5396ea6231 Fix to last commit 2013-03-04 22:46:14 -03:00
Henrique Santiago 9955de573b Avoid infinite loop 2013-03-04 22:44:29 -03:00
Eduardo Bart 0be7bd5360 Implement async dispatcher #221 2013-03-04 18:56:22 -03:00
Eduardo Bart c452e74e0c Implement stdext::shared_ptr
It's an alternative to stdext::shared_object_ptr
with weak pointers support and some other functionallity, however
it's heavier, uses more memory, more allocation and slower,
this class should be used when really needed, prefer
stdext::shared_object_ptr
2013-03-04 13:14:35 -03:00
Eduardo Bart bdbe065c23 Add thread safety for std::shared_object_ptr 2013-03-04 10:47:07 -03:00
BeniS f4263384bc Fix boost issue on Ubuntu and fix MySQL lib issue
* Add framework options for configuration
* libboost_chrono-mt.a dependency issue (with clock_gettime)
* MySQL lib must be added before zlib
2013-03-04 18:03:04 +13:00
BeniS f50c63e9e5 Removed singleton instance & added more lua bindings
* Some tidying up
2013-03-04 04:11:29 +13:00