2006-07-27 Eugenio Favalli * tmwserv.cbp, tmwserv.dev: Updated project files. 2006-07-27 Guillaume Melquiond * src/storage.cpp, src/map.cpp, src/dalstorage.h, src/mapmanager.h, src/chatchannelmanager.cpp, src/mapreader.cpp, src/mapmanager.cpp, src/dal/dalexcept.h, src/dal/mysqldataprovider.h, src/dal/recordset.h, src/dal/dataproviderfactory.h, src/dal/dataprovider.cpp, src/dal/sqlitedataprovider.cpp, src/dal/dataprovider.h, src/dal/mysqldataprovider.cpp, src/dal/pqdataprovider.h, src/dal/recordset.cpp, src/dal/sqlitedataprovider.h, src/map.h, src/dal/dataproviderfactory.cpp, src/main.cpp, src/mapreader.h, src/utils/singleton.h, src/utils/cipher.cpp, src/utils/logger.cpp, src/utils/cipher.h, src/utils/stringfilter.h, src/utils/logger.h: Removed tmwserv namespace. * src/utils/countedptr.h: Removed tmwserv namespace. Added conversion constructor. * src/accounthandler.cpp, src/account.cpp, src/object.cpp, src/storage.h, src/dalstorage.cpp, src/account.h, src/object.h, src/gamehandler.h, src/state.cpp, src/being.cpp, src/gamehandler.cpp, src/state.h, src/being.h: Removed tmwserv namespace. Added MovingObject and Player classes. Removed exhaustive statistic accessors. 2006-07-26 Eugenio Favalli * src/accounthandler.cpp, src/client.cpp, tmwserv.cbp: Send some character's infos after a successful login, removed a useless byte, added Code::Blocks project file. 2006-07-13 Eugenio Favalli * tmwserv.dev: Updated Dev-C++ project file. 2006-06-17 Guillaume Melquiond * src/state.cpp, src/state.h, src/defines.h, src/client.cpp, src/main.cpp, src/gamehandler.cpp: Started handling beings on maps. 2006-06-11 Guillaume Melquiond * src/chatchannelmanager.cpp: Fixed public/private ranges. * src/chathandler.h: Removed useless prototype. * src/defines.h, src/accounthandler.cpp, src/chathandler.cpp, src/gamehandler.cpp, src/client.cpp: Sanitized message packets and errors. 2006-05-23 Guillaume Melquiond * src/chatchannelmanager.cpp, src/chatchannelmanager.h: Removed unwarranted constness. Used binary searches instead of loops. * src/chatchannel.cpp, src/chatchannel.h: Replaced usage of whole Being by character name. * src/client.cpp: Implemented client-side server split. * src/messagehandler.cpp, src/messagehandler.h, src/Makefile.am: Removed unused MessageHandler class. * src/accounthandler.cpp, src/accounthandler.h, src/chathandler.cpp, src/chathandler.h, src/gamehandler.cpp, src/gamehandler.h: Respectively changed into an account server, a chat server, and a game server. * src/main.cpp, src/state.cpp, src/state.h, src/defines.h: Small fixes to cope with server split. * src/connectionhandler.cpp, src/connectionhandler.h, src/netcomputer.cpp, src/netcomputer.h: Removed temporary classes. 2006-05-22 Eugenio Favalli * tmwserv.dev: Updated Dev-C++ project file. 2006-05-20 Guillaume Melquiond * src/connectionhandler.cpp, src/connectionhandler.h, src/netcomputer.cpp, src/netcomputer.h, src/accounthandler.h, src/state.cpp, src/state.h, src/chathandler.h, src/gamehandler.cpp: Split low-level and high-level functionality in network access: NetComputer and ConnectionHandler access the medium while Clientcomputer and ClientConnectionHandler have data on the connected clients. Fixed loops in ClientConnectionHandler; sendToEveryone was sending to only one client. Removed unused stringSplit. * src/configuration.cpp, src/accounthandler.cpp, src/dalstorage.cpp, src/main.cpp, src/chathandler.cpp, src/messagehandler.cpp, src/utils/stringfilter.cpp, src/utils/logger.h, src/skill.cpp: Changed LOG macros to have statement syntax. 2006-05-19 Guillaume Melquiond * src/connectionhandler.cpp, src/connectionhander.h, src/main.cpp: Copied connection logic from netsession. Removed multithreaded socket access as Enet is non-blocking. Fixed memory corruption on client disconnect. * src/Makefile.am, src/netsession.cpp, src/netsession.h: Removed unused NetSession class. 2006-05-14 Guillaume Melquiond * src/accounthandler.cpp: Prevented accounts from being incorrectly created when errors were detected. * src/client.cpp: Prevented input from looping on error, allowed client to read spaces as part of chat messages, added output of chat messages received from server. 2006-05-14 Eugenio Favalli * src/utils/timer.cpp, tmwserv.dev: Replaced nanosleep with Sleep in Windows and updated Dev-C++ project file. 2006-05-14 Guillaume Melquiond * src/messagein.cpp: Replaced strnlen by memchr to avoid GNU extensions. 2006-05-14 Bjørn Lindeijer * src/messageout.cpp, src/messagein.h, src/messagein.cpp: Applied another patch by Guillaume Melquiond which fixed a number of issues with the message implementation (client side should also be checked). * src/main.cpp, src/utils/timer.cpp, src/utils/timer.h: Applied a patch by Guillaume that makes the server sleep between ticks instead of polling for the next one. * src/connectionhandler.cpp, src/object.cpp, src/object.h: Applied a patch by Guillaume that fixes and optimizes ConnectionHandler::sendAround. 2006-05-13 Bjørn Lindeijer * src/Makefile.am, configure.ac: Applied patch by Guillaume Melquiond which adds ENet check and adds timer.cpp/h to the Makefile.am. * src/connectionhandler.cpp, src/client.cpp, src/defines.h: Fixed some compilation warnings. 2006-05-03 Philipp Sehmisch * src/main.cpp: only yield main thread when there isn't anything to do. 2006-04-30 Philipp Sehmisch * src/util/timer.h, src/util/timer.cpp: Added a timer class. * src/main.cpp: Replaced SDL timing with the new timer class. * src/util/timer.h, src/util/timer.cpp: Replaced clock with gettimeofday. * src/util/wingettimeofday.h, src/util/wingettimeofday.h: Windows implementation of the UNIX gettimeofday function. * src/main.cpp: World time doesn't get async anymore when world ticks are skipped. Added a warning when tick skip occurs. * src/util/timer.h, src/util/timer.cpp: Made sure every compiler uses a 64 bit unsigned integer for getTimeInMillisec. * src/main.cpp, src/connectionhandler.cpp, src/netsession.cpp, src/SDL-win32_main.c: Removed the last remains of SDL. 2006-04-28 Eugenio Favalli * src/netsession.cpp, src/netsession.h, tmwserv.dev: Got rid of SDL threads, now using pthreads. 2006-04-11 Eugenio Favalli * src/client.cpp, src/connectionhandler.cpp, tmwserv.dev: Updated some code to latest enet version, and fixed a linking issue in windows. 2006-03-26 Eugenio Favalli * src/messagein.cpp, src/messageout.cpp: Got rid of SDL_net endianess code. * src/messagein.cpp: Fixed a mistake. 2006-03-20 Eugenio Favalli * src/client.cpp, src/connectionhandler.cpp, src/connectionhandler.h, src/main.cpp, src/messagein.cpp, src/messageout.cpp, src/netcomputer.cpp, src/netcomputer.h, src/netsession.cpp, src/netsession.h, src/utils/logger.cpp, tmwserv.dev: Got rid of SDL_net, now both server and test client use enet. 2006-03-18 Eugenio Favalli * src/client.cpp, src/messageout.cpp, src/messageout.h: Converted the test client to use enet. 2006-03-14 Eugenio Favalli * tmwserv.dev: Updated project file. 2006-03-07 Björn Steinbrink * src/utils/stringfilter.h, src/utils/stringfilter.cpp: A bunch of cleanups. 2006-03-06 Björn Steinbrink * src/connectionhandler.h, src/storage.cpp, src/configuration.cpp, src/script.h, src/messageout.cpp, src/map.cpp, src/messagein.h, src/skill.h, src/messagehandler.h, src/resourcemanager.h, src/netsession.cpp, src/accounthandler.cpp, src/dalstorage.h, src/sqlitestorage.h, src/account.cpp, src/connectionhandler.cpp, src/chatchannelmanager.cpp, src/netcomputer.h, src/messagein.cpp, src/client.cpp, src/messageout.h, src/dalstorage.cpp, src/netsession.h, src/accounthandler.h, src/mapreader.cpp, src/account.h, src/netcomputer.cpp, src/mapmanager.cpp, src/object.h, src/gamehandler.h, src/dal/mysqldataprovider.h, src/dal/recordset.h, src/dal/dataproviderfactory.h, src/dal/sqlitedataprovider.cpp, src/dal/dataprovider.h, src/dal/mysqldataprovider.cpp, src/dal/pqdataprovider.h, src/dal/recordset.cpp, src/dal/sqlitedataprovider.h, src/state.cpp, src/chathandler.h, src/items.h, src/mapreader.h, src/packet.cpp, src/gamehandler.cpp, src/mapmanager.h, src/chathandler.cpp, src/skill.cpp, src/utils/cipher.h, src/utils/logger.cpp, src/utils/stringfilter.h, src/utils/base64.cpp, src/utils/logger.h, src/utils/cipher.cpp, src/utils/stringfilter.cpp, src/resourcemanager.cpp, src/messagehandler.cpp, src/map.h, src/state.h, src/sqlitestorage.cpp: Cleaned up unnecessary header dependencies and fixed some indentations. 2006-03-05 Yohann Ferreira * src/state.cpp, src/defines.h, src/chathandler.cpp, src/connectionhandler.cpp, src/connectionhandler.h, TODO: Added the server code to enter and leave a channel. Some minor fix to the state code, and completed the TODO a little for later coding. 2006-02-19 Yohann Ferreira * src/state.h, src/state.cpp, src/object.h: Made use of counted pointers for objects, just the way it is for beings. * src/chathandler.cpp, src/accounthandler.cpp, src/client.cpp, docs/packets: Updated tmwserv packets documentation. Some minor other updates. 2006-01-24 Yohann Ferreira * src/chathandler.cpp, src/chathandler.h, src/accounthandler.cpp, src/dalstoragesql.h, src/defines.h, src/client.cpp, src/Makefile.am, src/utils/slangsfilter.cpp, src/utils/slangsfilter.h, src/utils/stringfilter.h, src/utils/stringfilter.cpp, src/main.cpp, src/accounthandler.h, src/chatchannelmanager.cpp, src/chatchannelmanager.h, src/chatchannel.h, src/chatchannel.cpp, src/connectionhandler.h, src/connectionhandler.cpp: Chat Channeling Commit part 4. Renamed the slang filter into StringFilter and moved some code to it. Added the missing protocol values, and implemented registering/registering of channels; More to come about it. 2006-01-21 Yohann Ferreira * src/accounthandler.cpp, src/client.cpp, src/defines.h, src/dalstorage.cpp: Very little corrections. Corrected a little mistake in the channels loading. Made a simple function to test for double quotes. We could see how to improve that. * src/chatchannelmanager.h, src/chatchannelmanager.cpp, src/chatchannel.h, src/chatchannel.cpp, src/dalstorage.cpp, src/dalstorage.h, src/storage.h, src/chathandler.cpp, src/netcomputer.h, src/netcomputer.cpp, src/main.cpp, src/connectionhandler.h, src/connectionhandler.cpp: Chat channeling commit part 3. Is now linked with the connection handler to chat in a specific channel. Also made some fixes on the chat channeling and in the channels load/save functions. 2006-01-18 Bjørn Lindeijer * src/mapmanager.cpp, src/mapmanager.h: Some insignificant changes to usage of the const keyword. Also simplified isLoaded method. 2006-01-18 Yohann Ferreira * src/chatchannelmanager.h, src/chatchannelmanager.cpp, src/chatchannel.h, src/chatchannel.cpp, src/storage.h, src/dalstorage.h, src/dalstorage.cpp, src/dalstoragesql.h, src/defines.h: Chat Channeling Commit Part 2. 2006-01-16 Yohann Ferreira * src/state.cpp, src/chathandler.h, src/chathandler.cpp, src/Makefile.am, src/chatchannel.h, src/chatchannel.cpp, src/chatchannelmanager.h, src/chatchannelmanager.cpp, src/dalstoragesql.h, src/dalstorage.cpp, src/storage.h, src/dalstorage.h: Chat channeling commit part 1. Useful to get feedback before committing what's next. 2006-01-14 Eugenio Favalli * src/accounthandler.cpp, src/client.cpp, src/dalstorage.cpp, src/messageout.cpp, src/defines.h: Server returns infos about position of the selected character (map name, coordinates). 2006-01-13 Eugenio Favalli * src/accounthandler.cpp, src/client.cpp, src/dalstorage.cpp, src/defines.h, src/main.cpp, src/mapmanager.cpp, src/mapmanager.h, src/netcomputer.cpp, src/object.cpp, src/object.h, tmwserv.dev: Made minimum client version and default map id configurable, set/getMapId are now preferred. 2006-01-12 Eugenio Favalli * src/accounthandler.cpp, src/client.cpp, src/dalstorage.cpp, src/main.cpp, src/mapmanager.cpp, src/mapmanager.h, src/netcomputer.cpp, src/object.cpp, src/object.h, src/state.cpp, tmwserv.dev: Fixed default map definition for a new created character, enabled loading of map when a character is on it, fixed inconsistency in getter/setter for map id. 2006-01-09 Eugenio Favalli * src/dalstorage.cpp: Fixed some sql query issues. 2005-01-08 Yohann Ferreira * src/defines.h, src/client.cpp, src/accounthandler.cpp, src/dalstorage.cpp, src/storage.h, src/dalstorage.h, src/dalstoragesql.h, src/being.h, src/object.h, src/netcomputer.cpp, src/object.cpp, src/being.cpp, src/state.h, src/state.cpp, src/mapmanager.h, src/main.cpp, src/mapmanager.cpp: Added customization of created character. (That makes previously created db invalid.) Made list of map indexed by map id, instead of map name. This will prevent unsyncing of player's current map when changing a map name. Remember you have now to add a map filename into db before being able to load it. (Default map id is 1, not ZERO, as zero is the not found return value. 2005-01-04 Yohann Ferreira * src/defines.h, src/accounthandler.cpp, src/main.cpp, src/client.cpp: Added a standard version check. 2005-01-04 Yohann Ferreira * src/connectionhandler.h, src.connectionhandler.cpp, src/client.cpp, src/accounthandler.cpp, src/defines.h: Added a check if the maximum number of client is already logged in at login attempt. Added a default behaviour in protocol. Some cleanups. * src/client.cpp, src/storage.h, src/dalstorage.cpp, src/dalstorage.h, src/main.cpp, src/defines.h, src/accounthandler.cpp, src/Makefile.am: Implemented server response handling to the test client. Fixed a bug that made the Email change not possible. Changed some protocol value to have a litte neater client code. Added FreeBSD fix idea from icy to server code. 2005-12-31 Yohann Ferreira * src/main.cpp, src/defines.h, src/utils/slangsfilter.h, src/utils/slangsfilter.cpp, src/accounthandler.h, src/accounthandler.cpp, src/chathandler.cpp: Adding the possibility to change Email, and password. Turned Slangs Filter into a class. Use some ifdefs for future configure options handling. Still has to update the client. 2005-12-29 Yohann Ferreira * src/main.cpp, src/connectionhandler.cpp, src/defines.h, src/chathandler.cpp: Adding changes thought by Elven and an option for setting the port to listen on at startup. * src/accounthandler.cpp, src/dalstorage.cpp, src/dalstorage.h, src/storage.h: Fixing a bug in the Storage::getAccount() function that made the server crash when the first login had a bad password. 2005-12-29 Bjørn Lindeijer * configure.ac: Added errors when SDL_net or libcrypto are not found. * src/main.cpp: Reset SEGV signal handling after SDL initialisation to allow cores to be dumped. * runserv.sh: Added script that perpetually runs the server and automatically saves a backtrace and restarts when it crashes. 2005-12-29 Eugenio Favalli * src/mapmanager.cpp, src/mapmanager.h, tmwserv.dev: Forgot a way to access maps. * tmwserv.dev: Fixed merge conflict as pointed out by Bjørn. 2005-12-28 Bjørn Lindeijer * makeclient.sh, src/Makefile.am: Integrated the building of tmwclient with the default make command, as contributed by r0nny. * src/main.cpp: Applied patch by r0nny that makes main.cpp a bit nicer. 2005-12-27 Yohann Ferreira * src/chathandler.h, src/chathandler.cpp, src/defines.h, src/utils/slangsfilter.h, src/utils/slangsfilter.cpp, src/Makefile.am, src/main.cpp, src/accounthandler.cpp, src/connectionhandler.h, src/connectionhandler.cpp: Implemented common chat handling, except for chatting in channels. Also the Channel registering/unregistering isn't there yet and the commands needs to be implemented. Added a small slangs filter to reduce bad words in account names and in conversations a little. 2005-12-26 Bjørn Lindeijer * src/storage.cpp: Removed manual throwing of std::bad_alloc, which should happen by default unless new(nothrow) is used. Suggested by r0nny. 2005-12-20 Yohann Ferreira * src/Makefile.am: Adding the MapManager to files list. * src/utils/logger.cpp, src/utils/logger.h, src/main.cpp, src/configuration.cpp, src/connectionhandler.cpp, src/mapmanager.cpp, src/mapreader.cpp, src/messagehandler.cpp, src/skill.cpp, src/resourcemanager.cpp, src/dalstorage.cpp, src/accounthandler.cpp: Adding command line argument parsing and log verbosity level handling. 2005-12-18 Eugenio Favalli * src/main.cpp, src/mapreader.cpp, tmwserv.dev, src/mapmanager.cpp, src/mapmanager.h: Added a map manager to load/unload/reload maps. 2005-12-18 Yohann Ferreira * src/accounthandler.cpp, src/netcomputer.h, src/netcomputer.cpp, src/chathandler.cpp, src/connectionhandler.cpp, src/gamehandler.cpp, src/connectionhandler.h, src/state.h, src/state.cpp: Made the handlers use the countedPtr for Beings as they should. Fixed a segfault when removing a being from the world. Also made use of AccountPtr instead of Account* to fix a not seen but yet present account reselection segfault bug. 2005-12-17 Bjorn Steinbrink * src/messageout.h: Fixed some 64bit issue. 2005-12-12 Yohann Ferreira * src/accounthandler.cpp, src/netcomputer.h, src/netcomputer.cpp, src/defines.h, src/dalstorage.cpp, src/dalstorage.h, src/storage.h, src/client.cpp, src/main.cpp: Now beings are handled in netcomputer when added and removed from the world. addBeing() and removeBeing() are still crashy. Added check if the character's name already exists. Forgot about that. Added CMSG_CHAR_LIST packet support. 2005-12-11 Yohann Ferreira * src/accounthandler.cpp, src/main.cpp, src/account.h, src/account.cpp, src/dalstorage.cpp, src/client.cpp, src/defines.h: Added Logout, and character deletion support. Also changed the response code when trying to login when already logged. * src/accounthandler.cpp, src/main.cpp, src/dalstorage.cpp, src/client.cpp, src/connectionhandler.cpp, src/defines.h: Added unregistering, checking on character's name and email length support. Also made some little tweaks. 2005-12-10 Yohann Ferreira * src/dalstorage.cpp: Fixed the buggy part of getAccount() where the mapInfo() recordSet erased the value of charInfo. Now, characters can be created and selected, with the map they were in, set. 2005-12-09 Yohann Ferreira * src/dalstorage.cpp, src/accounthandler.cpp: Temporary made a workaround the character misloading at login. Work is to be made to see why the mapInfo recordset is buggy. Also made the server more verbose about characters. 2005-12-08 Yohann Ferreira * src/dalstorage.cpp, src/dalstorage.h, src/storage.h: Radically improve the getEmailList() again based on MrLindeijer's good idea. * src/accounthandler.cpp: Simplify the code of Email check based on the previous improvement. 2005-12-06 Yohann Ferreira * src/dalstorage.cpp: Improved the getEmailList() function. Now the file used as db or the db name is shown in log. * src/defines.h: Added some missing messages and values for them. Login, pass min, max length can be changed there now. * src/accounthandler.cpp: Added check and appropriate response when selecting, creating a character. 2005-12-05 Yohann Ferreira * src/dalstorage.cpp: Added a working getEmailList() function. * src/accounthandler: Now tests if email already exists. * src/accounthandler.cpp, src/defines.h: Strengthens the way email addresses checked. Added good response for selecting a char when not logged. * src/storage.h, src/dalstorage.h, src/dalstorage.cpp: Added the getEmailList function, doesn't seem to work, but committed to see why. 2005-12-03 Yohann Ferreira * src/accounthandler.cpp: Handling good conditions to register. Still lacks checking if the Email already exists. * src/dalstorage.cpp: Fixed a bug that throwed an exception when logging with an account that had no mapInfo yet. Still has to set these to defaults in such case. 2005-12-02 Yohann Ferreira * src/main.cpp, src/accounthandler.h, src/accounthandler.cpp, src/configuration.h: Made the accounthandler reopen the db for SQLite to enable registering ! Now working. 2005-11-21 Aaron Marks * src/state.cpp: Re-ordered a few statements to work better. * src/dalstorage.cpp: Now sets being's current map when getting a player's account. 2005-11-16 Aaron Marks * src/state.h, src/state.cpp: Updated world related functions. * src/accounthandler.cpp: Now adds players who have selected a character to the game world. * src/object.h: Updated to include member variable for current map the object is located. 2005-11-15 Aaron Marks * src/state.h, src/state.cpp: Updated world representation, added various methods which provide easy access to the game world. * src/defines.h: Added "private message" message. * src/client.cpp, scripts/init.rb: Added experimental remote access to Ruby's functionality. 2005-11-14 Aaron Marks * src/bindings.i: Enabled "directors", allowing scripting language to override virtual functions. 2005-11-12 Aaron Marks * src/main.cpp: Added scripting with Ruby support * src/bindings.i: Created basic SWIG bindings. * src/Makefile.am: Updated to support Ruby & generate SWIG bindings. * configure.ac: Updated to detect SWIG & Ruby, using them appropriately. * scripts/init.rb: Server initialization test script. 2005-11-10 Aaron Marks * src/client.cpp: Updated client to support moving and equipping. * src/being.h, src/being.cpp: Added "hasItem" * src/state.cpp: Added beings updating. 2005-10-24 Yohann Ferreira * src/main.cpp: Added more useful infos at startup. * src/dal/dataprovider.h, src/dal/dataprovider.cpp, src/dal/sqlitedataprovider.cpp, src/dal/mysqldataprovider.cpp, src/dal/pqdataprovider.cpp, src/main.cpp, src/client.cpp: Grammar corrections, and a little bit of work on getting the name of the Db.