=== ChangeLog discontinued === With the move to git, The Mana Server has switched from a ChangeLog file to relying on commit messages to provide change history. 2008-11-20 Philipp Sehmisch * src/game-server/attackzone.hpp, src/game-server/being.cpp, src/game-server/character.cpp, src/game-server/collisiondetection.cpp, src/game-server/collisiondetection.hpp: Added rectangular attack zones which are faster and simpler to calculate than the cone-shaped ones. Currently used by the characters unarmed attack. 2008-11-09 Bjørn Lindeijer * src/game-server/character.cpp: Fixed crash when a script can't be found. 2008-11-06 David Athay * src/scripting/lua.cpp, src/defines.h, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp: Added sending post via NPC. 2008-11-02 Philipp Sehmisch * src/scripting/lua.cpp: Added convenience wrappers for converting STL lists, vectors, maps and sets to lua tables. * data/scripts/test.lua: Added a dialog option to test npc which retreives some stl containers from the c++ part and prints them to the server console. 2008-11-06 David Athay * src/game-server/commandhandler.cpp, src/utils/string.cpp, src/utils/string.hpp: Use a string util for converting strings to integers, as per Bjorns suggestion. 2008-11-05 Dennis Friis * src/game-server/commandhandler.cpp: Fix integer arguments randomly failing due to stream flags not being cleared. To reuse a stream you must do stream.clear(); stream.str(string); for it to work. 2008-11-05 Andreas Habel * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/serverhandler.cpp, src/defines.h, src/game-server/accountconnection.cpp, src/game-server/itemmanager.cpp, src/game-server/itemmanager.hpp: Added version information to item database. Game server reports its local version to account server and gets notified if the version is up-to-date or outdated to prevent inconsistencies. Account server initially loads item database on startup and synchronizes tmw_items table in the database. 2008-11-04 David Athay * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/defines.h: Added notifying party members when a player joins or quits. * src/game-server/state.cpp, src/game-server/being.cpp, src/game-server/character.hpp, src/game-server/object.hpp: Added updating party member health. 2008-11-03 David Athay * src/game-server/commandhandler.cpp: Fixed argument processing. 2008-11-03 Andreas Habel * src/sql/sqlite/createTables.sql, src/sql/mysql/createTables.sql, account-server/dalstorage.cpp, account-server/dalstorage.hpp, account-server/dalstoragesql.hpp, chat-server/post.cpp, chat-server/post.hpp: Added tables and statements to store and retrieve letters. Attachments not functional as long as items not stored as individual items. * docs/database_specification.png: Added database specification chart 2008-11-02 Philipp Sehmisch * data/scripts/libs/libtmw.lua, data/scripts/libs/libtmw-constants.lua: Moved the long list of constants at the beginning of libtmw to an additional lua source file. 2008-11-01 Roderic Morris * src/game-server/commandhandler.hpp, src/game-server/gamehander.cpp, src/game-server/commandhandler.cpp: some fixes for the command handler, it still needs some more work though. 2008-11-01 Philipp Sehmisch * src/game-server/character.hpp, src/game-server/scripting/lua.cpp: Added script bindings for manipulating the characters experience. * src/game-server/character.cpp: Catched a potential integer underflow in experience calculation. * data/scripts/lib/test.lua: added constants for character skills. * data/scripts/test.lua: Added example script for manipulating character experience. * src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/gamehandler.cpp, src/defines.h: Implemented basic netcode for using special actions like magic. Currently triggers a function in libtmw.lua which makes the caster speak some text (magic system implementation phase 1 and 2) 2008-10-31 David Athay * src/utils/string.cpp, src/utils/string.hpp, src/Makefile.am, src/game-server/commandhandler.cpp, src/game-server/commandhandler.hpp, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp, src/game-server/accountconnection.hpp, gameserver.cbp: Changed the commands to be handled without template magic. 2008-10-29 Bjørn Lindeijer * src/game-server/being.cpp, src/game-server/monster.cpp, src/game-server/being.hpp, src/game-server/monster.hpp: Some code formatting cleanup and unduplicated conversion from direction to angle. 2008-10-29 Chuck Miller * src/game-server/collisiondetection.cpp, src/game-server/monster.cpp, src/game-server/being.cpp: Replaced the collision detection function due to it being broken, I left it in the source, just commented out if someone wants to try to fix it later on. In other news, this patch now makes it possible to hit them pesty maggots. 2008-10-27 Bjørn Lindeijer * src/account-server/serverhandler.cpp, src/account-server/dalstorage.hpp, src/game-server/state.cpp, src/game-server/effect.cpp, src/game-server/effect.hpp: Compile fixes and warning fixes. 2008-10-27 David Athay * src/defines.h, src/account-server/serverhandler.cpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Added changing player's character and account level. 2008-10-27 Philipp Sehmisch * src/scripting/lua.cpp: Added script binding for spawning effets from scripts. * data/scripts/test.lua: Created example NPC for spawning effetcs from scripts. 2008-10-27 Chuck Miller * src/defines.h, src/game-server/thing.hpp, src/game-server/state.cpp, src/game-server/effect.cpp, src/game-server/effect.hpp: Added a system to send effects (can be sound or graphics) to the client. You can use it by including game-server/effect.hpp and calling Effects::show() 2008-10-26 Bjørn Lindeijer * src/account-server/dalstorage.cpp, src/net/connection.cpp, src/net/connection.hpp, src/game-server/accountconnection.cpp, src/game-server/main-game.cpp: Some cleanup and an unsuccesful attempt at fixing a crash on map server exit when there is no connection the account server (a different one surfaced). 2008-10-25 Roderic Morris * docs/commands.txt, docs/packets.txt, src/defines.h: Correct commands.txt, get rid of horribly inaccurate packets.txt, and make a todo for improving defines.h's documentation. 2008-10-24 Chuck Miller * src/game-server/being.hpp: Changed direction values to match the client's 2008-10-24 David Athay * data/scripts/test.lua, data/scripts/libs/libtmw.lua: Fixed example script, and added defines for attributes. * src/scripting/lua.cpp, src/game-server/command.cpp, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp, src/game-server/postman.hpp, gameserver.cbp, data/scripts/test.lua, data/scripts/libs/libtmw.lua: Added post callback for getting post. Added GM command for changing player attributes. Changed GM command to @ as '/' was already being used by client for local commands. 2008-10-23 Bjørn Lindeijer * src/utils/string.cpp, src/utils/string.hpp, src/game-server/item.hpp, src/game-server/itemmanager.cpp: Fixed compiler warnings, including a forgotten initialization of an item's script pointer. 2008-10-23 David Athay * src/scripting/lua.cpp: Added functions for getting being name and attributes in scripts. * data/scripts/test.lua: Added example of using above functions. 2008-10-22 Chuck Miller * src/game-server/mapreader.cpp, src/utils/sting.cpp, src/utils/string.hpp: Makes the values in tmx files ignore case for convience. 2008-10-22 Chuck Miller * src/game-server/item.cpp, src/game-server/item.hpp src/game-server/itemmanager.cpp: Added on item use scripts. 2008-10-22 David Athay * src/scripting/lua.cpp, src/game-server/mapcomposite.cpp, src/game-server/main-game.cpp: Fixed NPC id's starting from 0. Changed time between reconnection attempts. * src/scripting/lua.cpp, src/game-server/npc.hpp, src/game-server/npc.cpp: Added enabling and disabling NPCs. 2008-10-21 Roderic Morris * data/scripts/libs/libtmw.lua: Patch by Kage_Jittai to have NPC ids returned when creating new NPCs. 2008-10-21 Roderic Morris * src/scripting/lua.cpp, data/test.lua, data/scripts/test.lua, data/scripts/npclib.lua, data/scripts/libs, data/scripts/libs/npclib.lua, data/scripts/libs/libtmw.lua, data/scripts/libtmw.lua: Changed the ordering of lua scripts in preperation for content conversion. 2008-10-21 Bjørn Lindeijer * src/account-server/account.cpp, src/chat-server/post.cpp, src/defines.h, src/game-server/resourcemanager.cpp: Fixed some compile warnings. 2008-10-21 Dennis Friis * src/dal/sqlitedataprovider.h, src/game-server/being.hpp: Add limits.h where needed. 2008-10-21 David Athay * src/account-server/serverhandler.cpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstoragesql.hpp, src/defines.h, src/game-server/accountconnection.cpp, src/game-server/main-game.cpp: The game server now tries to connect to the account server when disconnected. Fixed some of the postal system. 2008-10-17 Andreas Habel * src/sql/sqlite/createTables.sql, src/sql/mysql/createTables.sql: Added table definitions for item auctions. 2008-10-15 David Athay * src/chat-server/chathandler.cpp, src/defines.h, src/game-server/state.cpp, src/game-server/movingobject.hpp, src/game-server/gamehandler.cpp, src/game-server/object.hpp: Added communicating a change of direction to the clients. 2008-10-13 Andreas Habel * src/account-server/dalstorage.cpp: fixed bug 456: erroneous sql query at character save 2008-09-27 Philipp Sehmisch * src/game-server/attackzone.cpp, src/game-server/attackzone.hpp, src/game-server/being.cpp, src/game-server/being.hpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/item.cpp, src/game-server/item.hpp, src/game-server/itemmanager.cpp, src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/monstermanager.cpp, gameserver.cbp, src/Makefile.AM: Implemented getting the attack zone of weapons from the item database and implemented single target attacks useful for projectile weapons like bows. 2008-09-19 David Athay * accountserver.cbp, src/account-server/main-account.cpp, src/account-server/serverhandler.cpp, src/chat-server/post.cpp, src/chat-server/post.hpp, src/defines.h, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.hpp, src/game-server/accountconnection.hpp, src/game-server/postman.hpp, src/game-server/main-game.cpp, gameserver.cbp: Added post communication between chat and game servers, 2008-09-19 Andreas Habel * Doxyfile: doxygen writes all warnings into a separate file * docs/tmwserv.xml: added link to wiki documentation as comment * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstoragesql.hpp, src/sql/mysql/createTables.sql, src/sql/sqlite/createTables.sql, src/sql/sqlite/tmw.db: Added table tmw_char_skills to store skills of a character. Removed weapon skills from table tmw_characters. 2008-09-18 David Athay * src/chat-server/post.hpp, src/chat-server/post.cpp, src/defines.h, src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp, src/game-server/main-game.cpp: Changed timing to be 100ms per tick. Added post manager on chat server. 2008-09-17 Andreas Habel * src/sql/*, src/account-server/dalstoragesql.hpp: added installation scripts to set up database schemas for mysql, sqlite and postgresql. The create table statements have been completely removed out from the c++ source into separate, provider specific sql files. * docs/tmwserv.xml: added database specific parameters to configure each provider, that is used as database backend independent * Doxyfile: doxygen now also includes non-documented functions and provides a dictionary for all classes. * dal/dataprovider.h, dal/sqlitedataprovider.h, dal/mysqldataprovider.h, dal/mysqldataprovider.cpp, dal/sqlitedataprovider.cpp: Extended abstract dataprovider to support transactions, implemented for SQLite and mySQL. Added methods to retrieve last inserted auto-increment value and the number of modified rows in the last statement. * account-server/dalstorage.cpp: Tiny rewrite to be a little more transactional and use advanced database functionality. Fixed a bug when deleting a character that left data in quests table and guilds table. Simplified the connect routine of DALStorage class since every dataprovider is now responsible to retrieve its parameters for itself. 2008-09-15 Andreas Habel * Doxyfile: added doxygen file, docu will be generated under docs/api/html. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstoragesql.hpp, src/account-server/main-account.cpp: Added table tmw_world_states to store map and world-specific variables, extended DALStorage to set and get those new variables, applied Kess's diff file from mantis #424 with modifications for PostgreSQL support. 2008-09-10 Andreas Habel * src/account-server/dalstorage.cpp, src/account-server/account.cpp, src/account-server/account.hpp, src/account-server/accounthandler.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstoragesql.hpp: Extended tmw_accounts table with columns for lastlogin and registration date. Modified account-server to fill the new columns on registration and login. Recreation of database needed! * src/account-server/dalstorage.cpp, src/account-server/dalstoragesql.hpp: Added createIndex function to create indexes on tables. 2008-08-28 David Athay * src/account-server/dalstorage.cpp: Set banned user's level to AL_BANNED. * src/account-server/main-account.cpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Added checking for expired bans. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: ExceptionFault corrected my poor sql skills. 2008-08-18 Roderic Morris * src/game-server/mapreader.cpp: fix compilation on gcc 4.3. 2008-08-18 David Athay * src/account-server/dalstorage.cpp, src/chat-server/guild.hpp, src/chat-server/chathandler.cpp: Misc fixes of guild. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstoragesql.hpp, src/chat-server/guildmanager.cpp, src/chat-server/chatclient.hpp, src/chat-server/guild.cpp, src/chat-server/guildmanager.hpp, src/chat-server/guild.hpp, src/chat-server/chathandler.cpp: Changed guilds to use character id. 2008-08-13 Yohann Ferreira * src/game-server/gamehandler.cpp, src/game-server/map.hpp: Corrected the distance needed to speak to NPC and trade with others characters. 2008-08-13 Bjørn Lindeijer * src/game-server/monstermanager.cpp: Don't ignore monster with ID 0, since our maggot uses that. 2008-08-13 David Athay * src/chat-server/guildmanager.cpp, src/chat-server/chathandler.hpp, src/chat-server/chatclient.hpp, src/chat-server/guild.cpp, src/chat-server/guildmanager.hpp, src/chat-server/chatchannel.cpp, src/chat-server/guild.hpp, src/chat-server/chatchannel.hpp, src/chat-server/chathandler.cpp, src/defines.h: Added permission levels to guilds and operator permissions to channels. 2008-08-10 Philipp Sehmisch * src/game-server/character.cpp: Corrected the way weapon skills is taken into account in damage calculation. 2008-08-04 Bjørn Lindeijer * src/game-server/mapreader.cpp, src/game-server/mapreader.hpp: Fixed another crash when reading inlined object properties. 2008-07-28 Roderic Morris * src/game-server/character.cpp: Avoid a crash caused by the last commit. * src/game-server/being.cpp: Calculate magic damage according to wiki spec. * src/account-server/dalstorage.cpp: Read guild permissions from the db. * src/chat-server/guild.hpp, src/chat-server/guild.cpp: Use const strings. 2008-07-27 Roderic Morris * src/game-server/character.cpp: Take into account weapon skills in damage calculation. 2008-07-24 David Athay * src/defines.h, src/game-server/movingobject.cpp, src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp, gameserver.cbp: Added error message when NPC is too far away. 2008-07-22 David Athay * src/chat-server/guild.cpp, src/chat-server/guild.hpp, src/chat-server/chathandler.cpp, src/defines.h: Add permissions to guild members. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstoragesql.hpp, src/chat-server/guildmanager.cpp, src/chat-server/guild.cpp, src/chat-server/guild.hpp: Save guild member permissions. 2008-07-07 Philipp Sehmisch * src/scripting/script.cpp, src/scripting/script.hpp, src/scripting/lua.cpp, data/scripts/libtmw.lua: Implemented death listener for scripting engine. * data/test.lua: Made the spider tamer a scorpion tamer (because spiders aren't implemeted and thus make bad test subjects in this case) and used the death listeners to make him complain when the scorpions are killed. 2008-07-07 Roderic Morris * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp, src/chat-server/chatchannelmanager.hpp, src/defines.h, src/chat-server/chatchannelmanager.cpp: Got rid of channel registering. Channels are automatically created with /join,and removed when the last person /quits. 2008-07-07 David Athay * src/account-server/serverhandler.cpp, src/account-server/serverhandler.hpp, src/chat-server/party.cpp, src/chat-server/party.hpp, src/chat-server/chathandler.cpp: Added party support between account and game servers. 2008-07-03 Roderic Morris * src/game-server/character.cpp, src/game-server/gamehandler.cpp: Fix errors in the last commit. 2008-07-03 David Athay * src/defines.h, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.hpp, src/game-server/accountconnection.hpp: Removed guild stuff from game server. Added some party stuff to game server. 2008-07-03 Roderic Morris * src/game-server/mapreader.cpp, src/game-server/mapreader.hpp: Avoid a crash when there's no content in tags. * src/game-server/map.cpp, src/game-server/map.hpp: Enable arbitrary tile sizes. This hasn't been tested yet. * data/maps.xml: Enable the new maps, though their warps and spawns haven't been set up yet. 2008-06-26 Roderic Morris * src/scripting/lua.cpp: Fix compile error. * src/chat-server/guild.hpp, src/chat-server/guild.cpp, src/account-server/serverhandler.cpp: Get rid of random access method on list. * src/chat-server/guildmanager.hpp, src/chat-server/guildmanager.cpp, src/chat-server/chathandler.cpp: Use a clearer method name. 2008-06-25 Roderic Morris * src/chat-server/guildmanager.cpp, src/chat-server/guildmanager.hpp, src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/guild.hpp: Handle topic changes, and inform guild members about players going offline / online and leaving / joining the guild. * src/defines.h: Update protocol definitions. 2008-06-14 Roderic Morris * src/account-server/dalstorage.cpp: Work around for members not being added to their guilds. 2008-06-10 Roderic Morris * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/defines.h: Update chat packet definitions, get rid of old unused functions. 2008-06-09 Roderic Morris * src/chat-server/chatchannelmanager.cpp: List channels that can be joined, not ones that can't, and tell players that a person has left their channels when they've disconnected from the chat server. 2008-06-03 Roderic Morris * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/chat-server/chatchannelmanager.cpp, src/account-server/dalstoragesql.hpp: Stop storing chat channels in the db. * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp: Have joinGuildChannel return a ChatChannel in case we need it constructing a packet. Send channel announcements. 2008-06-02 Philipp Sehmisch * data/test.lua: Used an example for schedule_in which is more in step with actual practice. Used an example for schedule_every which is less annoying for the server admin. * data/test.lua, data/scripts/libtmw.lua: Replaced some magic numbers with variables for better code readability. * data/test.lua, data/scripts/libtmw.lua: Removed the unused "npc" argument from the get_quest_var function. 2008-05-31 Philipp Sehmisch * data/script/libtmw.lua: Scripted a scheduler which can execute script functions at regular intervals or in a given number of seconds. This will be very useful for any quest or effect script where timing is important. * data/test.lua: Used the script scheduler to schedule 3 demo tasks: a 5 second cronjob and two fixed point tasks where the second is scheduled by the first (I'll make them do something more useful soon). 2008-05-30 Roderic Morris * src/account-server/accounthandler.cpp: Register chat clients with their account level, don't assume normal user. 2008-05-29 Roderic Morris * src/game-server/command.cpp: Fixed execution of commands even if the user has insufficient rights. 2008-05-23 David Athay * src/chat-server/guildmanager.cpp, src/chat-server/guildmanager.hpp, src/chat-server/chathandler.cpp: Use guildmanager to add users to guilds so its stored in the db. 2008-05-22 Philipp Sehmisch * src/game-server/being.hpp, src/game-server/collisiondetection.cpp, src/game-server/collisiondetection.hpp, src/scripting/lua:cpp, data/scripts/libtmw.lua: Implemented script bindings for getting beings in a circular map area and damaging beings. * data/test.lua: Scripted an NPC which damages all monsters and characters which come close to it. 2008-05-22 Roderic Morris * src/utils/sha256.cpp, src/utils/encryption.cpp, src/chat-server/chathandler.cpp, src/game-server/character.cpp: Fixed compilation with GCC 4.3. 2008-05-19 Philipp Sehmisch * src/game-server/being.cpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/mapreader.cpp, src/game-server/npc.hpp, src/game-server/npc.cpp, src/game-server/state.cpp, src/scripting/script.cpp, src/scripting/script.hpp, src/scripting/lua.cpp, data/scripts/libtmw.lua, data/test.lua: Implemented NPC names. Implemented the theoretical possibility to have named monsters along the way. Note that the syntax of the LUA functions for creating NPCs has changed. 2008-05-18 Roderic Morris * src/game-server/command.cpp: Provide feedback when admin commands fail. 2008-05-14 David Athay * src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/chathandler.cpp: Added check to ensure channel name not already in use. 2008-05-08 Philipp Sehmisch * src/game-server/trigger.cpp, src/game-server/trigger.hpp, src/game-server/mapreader.cpp, src/game-server/scripting.cpp: Implemented possibility to have trigger areas which only trigger when a being enters them and not every game tick the being is inside. * src/scripting/lua.cpp, src/game-server/state.cpp, src/game-server/state.hpp: Implemented script bindings for making beings say something and sending private chat messages from scripts to clients. * data/test.lua: The trigger areas now make every being which steps on them say something and send a private chat message to the being which steps on them. Made the guard at the gate say something in random intervals to demonstrate tmw.being_say with NPCs. 2008-05-06 Philipp Sehmisch * src/game-server/trigger.cpp, src/game-server/trigger.h, src/scripting/lua.cpp: Implemented script trigger areas which call a script function when an object steps into them. * data/test.lua: Used script trigger areas to send all objects which step into one of the areas onto a patrol path. 2008-05-03 Philipp Sehmisch * data/test.lua, data/scripts/libtmw.lua, data/scripts/npclib.lua: Added headers to LUA files mentioning the purpose of the files and their license. 2008-04-28 David Athay * src/chat-server/chathandler.cpp, src/defines.h, accountserver.cbp: Added sending who accepted invite on invite response to client. 2008-04-23 Yohann Ferreira * src/account-server/accounthandler.cpp, src/defines.h: Realigned email already exists error return value and removed getEmailAddress. 2008-04-23 Bjørn Lindeijer * src/utils/sha2.h, src/utils/sha256.h, src/utils/sha2.cpp, src/utils/encryption.h, src/utils/sha256.cpp, src/utils/encryption.cpp, src/account-server/accounthandler.cpp, src/Makefile.am: Switched to alternative SHA-256 implementation from InspIRCd. * src/game-server/mapmanager.cpp, src/game-server/mapmanager.hpp: Accepted fix by rodge, getting rid of assertion failure when an admin tries to warp to a non-existing map. * src/account-server/account.hpp: Fixed docs not to mention encryption, since all we do is hashing. * configure.ac: Since we decided not to use libcrypto, remove its configure check. * README: Updated documentation a bit. 2008-04-22 Bjørn Lindeijer * src/account-server/accounthandler.cpp, src/utils/sha2.h, src/game-server/mapreader.cpp: Fixed some small issues. 2008-04-22 David Athay * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/defines.h: Added more support for parties. 2008-04-21 Yohann Ferreira * src/Makefile.am, src/utils/sha2.h, src/utils/sha2.cpp, src/utils/encryption.h, src/utils/encryption.cpp, src/account-server/account.hpp, src/account-server/accounthandler.cpp: Added password and email encryption server-side using SHA256. 2008-04-20 Bjørn Lindeijer * src/account-server/dalstorage.cpp, src/scripting/lua.cpp, src/chat-server/party.cpp, src/chat-server/guild.cpp, src/defines.h, src/net/connectionhandler.cpp, src/game-server/map.cpp, src/game-server/character.cpp, src/game-server/character.hpp: Fixed some compiler errors/warnings. * data/test.lua: Added 100 to NPC IDs to keep 0.0 compatibility for now. 2008-04-20 Dennis Friis * src/utils/zlib.cpp: Fix a possible memleak in inflateMemory if the stream fails to uncompress cleanly. 2008-04-19 Yohann Ferreira * src/account-server/accounthandler.cpp, src/account-server/dalstorage.hpp: Fixed 'Password changes' and 'Unregistering', server-side this time. 2008-04-18 David Athay * src/chat-server/chatchannelmanager.cpp, src/chat-server/chatclient.hpp, src/chat-server/chathandler.cpp: Fixed guilds not being removed when leader quits. * src/chat-server/chathandler.cpp: Remove channel when leader quits guild. 2008-04-17 David Athay * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp: Added basic party support. 2008-04-17 Yohann Ferreira * src/Makefile.am: Fixed compilation using automake. 2008-04-16 David Athay * accountserver.cbp, src/chat-server/party.cpp, src/chat-server/chathandler.hpp, src/chat-server/chatchannelmanager.cpp, src/chat-server/chatclient.hpp, src/chat-server/guild.cpp, src/chat-server/party.hpp, src/chat-server/guild.hpp, src/chat-server/chatchannel.hpp, src/chat-server/chathandler.cpp, src/defines.h, src/game-server/gamehandler.cpp, src/game-server/main-game.cpp: Added handling creating and leaving parties. Fixed up some of the private channel stuff that remained. 2008-04-15 David Athay * src/chat-server/chathandler.cpp: Fixed getting channel userlist. 2008-04-03 David Athay * src/chat-server/chathandler.cpp: Restricted who can be invited to guilds. * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/defines.h: Fixed accepting guild invite and added updating the guild member list. 2008-04-02 David Athay * src/chat-server/chathandler.cpp: Fix accepting guild invites. 2008-04-01 David Athay * src/account-server/dalstorage.cpp, src/account-server/dalstoragesql.hpp, src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannel.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/chatchannel.hpp, src/chat-server/chathandler.cpp, gameserver.cbp: Consolidated public and private channels into one, which also includes guild channels. Channels now have a joinable field, which is true for channels that are created by users, and false for guild channels. Chatting in guild channels now works, and non-guild members can no longer join guild channels. 2008-03-31 Philipp Sehmisch * data/test.lua: Removed the +100 offset of NPC IDs (relict from eAthena) 2008-03-25 Philipp Sehmisch * data/test.lua, data/scripts/npclib.lua: Added a Lua library with walk around functions for NPCs. 2008-03-17 Philipp Sehmisch * src/scripting/lua.cpp: Error messages in script callback functions are now handed to the lua interpreter. 2008-03-15 Philipp Sehmisch * src/game-server/map.cpp, src/game-server/movingobject.hpp, src/game-server/object.hpp: Fixed a crash caused by the new blocking system (thanks to peavey for reporting). * src/scripting/lua.cpp: Implemented script bindings for querying positions and controllig movement of beings. * data/scripts/libtmw.lua, data/test.lua: Implemented script infrastructure for regularily called NPC function. * data/test.lua: Implemented NPCs which move around. One automatically and one when talked to. * src/game-server/npc.hpp: Added pathblocking rules to NPCs (blocked by walls, mosters, other NPCs and player characters but do not block player characters. 2008-03-13 Philipp Sehmisch * src/game-server/being.cpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/map.cpp, src/game-server/map.hpp, src/game-server/mapreader.cpp, src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/movingobject.cpp, src/game-server/movingobject.hpp, src/game-server/object.hpp, src/game-server/spawnarea.cpp, src/game-server/thing.hpp: Implemented dynamic and selective pathblocking. Monsters are blocked by player characters and other monsters, player characters only by monsters. * src/game-server/being.cpp: Omitted some superficial hit point updates. * src/game-server/state.cpp: Sending destination of beings when the client comes on-screen to fix a bug which showed moving monsters as standing in this situation. 2008-03-09 Philipp Sehmisch * src/defines.h, src/game-server/being.hpp, src/game-server/monster.hpp, src/game-server/state.cpp: Sending the attack type with attack messages so that the client can visualize the different attacks monsters are using. 2008-03-06 David Athay * src/account-server/dalstorage.cpp, src/chat-server/guildmanager.cpp, src/chat-server/chathandler.hpp, src/chat-server/guildmanager.hpp, src/chat-server/chathandler.cpp, src/chat-server/guild.hpp: Fixed rejoining guilds after client reconnects to the server. 2008-03-05 David Athay * src/account-server/main-account.cpp, src/account-server/dalstorage.cpp, src/chat-server/guildmanager.cpp src/chat-server/guildmanager.hpp, src/chat-server/chathandler.cpp: Fixed guild creation. 2008-03-04 David Athay * src/Makefile.am: Changed guild from account to chat server. * src/account-server/main-account.cpp: Initialise guild manager after the chat manager. 2008-03-03 Philipp Sehmisch * src/defines.h, src/game-server/being.cpp, src/game-server/being.hpp, src/game-server/character.cpp: Added natural HP regeneration, capped HP at maximum and set HP to 1 after respawn. * src/game-server/character.hpp: Reverted variables of exp per level formula to reasonable values. 2008-03-02 Philipp Sehmisch * src/game-server/being.cpp, src/game-server/monster.cpp: Moved death check from Being::damage to Being::update for more reliable death detection and to fix the bug that the last hit on a monster does not count for exp calculation. 2008-03-01 Philipp Sehmisch * src/game-server/monster.cpp: Implemented priority of different monster attacks. 2008-02-27 Philipp Sehmisch * src/defines.h, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/gamehandler.cpp: Implemented provisorical player respawn. 2008-02-23 Philipp Sehmisch * src/game-server/monster.cpp: Improved monster AI by making monster only use attacks which have a chance to hit the target and also use them when the optimal combat distance hasn't been reached yet. 2008-02-21 Philipp Sehmisch * src/util/xml.cpp, src/util/xml.hpp, src/game-server/itemmanager.cpp, src/game-server/monstermanager.cpp, src/game-server/item.hpp: Moved the functions which translate strings in XML files into enumerations from the parsers to the XML utilities. * src/game-server/itemmanager.cpp, src/game-server/item.hpp: Added "item types" hairsprite and racesprite and made the server ignore items of these types so it stops complaining about these entries (which only concern the client) being incomplete. * src/defines.h, src/game-server/monstermanager.cpp, src/game-server/monster.cpp, src/game-server/monster.hpp: Implemented getting attack distance and attack properties from monsters.xml. * src/util/xml.cpp, src/util/xml.hpp, src/game-server/item.hpp, src/game-server/item.cpp, src/game-server/monstermanager.cpp, src/game-server/itemmanager.cpp: Moved the functions which translate strings into enumerations from the XML library into the item and monstermanager modules and reimplemented them using std::maps. 2008-02-20 Philipp Sehmisch * src/game-server/monster.cpp: Fixed a bug which made wandering monsters prefer walking northwest. 2008-02-13 Philipp Sehmisch * src/game-server/monstermanager.cpp: Movement speed in monsters.xml is now interpreted as pixels per second instead of tiles per second. * src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/monstermanager.cpp: Implemented monster mutation. 2008-02-12 Philipp Sehmisch * src/gameserver/monster.cpp, src/game-server/monster.hpp, src/game-server/monstermanager.cpp: Monster speed and size is now read from monsters.xml. 2008-02-07 Philipp Sehmisch * src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/monstermanager.cpp: Parts of monster behavior are now read from monsters.xml. Warnings during monster parsing now include the name of the monster. 2008-02-07 Bjørn Lindeijer * src/scripting/lua.cpp: Fail gracefully on invalid monster IDs, don't leak monsters when called without a map and handle insertion failures. 2008-02-06 Philipp Sehmisch * src/scripting/lua.cpp: Implemented LUA callback function for creating monsters. * data/test.lua: Added NPC for testing scripted monster creation. 2008-02-05 Philipp Sehmisch * src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/monstermanager.cpp: Monster base attributes and experience reward are now read from monsters.xml. 2008-01-28 Philipp Sehmisch * src/account-server/accounthandler.cpp, src/account-server/character.cpp, src/account-server/character.hpp, src/account-server/dalstorage.cpp, src/account-server/dalstoragesql.hpp, src/dal/sqlitedataprovider.cpp, src/defines.h, src/game-server/accountconnection.cpp, src/game-server/being.hpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/gamehandler.cpp, src/game-server/item.cpp, src/game-server/itemmanager.cpp, src/game-server/monster.cpp, src/game-server/monster.hpp, src/serialize/characterdata.hpp: Implemented skill system, level gain and attribute raising. Using 16 bit instead of 8 bit for representing the character level. Updated weapon skill selection to latest design decisions. * src/game-server/monster.cpp: Monster attack animation is now started in the moment the monster decides to attack and not the moment damage is calculated. This makes it easier for the player to react on the monsters attacks and makes the combat behavior of monsters look more natural. 2008-01-24 Philipp Sehmisch * src/game-server/state.cpp: The direction of attacking beings is now transmitted together with attack messages (has already been implemented on the client-side but the server-sided part has been forgotten somehow). 2008-01-23 Philipp Sehmisch * src/game-server/being.cpp: Fixed "immortal monster" bug. * src/game-server/main-game.cpp: Made the gameserver work more and complain less about not having enough time. 2008-01-10 Philipp Sehmisch * src/game-server/inventory.cpp, src/game-server/item.hpp, src/game-server/itemmanager.cpp: Item types and weapon types are now identified by name instead of numbers in the items.xml. Cleaned out some nonsensical weapon types. * src/serialize/characterdata.hpp, src/game-server/character.cpp: Fixed account server compiling. 2008-01-07 Philipp Sehmisch * src/defines.h, src/game-server/being.cpp, src/game-server/being.hpp, src/game-server/character.cpp, src/game-server/inventory.cpp, src/game-server/itemmanager.cpp, src/game-server/monster.cpp, src/serialize/characterdata.hpp: Implemented some of the game mechanics we decided to use. * src/game-server/character.cpp: The clients now only receive attribute change messages when the attribute actually changed. * src/game-server/being.cpp, src/beinggame-server/.hpp, src/game-server/character.cpp, src/game-server/monster.cpp, src/game-server/monster.hpp: Player characters and monsters now attack with different ranges and angles (preparation for getting attack zone from weapon properties or monster database). 2007-12-18 Philipp Sehmisch * src/account-server/dalstorage.cpp, src/account-server/dalstoragesql.hpp, src/defines.h, src/game-server/itemmanager.cpp: Updated attribute system to the latest design decisions (removed charisma, kept agility in) 2007-11-19 Eugenio Favalli * accountserver.cbp, gameserver.cbp, src/utils/timer.cpp, src/utils/wingettimeofday.cpp, src/utils/wingettimeofday.h: Removed useless win32 implementation of gettimeofday. 2007-11-15 Guillaume Melquiond * data/scripts/libtmw.lua: Added do_wait helper function. 2007-11-13 Guillaume Melquiond * src/utils/trim.hpp, src/Makefile.am: Added trim function. * src/game-server/mapreader.cpp: Trimed script filenames from spaces. * src/game-server/spawnarea.cpp: Improved warning message on spawning. 2007-10-27 Guillaume Melquiond * src/dal/recordset.cpp, src/utils/zlib.cpp, src/scripting/script.cpp, src/utils/stringfilter.cpp, src/chat-server/chatchannel.cpp, src/net/messagein.cpp, src/net/messageout.cpp, src/game-server/map.cpp, src/net/connectionhandler.cpp, src/game-server/mapreader.cpp, src/game-server/command.cpp, src/game-server/resourcemanager.cpp, src/game-server/quest.cpp: Fixed missing dependencies and changed some storage qualifiers, so that it compiles with GCC 4.3. 2007-10-18 Guillaume Melquiond * data/items.xml, data/monsters.xml: Superseded by client files. * src/game-server/itemmanager.cpp: Removed compatibility hack. 2007-09-27 Eugenio Favalli * accountserver.cbp, data/monsters.xml, gameserver.cbp, src/game-server/monstermanager.cpp: Ported monster database. 2007-09-23 Guillaume Melquiond * src/game-server/state.hpp, src/game-server/state.cpp: Changed delayed events to an explicit interface. * src/scripting/lua.cpp, src/game-server/command.cpp, src/game-server/state.cpp, src/game-server/spawnarea.cpp, src/game-server/state.hpp, src/game-server/monster.cpp, src/game-server/trigger.cpp: Updated to new interface. * src/account-server/accounthandler.cpp, src/defines.h, src/chat-server/chathandler.cpp: Merged time-out messages with response to connection messages. * src/game-server/state.cpp, src/game-server/state.hpp: Modified interface to deal with failure to insert objects. * src/scripting/lua.cpp, src/game-server/testing.cpp, src/game-server/command.cpp, src/game-server/gamehandler.cpp: Taken insertion failures into account. * src/account-server/accounthandler.hpp, src/account-server/accounthandler.cpp, src/account-server/serverhandler.cpp, src/account-server/serverhandler.hpp: Simplified interface of connection handlers. Moved all the implementation details outside the header file. * src/account-server/main-account.cpp: Updated to new interface of connection handlers. 2007-09-22 Guillaume Melquiond * src/chat-server/chatchannelmanager.hpp, src/chat-server/chathandler.hpp: Fixed header dependencies. * src/configuration.cpp, src/configuration.h: Changed to namespace. Removed listeners. Simplified property handling. Moved to common/. * src/resourcemanager.cpp, src/resourcemanager.h: Changed to namespace. Removed dead code. Moved to game-server/. * src/account-server/dalstorage.cpp, src/utils/stringfilter.cpp, src/account-server/accounthandler.cpp, src/utils/stringfilter.h, src/game-server/accountconnection.cpp: Updated to new configuration. * src/scripting/script.cpp, src/game-server/mapreader.cpp, src/game-server/mapmanager.cpp, src/game-server/monstermanager.cpp, src/game-server/itemmanager.cpp: Updated to new resource manager. * src/Makefile.am, src/account-server/main-account.cpp, src/game-server/main-game.cpp: Updated. 2007-09-16 Guillaume Melquiond * src/game-server/command.cpp: Removed unused argument name. * src/defines.h: Added packet from for sending server statistics. * src/account-server/serverhandler.hpp, src/account-server/accounthandler.cpp: Cleaned function prototypes. * src/chat-server/chathandler.hpp: Fixed missing header. * src/account-server/serverhandler.cpp: Moved map/server data into connection local storage. * src/game-server/accountconnection.cpp, src/game-server/main-game.cpp, src/game-server/accountconnection.hpp: Added statistic sender to game server. * src/account-server/serverhandler.cpp, src/account-server/serverhandler.hpp, src/Makefile.am, src/account-server/main-account.cpp: Added statistic receiver and dumper to account server. 2007-09-10 Eugenio Favalli * accountserver.cbp, gameserver.cbp, src/game-server/spawnarea.cpp: Dimensionless spawn points now spawn over the whole map. * src/game-server/mapreader.cpp, src/game-server/spawnarea.cpp, src/game-server/spawnarea.hpp: Spawn rate and limit are now read from map files and really fixed size of spawn area. * docs/commands.txt: Added first draft of admin/gm commands reference. 2007-08-31 Guillaume Melquiond * configure.ac: Fixed detection of generic lua.pc file. * src/game-server/itemmanager.cpp, src/game-server/itemmanager.hpp, src/game-server/monstermanager.cpp, src/game-server/monstermanager.hpp: Modified loading of reference files, so that it is possible to reload them. * src/game-server/command.cpp: Implemented "reload" remote command. * src/account-server/account.hpp, src/account-server/account.cpp: Simplified character removal. * src/account-server/accountclient.hpp, src/account-server/accounthandler.cpp, src/account-server/accountclient.cpp: Removed selected character from client data. Cleaned account handler. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Added helper for querying existence of usernames. * src/account-server/accounthandler.cpp: Plugged several account leaks on error. * src/defines.h, src/account-server/accounthandler.cpp: Prevented banned users from logging in. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Handled banned database field. * src/game-server/accountconnection.hpp, src/defines.h, src/game-server/accountconnection.cpp, src/account-server/serverhandler.cpp: Added protocol for banning players. * src/game-server/command.cpp: Implemented "ban" remote command. 2007-08-30 Guillaume Melquiond * src/account-server/storage.hpp, src/account-server/storage.cpp, src/account-server/main-account.cpp: Removed abstract Storage. Relied on SQL-based implementation only. * src/account-server/characterdata.hpp, src/account-server/characterdata.cpp: Renamed class and files to just Character. * src/utils/countedptr.h: Got rid of reference-counted pointers. * src/account-server/dalstorage.hpp, src/account-server/dalstorage.cpp: Fixed permanent memory usage for accounts and characters loaded once. * src/account-server/serverhandler.cpp: Improved robustness to game server messages. * src/chat-server/chathandler.cpp, src/account-server/guildmanager.cpp, src/chat-server/chatchannelmanager.cpp, src/account-server/account.hpp, src/account-server/accounthandler.hpp, src/account-server/guild.cpp, src/account-server/accountclient.hpp, src/account-server/guild.hpp, src/account-server/guildmanager.hpp, src/account-server/account.cpp, src/account-server/serverhandler.hpp, src/Makefile.am, src/account-server/dalstoragesql.hpp, src/account-server/accounthandler.cpp, src/account-server/accountclient.cpp: Fixed fallout from previous patches. 2007-08-29 Guillaume Melquiond * data/scripts/libtmw.lua: Fixed race condition between quest_reply and npc_next. * src/game-server/command.cpp, src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp: Completed handler for admin commands, so that they can also touch local players. * src/game-server/comand.cpp: Implemented "goto" and "recall" remote commands. * src/Makefile.am, src/game-server/deathlistener.hpp, src/game-server/eventlistener.hpp: Replaced event system. * src/games-server/thing.hpp, src/game-server/thing.cpp: Placed listener handling at the lowest level. Added "inserted" and "removed" event. * src/game-server/being.hpp, src/game-server/being.cpp, src/game-server/character.hpp, src/game-server/character.cpp: Added "died" and "disconnected" event. * src/game-server/state.cpp, src/game-server/gamehandler.cpp: Added event notification. * src/game-server/spawnarea.cpp, src/game-server/spawnarea.hpp, src/game-server/monster.cpp, src/game-server/monster.hpp: Modified to use the new event system. * src/game-server/quest.cpp: Fixed event listener on character removal and/or disconnection. * src/account-server/account.hpp, src/account-server/dalstorage.cpp, src/account-server/accounthandler.cpp, src/account-server/account.cpp: Fixed account levels not being loaded from the database. * src/game-server/command.cpp: Fixed level checking. 2007-08-28 Guillaume Melquiond * src/account-server/storage.hpp, src/account-server/dalstoragesql.hpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Implemented storing and recovering quest variables from database. * src/account-server/serverhandler.cpp, src/defines.h, src/game-server/accountconnection.cpp, src/game-server/accountconnection.hpp: Added protocol for sending quest variables between servers. * src/game-server/quest.cpp, src/game-server/quest.hpp, src/game-server/character.hpp, src/Makefile.am: Added async handling of quest variables. * src/scripting/lua.cpp, data/scripts/libtmw.lua: Added helper functions for querying quest variables from Lua scripts. Reworked state machine of the NPC support library. * data/test.lua: Modified for testing quest variables. 2007-08-27 Eugenio Favalli * accountserver.cbp, gameserver.cbp, src/game-server/mapreader.cpp, src/game-server/testing.cpp: Enabled loading of npcs and scripts from map files. 2007-08-27 Guillaume Melquiond * src/chat-server/chathandler.hpp, src/chat-server/chatclient.hpp, src/chat-server/chatclient.cpp, src/account-server/account.hpp, src/account-server/account.cpp, src/defines.hpp: Used discontiguous values for account level. * src/account-server/characterdata.cpp, src/game-server/character.hpp, src/serialize/characterdata.hpp, src/account-server/characterdata.hpp: Added serialization of account level. * src/game-server/gamehandler.cpp, src/game-server/command.cpp, src/Makefile.am: Added support for remote commands. * src/game-server/command.cpp: Implemented "warp", "item", "money", "drop", and "spawn" remote commands. * src/game-server/mapreader.cpp: Added support for uncompressed map files and compressed layers. * src/resourcemanager.cpp, src/resourcemanager.h: Added "exists" function to resource manager. * src/game-server/mapmanager.cpp: Used runtime selection of map filename extensions. * data/maps.xml: Removed extensions from map names. 2007-08-20 Bjørn Lindeijer * data/test.lua, data/scripts/libtmw.lua: Defined two helper functions to abstract away money being available under inventory index 0. 2007-08-20 Guillaume Melquiond * src/scripting/script.cpp: Prevented access to uninitialized engines. * configure.ac: Enabled Lua scripting by default. * src/scripting/lua.cpp, data/scripts/libtmw.lua: Removed useless function prefixes. Commented Lua internal variables. 2007-08-19 Guillaume Melquiond * src/account-server/accounthandler.cpp, src/defines.h: Fixed typos. * src/game-server/itemmanager.cpp: Worked around inconsistent spelling. * src/game-server/item.cpp, src/game-server/item.hpp: Added support for equipment modifiers. * src/game-server/inventory.hpp, src/game-server/inventory.cpp: Added sanity checks at initialization. Applied equipment modifiers to character. * src/game-server/being.hpp, src/game-server/being.cpp: Set base element resistance to 100. Added support for temporary modifiers. * src/game-server/character.cpp: Removed redundant updates of attributes. * src/game-server/monster.cpp, src/game-server/character.hpp: Cleaned fallout due to above patches. * src/scripting/lua.cpp, data/test.lua: Allowed Lua scripts to query and change money. * src/game-server/being.cpp, src/game-server/being.hpp: Simplified handling of permanent modifiers. * src/game-server/item.cpp, src/game-server/item.hpp, src/game-server/gamehandler.cpp: Implemented use of items. * src/game-server/itemmanager.cpp: Fixed lifetime value. 2007-08-18 Guillaume Melquiond * src/serialize/characterdata.hpp, src/account-server/dalstorage.cpp, src/account-server/characterdata.cpp, src/game-server/spawnarea.cpp, src/account-server/accounthandler.cpp, src/defines.h, src/account-server/characterdata.hpp, src/game-server/state.cpp, src/game-server/being.cpp, src/game-server/monster.cpp, src/game-server/being.hpp, src/game-server/movingobject.hpp, src/game-server/monster.hpp, src/game-server/character.cpp, src/game-server/item.cpp, src/game-server/character.hpp, src/game-server/item.hpp, src/game-server/gamehandler.cpp, src/game-server/object.hpp, src/game-server/accountconnection.cpp, src/game-server/itemmanager.cpp: Removed character statistics from Being. Kept only attributes useful for fighting. Improved combat handling (evade and elements). Added support for weapon characteristics and weapon skills. Added support for attribute modifiers. Cleaned game state handling. 2007-08-17 Guillaume Melquiond * src/scripting/lua.cpp, data/test.lua: Added Lua function for trading between players and NPCs. * src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp, src/game-server/accountconnection.cpp: Handled multiple connections by allowing clients to take over characters. * src/utils/tokencollector.cpp, src/utils/tokencollector.hpp, src/Makefile.am: Simplified TokenCollector and fixed a few bugs. Moved its implementation outside the header file. * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp, src/defines.h: Used TokenCollector to manage cookies in ChatHandler. 2007-08-16 Guillaume Melquiond * data/scripts/libtmw.lua: Improved NPC state machine, so that the engine avoids waiting, once the last message has been sent. 2007-08-15 Guillaume Melquiond * src/scripting/script.cpp, src/scripting/script.hpp: Added helper functions for loading files and NPCs as scripts. * src/scripting/lua.cpp, data/scripts/libtmw.lua: Put the Lua helpers into a separate library automatically loaded into new contexts. * src/game-server/testing.cpp, data/test.lua: Updated testing files. 2007-08-14 Guillaume Melquiond * src/serialize/characterdata.hpp, src/common/inventorydata.hpp, src/account-server/accounthandler.hpp, src/game-server/character.cpp, src/account-server/dalstorage.cpp, src/game-server/character.hpp, src/account-server/characterdata.cpp, src/account-server/accounthandler.cpp, src/account-server/characterdata.hpp: Handled money as part of the inventory. * src/game-server/inventory.hpp, src/game-server/inventory.cpp, src/game-server/buysell.cpp: Added money accessor to the inventory manager. * src/game-server/inventory.cpp: Fixed incorrect update message when merging item stacks and removing one of them. * src/game-server/character.cpp, src/game-server/buysell.cpp: Ensured cancelations do not enter an infinite loop of death. * src/defines.h, src/game-server/trade.cpp, src/game-server/trade.hpp, src/game-server/gamehandler.cpp: Involved money in trade handler. * src/scripting/lua.cpp, src/scripting/script.cpp, src/scripting/script.hpp, src/game-server/testing.cpp: Made it possible to load scripts from strings instead of files. 2007-08-13 Eugenio Favalli * accountserver.cbp, gameserver.cbp: Updated project files and added scripting engine. 2007-08-13 Guillaume Melquiond * src/bindings.i, src/script-squirrel.cpp, src/script-squirrel.h, src/skill.cpp, src/skill.h, scripts/init.rb: Deleted obsolete files. * configure.ac, src/Makefile.am, src/account-server/main-account.cpp, src/game-server/main-game.cpp, src/dal/sqlitedataprovider.cpp, src/dal/mysqldataprovider.cpp, src/account-server/dalstorage.cpp, src/account-server/dalstoragesql.hpp, src/dal/dataproviderfactory.cpp, src/account-server/accounthandler.cpp: Cleaned configuration. Removed obsolete SQL tables. * src/defines.h, src/Makefile.am, src/game-server/trade.cpp, src/game-server/trade.hpp, src/game-server/state.cpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/gamehandler.cpp, src/game-server/buysell.cpp, src/game-server/buysell.hpp: Implemented buy/sell handler. * src/scripting/lua.cpp, data/test.lua: Added a bit of buy/sell testing code. 2007-08-11 Guillaume Melquiond * src/scripting/lua.cpp: Added Lua functions for handling inventories. * data/test.lua: Tested them. 2007-08-10 Guillaume Melquiond * data/test.lua: Added Lua helper functions to simplify scripts. * src/game-server/testing.cpp, src/game-server/state.cpp, src/game-server/mapcomposite.cpp, src/game-server/mapcomposite.hpp: Associated scripts to maps. * src/scripting/lua.cpp, data/test.lua: Added Lua function for warping people around. Removed colon in NPC choice messages. 2007-08-09 Guillaume Melquiond * src/game-server/inventory.cpp: Fixed item move toward a not yet existing slot. * src/skill.h, src/net/connectionhandler.cpp: Removed useless references to script header. * src/script.cpp, src/script.h: Removed old scripting interface. * src/resourcemanager.cpp: Allowed binary files to be used as strings. * src/scripting/script.cpp, src/scripting/script.hpp: Added new scripting interface. * src/configure.ac, src/Makefile.am, src/scripting/lua.cpp: Added Lua scripting engine. * src/game-server/npc.cpp, src/game-server/npc.hpp, src/game-server/testing.cpp: Converted NPC class to scripting engine. * data/test.lua: Converted testing NPC to Lua. 2007-08-08 Guillaume Melquiond * src/net/messageout.hpp, src/net/messageout.cpp: Changed argument types to generic int. * src/game-server/inventory.cpp, src/game-server/inventory.hpp, src/defines.h, src/game-server/gamehandler.cpp: Added protocol for moving objects between slots of inventory. * src/game-server/state.cpp: Fixed position of the cleaning bit for looks, so that it actually fits into network data. 2007-08-01 Guillaume Melquiond * src/game-server/itemmanager.cpp: Ensured equipment items cannot stack. * src/game-server/inventory.hpp, src/game-server/inventory.cpp: Improved equipment change so that no empty slot is used, unless really needed. Ensured equip and unequip do not modify inventory when they fail in non-delayed mode. Simplified and robustified code. Added notification on changes of looks. 2007-07-31 Guillaume Melquiond * src/defines.h, src/game-server/inventory.hpp, src/game-server/gamehandler.cpp, src/game-server/inventory.cpp: Added protocol for removing equipment. Compressed inventory message a bit. 2007-07-29 Guillaume Melquiond * src/game-server/mapreader.cpp, src/game-server/map.cpp, src/game-server/map.hpp, src/game-server/mapcomposite.cpp: Revert to the old pathfinding system without collision with beings, as the new one is too cpu intensive. * src/net/messageout.hpp, src/net/messageout.cpp: Allowed cancellation of outgoing messages. * src/game-server/inventory.hpp, src/game-server/inventory.hpp: Allowed delayed changes of inventories. * src/defines.h, src/Makefile.am, src/game-server/trade.cpp, src/game-server/trade.hpp, src/game-server/state.cpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/gamehandler.cpp: Added support for trading. 2007-07-28 Guillaume Melquiond * src/account-server/storage.hpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Stored channel IDs as unsigned data. * src/src/account-server/dalstoragesql.hpp, src/chat-server/chatchannel.hpp: Assumed channels with password are private. * src/chat-server/chatclient.hpp, src/chat-server/chatchannel.cpp: Added to client the channels it is connected to. * src/chat-server/chatchannelmanager.cpp, src/chat-server/chathandler.cpp, src/account-server/serverhandler.cpp, src/chat-server/chatchannelmanager.hpp: Replaced user names by client pointers when handling channels, in order to reduce lookups in ChatHandler::sendInChannel. 2007-07-25 Guillaume Melquiond * src/game-server/movingobject.hpp: Added missing accessor, compacted object, and used generic integer in signatures. * src/defines.h, src/game-server/state.cpp: Added being speed to protocol. * src/game-server/spawnarea.cpp, src/game-server/accountconnection.cpp: Halved speed of maggots. Reduced speed of characters, so that they donot travel much more than one tile per data round-trip. 2007-07-25 Bjørn Lindeijer * src/chat-server/chathandler.hpp, src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannel.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/chatchannel.hpp, src/chat-server/chathandler.cpp, src/account-server/serverhandler.cpp, src/account-server/dalstorage.cpp: Removed a host of unnecessary methods from ChatChannelManager. * AUTHORS: Added David Athay. 2007-07-23 Guillaume Melquiond * src/game-server/monster.hpp, src/game-server/state.cpp: Sent proper monster identifiers. * src/resourcemanager.cpp: Enabled symlinks to data directory. * src/game-server/accountconnection.cpp, src/game-server/gamehandler.hpp, src/game-server/accountconnection.hpp, src/account-server/serverhandler.cpp: Commented out unused guild code. It should not have been handled by the game server anyway. * src/game-server/mapcomposite.hpp: Removed slow member, if it were to be implemented. * src/game-server/gamehandler.cpp, src/game-server/npc.hpp, src/game-server/state.cpp, src/Makefile.am, src/defines.h: Added NPC support. * src/game-server/testing.cpp: Added a test NPC. 2007-07-20 Bjørn Lindeijer * src/chat-server/chatclient.hpp, src/chat-server/chathandler.cpp, src/Makefile.am: Separated ChatClient class from chathandler.cpp. * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp: Cleaned up handling of messages, defining a method for each handled message. * src/account-server/guildmanager.cpp, src/account-server/guild.cpp, src/account-server/guildmanager.hpp, src/account-server/guild.hpp: Some code formatting cleanup and corrected headers. 2007-07-17 Bjørn Lindeijer * src/chat-server/chathandler.hpp, src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannel.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/chatchannel.hpp, src/chat-server/chathandler.cpp, src/account-server/serverhandler.cpp, src/account-server/dalstorage.cpp, src/game-server/accountconnection.hpp: Some more cleanup of chat handler related code. 2007-07-17 Eugenio Favalli * gameserver.cbp, src/game-server/mapmanager.cpp, src/game-server/mapreader.cpp, src/game-server/mapreader.hpp, src/game-server/testing.cpp, src/utils/xml.hpp: Implemented loading of warp and spawn areas from map files. 2007-07-15 Bjørn Lindeijer * src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/chathandler.cpp: Some cleaning up of the chat channel manager code. 2007-07-14 Guillaume Melquiond * src/defines.h, src/game-server/state.cpp: Reduced size of equipment packets. Fixed packet sending on object distance change. 2007-07-12 Guillaume Melquiond * src/game-server/item.hpp, src/game-server/inventory.cpp, src/game-server/inventory.hpp: Fixed naming of equipment slot. * src/game-server/object.hpp: Added update flag for looks. * src/game-server/itemmanager.cpp: Added field loaded for sprite_id. * src/defines.h, src/game-server/state.cpp: Added support for visible equipment. 2007-07-08 Guillaume Melquiond * src/game-server/being.cpp: Lowered messages to debug level. * src/game-server/deathlistener.hpp: Made members non-abstract, so that inheritors do not have to define them when they do not use them. * data/monsters.xml: Added sample monster database. * src/game-server/monstermanager.cpp, src/game-server/main-game.cpp, src/game-server/monstermanager.hpp: Added manager for monster species. * src/game-server/spawnarea.cpp, src/game-server/spawnarea.hpp, src/game-server/testing.cpp: Specified the monster specy being spawned. * src/game-server/monster.cpp, src/game-server/monster.hpp: Added monster drops. * src/game-server/gamehandler.cpp: Update account database on unexpected client disconnection. 2007-07-07 Guillaume Melquiond * src/common/inventorydata.hpp: Fixed missing include. * src/game-server/mapcomposite.cpp, src/game-server/mapcomposite.hpp: Moved implementation details out of the header. * src/game-server/mapmanager.cpp, src/game-server/mapmanager.hpp, src/game-server/state.cpp, src/game-server/state.hpp: Merged LoadedMap and MapComposite classes. Delegated handling of composite maps to the map manager. * src/game-server/testing.cpp, src/game-server/thing.hpp, src/game-server/spawnarea.cpp, src/game-server/spawnarea.hpp, src/game-server/movingobject.cpp, src/game-server/monster.cpp, src/game-server/character.cpp, src/game-server/character.hpp, src/game-server/trigger.cpp, src/game-server/trigger.hpp, src/gamehandler.cpp: Simplified code by using map pointers only, instead of using both map IDs and map pointers. * src/game-server/main-game.cpp, src/game-server/inventory.cpp, src/game-server/itemmanager.cpp, src/game-server/itemmanager.hpp, src/game-server/mapmanager.cpp, src/game-server/mapmanager.hpp, src/game-server/state.cpp, src/game-server/state.hpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.cpp: Changed singleton managers from classes to namespace interfaces. Removed global pointers. Moved private members to implementation files. * src/game-server/state.cpp, src/game-server/being.cpp, src/game-server/movingobject.cpp, src/game-server/movingobject.hpp: Fixed teleportation hack caused by caching of pathfinder results. 2007-07-03 Guillaume Melquiond * src/account-server/dalstorage.cpp: Added error messages for failed SQL requests when retrieving character. Added check for failed character when retrieving account. Added check for corrupted inventory. 2007-07-02 Guillaume Melquiond * src/account-server/storage.cpp, src/account-server/storage.hpp: Moved trivial accessors to header file. Removed C-like prototypes and harmful exception specifications. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Factored duplicate query code. Removed C-like prototypes and harmful exception specifications. * src/account-server/dalstorage.cpp: Added support for loading inventory from database. Fixed mysqlism for multi-insertion. 2007-07-02 Eugenio Favalli * accountserver.cbp, gameserver.cbp: Updated project files. 2007-07-01 Guillaume Melquiond * src/abstractcharacterdata.cpp, src/abstractcharacterdata.hpp, src/serialize/characterdata.hpp, src/account-server/serverhandler.cpp, src/game-server/accountconnection.cpp: Removed multiple inheritance mechanism for serialization. Replaced it by a less cumbersome template interface. * src/common/inventorydata.hpp: Set inventory structures in a directory common to both servers. * src/account-server/dalstorage.cpp: Commented out unused code. * src/Makefile.am: Taken new files into account. * src/account-server/characterdata.cpp, src/game-server/character.cpp, src/account-server/characterdata.hpp, src/game-server/character.hpp: Removed new inventory code, as it was not doing anything. * src/inventory.cpp: Reverted to the old code, as it was working just fine. * src/game-server/state.cpp: Added assertions to detect insertion and removal of objects at updating time. * src/game-server/accountconnection.cpp, src/game-server/character.cpp, src/defines.h, src/account-server/characterdata.hpp, src/account-server/characterdata.cpp, src/serialize/characterdata.hpp: Removed automatic (de)serialization of ID, so that it can be properly used, and of name, so that it does not waste bandwidth. * src/account-server/serverhandler.cpp: Reverted to the scheme based on character ID, so that runtime character data are persistent again. * src/account-server/dalstoragesql.hpp, src/account-server/dalstorage.cpp: Added support for storing inventory in database. 2007-06-28 Philipp Sehmisch * src/defines.h, src/game-server/state.cpp: Attack direction is now included in being attack messages. * src/game-server/accountconnection.cpp: Player characters are now spawned with full hit points (todo: save current hit points in database when a character logs out so that players can't heal by logging in and out). * src/game-server/being.cpp, src/game-server/deathlistener.hpp, src/game-server/spawnarea.hpp: Death listeners are now informed when a being object is deleted. * src/game-server/being.hpp: Being::damage() now returns the resulting loss of hit points. * src/game-server/character.cpp: Characters hit circle size is now initialized properly. * src/game-server/map.cpp, src/game-server/map.hpp, src/game-server/mapcomposite.cpp, src/game-server/mapcomposite.hpp, src/game-server/mapreader.cpp, src/state.cpp: Pathfinding now takes the tiles that are occupied by beings into account. Map::find_path() now has an optional argument that sets the maximum path cost. * src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/spawnarea.cpp, src/game-server/thing.hpp: Implemented monster attacking and provisoric monster AI. Monster now chase and attack players that hurt them. * src/game-server/spawnarea.cpp: Monsters are no longer spawned on unwalkable tiles. 2007-06-28 Guillaume Melquiond * src/game-server/spawnarea.cpp: Delegated creature insertion to the State class so that it does not disturb object updating. 2007-06-26 Eugenio Favalli * accountserver.cbp: Updated project file. 2007-06-25 Eugenio Favalli * accountserver.cbp, gameserver.cbp: Fixed include directories and updated project files. 2007-06-16 Guillaume Melquiond * src/utils/mathutils.cpp: Fixed miscompilation of rsqrt due to type aliasing and sped up sqrt. * src/game-server/character.cpp: Fixed initial attribute status. 2007-04-28 David Athay * src/chat-server/chathandler.cpp, src/account-server/guildmanager.cpp: Fixed bug where the guild creator was never added to the guild. 2007-04-22 David Athay * src/chat-server/chathandler.cpp, src/account-server/guildmanager.cpp, src/account-server/guildmanager.hpp, src/account-server/serverhandler.cpp, src/account-server/storage.hpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/defines.h, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp, src/game-server/accountconnection.hpp: Added quitting guilds. 2007-04-11 Philipp Sehmisch * src/game-server/being.cpp: Using effective attributes instead of base attributes for damage calculation. 2007-04-05 David Athay * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp, src/account-server/guildmanager.cpp, src/account-server/guildmanager.hpp, src/defines.h: Added user joining and leaving, plus stopped non guild members joining guild channels. 2007-03-31 Bjørn Lindeijer * src/Makefile.am, src/game-server/testing.cpp, src/game-server/spawnarea.cpp, src/game-server/state.hpp, src/game-server/spawnarea.hpp, src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/trigger.hpp: Made a start with having monsters spawn using a SpawnArea. * src/net/messagein.hpp, src/net/messagein.cpp, src/net/messageout.hpp, src/net/messageout.cpp, src/net/connectionhandler.cpp, src/net/netcomputer.cpp: Moved writing of messages into MessageIn and MessageOut and tweaked the printing of the message ID. * src/Makefile.am, src/game-server/spawnarea.cpp, src/game-server/being.cpp, src/game-server/spawnarea.hpp, src/game-server/monster.cpp, src/game-server/being.hpp, src/game-server/movingobject.hpp, src/game-server/monster.hpp, src/game-server/deathlistener.hpp: Added a DeathListener interface, which the SpawnArea now uses to get notified about dying beings, so that it knows when to spawn more. * src/game-server/spawnarea.cpp, src/game-server/spawnarea.hpp: Took into account spawn rate. 2007-03-30 Bjørn Lindeijer * src/Makefile.am, src/game-server/thing.hpp, src/game-server/movingobject.cpp, src/game-server/being.hpp, src/game-server/movingobject.hpp, src/game-server/trigger.cpp, src/game-server/object.cpp, src/game-server/trigger.hpp, src/game-server/object.hpp: Separated the Thing and MovingObject classes from the Object module. 2007-03-30 Philipp Sehmisch * src/controller.cpp, src/controller.h, src/game-server/monster.cpp, src/game-server/monster.hpp, src/game-server/testing.cpp, src/Makefile.am: Renamed "Controlled" to "Monster" and moved it into the game-server directory. 2007-03-30 David Athay * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/account-server/accounthandler.hpp, src/account-server/guildmanager.cpp, src/account-server/guildmanager.hpp, src/account-server/guild.cpp, src/account-server/guild.hpp, src/account-server/serverhandler.cpp, src/account-server/serverhandler.hpp, src/account-server/storage.hpp, src/account-server/storage.cpp, src/account-server/characterdata.hpp, src/game-server/accountconnection.cpp, src/defines: Added rejoining guilds the player belongs to. * src/account-server/serverhandler.hpp, src/chat-server/chathandler.cpp: Player now joins guild channels upon connecting to the chat server. * src/acccount-server/dalstorage.cpp: Fixed bug with creating guilds. 2007-03-25 David Athay * src/chat-server/chathandler.cpp, src/chat-server/chathandler.hpp, src/account-server/serverhandler.cpp, src/account-server/serverhandler.hpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/defines.h, src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp, src/game-server/accountconnection.cpp: Implemented inviting users to guilds. 2007-03-23 Eugenio Favalli * tmw.cbp: Updated and fixed Code::Blocks project files. 2007-03-23 Bjørn Lindeijer * src/point.h, src/configuration.cpp, src/account-server/accounthandler.cpp, src/account-server/accountclient.cpp, src/utils/stringfilter.cpp, src/abstractcharacterdata.hpp, src/game-server/being.cpp, src/game-server/character.cpp, src/game-server/character.hpp: Mostly fixed some compilation issues. 2007-03-23 Philipp Sehmisch * src/account-server/accounthandler.cpp, src/defines.h, src/game-server/character.cpp, src/game-server/character.hpp src/game-server/state.cpp: Implemented communication of attribute changes from server to client. * src/game-server/itemmanager.cpp: Another case of inconsistent order of attributes. 2007-03-22 Philipp Sehmisch * src/account-server/dalstorage.cpp: Fixed a bug that caused the character attributes to become mixed up. 2007-03-20 Philipp Sehmisch * src/account-server/accounthandler.cpp, src/defines.h: Removed check for difference between lowest and highest attribute at char creation. * src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Unified order of basic attributes. 2007-03-20 Rogier Polak * src/account-server/accounthandler.cpp, src/utils/tokencollector.hpp, src/game-server/gamehandler.cpp: Corrected a bug, that occurred when connecting to the game-server. Made member functions of TokenCollector less fragile. 2007-03-19 Philipp Sehmisch * src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp, src/utils/tokendispenser.hpp, src/account-server/accountclient.cpp, src/account-server/accounthandler.cpp: Fixed two compiler warnings and corrected a spelling error. 2007-03-19 David Athay * src/Makefile.am, src/account-server/accounthandler.cpp, src/account-server/characterdata.hpp, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/main-account.cpp, src/account-server/serverhandler.cpp, src/account-server/serverhandler.hpp, src/account-server/storage.hpp, src/chat-server/chathandler.cpp, src/account-server/guild.cpp, src/account-server/guild.h, src/account-server/guildmanager.cpp, src/account-server/guildmanager.hpp, src/chat-server/chathandler.hpp, src/defines.h, src/game-server/accountconnection.cpp, src/game-server/accountconnection.hpp, src/game-server/gamehandler.cpp, src/game-server/gamehandler.hpp, src/game-server/mapmanager.cpp, src/game-server/mapmanager.hpp, src/net/netcomputer.cpp : Add first stage of guild system. 2007-03-18 Rogier Polak * src/net/netcomputer.cpp: Corrected the debug message for big-endian architectures. * src/defines.h, src/Makefile.am, src/account-server/accountclient.hpp, src/account-server/accountclient.cpp, src/account-server/accounthandler.hpp, src/account-server/accounthandler.cpp, src/account-server/serverhandler.hpp, src/account-server/serverhandler.cpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.hpp, src/game-server/gamehandler.cpp, src/utils/tokencollector.hpp: Added a TokenCollector class, which matches tokens used for moving clients between servers. Improved the handling of connecting clients for the account-server. 2007-03-15 Philipp Sehmisch * src/account-server/accounthandler.cpp: Set the default map position of new characters to a value that makes more sense. * src/defines.h, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp: Implemented new basic attribute system. * src/controller.cpp, src/controller.hpp, src/defines.h, src/game-server/being.cpp, src/game-server/being.hpp, src/game-server/character.cpp, src/game-server/character.hpp, src/gameserver/item.hpp, src/gameserver/itemmanager.hpp, src/gameserver/testing.cpp: Removed attribute modifiers, unified basic and derived attributes, storing attributes in a vector, renamed some attribute identifiers, removed identifiers for derived attributes that aren't needed yet. 2007-03-14 Rogier Polak * src/abstractcharacterdata.hpp, src/abstractcharacterdata.cpp, src/defines.h, src/Makefile.am, src/playerdata.hpp, src/playerdata.cpp, src/account-server/accounthandler.cpp, src/account-server/characterdata.hpp, src/account-server/characterdata.cpp, src/account-server/dalstorage.cpp, src/account-server/serverhandler.cpp, src/game-server/accountconnection.hpp, src/game-server/accountconnection.cpp, src/game-server/being.hpp, src/game-server/being.cpp, src/game-server/character.hpp, src/game-server/character.cpp, src/game-server/gamehandler.hpp, src/game-server/gamehandler.cpp, src/game-server/inventory.hpp, src/game-server/inventory.cpp, src/game-server/item.hpp, src/game-server/item.cpp, src/game-server/itemmanager.cpp, src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp, src/game-server/object.hpp, src/game-server/player.hpp, src/game-server/player.cpp, src/game-server/state.hpp, src/game-server/state.cpp, src/game-server/trigger.cpp: Renamed the Player class to Character, which now inherits from Being and AbstractCharacterData. (Changed as little as possible of basic damage calculation code) 2007-03-11 Philipp Sehmisch * src/controller.cpp, src/controller.h, src/gameserver/being.cpp, src/gameserver/being.hpp, src/gameserver/item.hpp, src/gameserver/itemmanager.cpp, src/gameserver/player.cpp, src/gameserver/player.hpp, src/gameserver/testing.cpp: Implemented stat handling infrastructure and basic damage calculation. src/gameserver/being.cpp: Increased attack zone (Sorry, I couldn't hit nothing and that annoyed me during testing) 2007-03-10 Rogier Polak * src/Makefile.am, src/account-server/accounthandler.cpp, src/account-server/main-account.cpp, src/account-server/serverhandler.cpp, src/chat-server/chathandler.cpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.cpp, src/game-server/main-game.cpp, src/utils/tokendispenser.hpp, src/utils/tokendispenser.cpp: Added a utility function for creating magic_tokens. * src/utils/processorutils.hpp, src/utils/processorutils.cpp, src/Makefile.am, src/account-server/main-account.cpp, src/game-server/main-game.cpp: Added a utils::processor namespace and a function to determine if, the processor the program is running on, is little-endian or big-endian. * src/net/connectionhandler.hpp, src/net/connectionhandler.cpp, src/net/netcomputer.cpp: Corrected the output of the overloaded operator << of the NetComputer class. 2007-03-05 Rogier Polak * src/defines.h, src/Makefile.am, src/abstractcharacterdata.hpp, src/abstractcharacterdata.cpp, src/account-server/account.hpp, src/account-server/account.cpp, src/account-server/accountclient.hpp src/account-server/accountclient.cpp, src/account-server/accounthandler.cpp, src/account-server/characterdata.hpp, src/account-server/characterdata.cpp, src/account-server/dalstorage.hpp, src/account-server/dalstorage.cpp src/account-server/dalstoragesql.hpp, src/account-server/serverhandler.hpp, src/account-server/serverhandler.cpp, src/account-server/storage.hpp src/game-server/accountconnection.cpp: Added an abstract base class for characterdata, in order to use the same serialize and deserialize functions on both the accountserver and the gameserver. Added the CharacterData class to the accountserver, a specialisation of characterdata for the accountserver. Renamed (raw)stats to attributes. * src/point.h, src/controller.cpp, src/game-server/testing.cpp, src/game-server/state.cpp: Added two constructors to the Point class. * src/utils/wingettimeofday.h, src/utils/timer.h: Set svn properties. * src/game-server/mapcomposite.cpp: Cleaned up a double deletion. * src/game-server/item.hpp: Added the member spriteId. * src/account-server/main-account.cpp, src/game-server/main-game.cpp: Modified the default log files (primarily for development purposes). 2007-03-03 Bjørn Lindeijer * src/utils/mathutils.cpp, src/utils/mathutils.h, src/game-server/collisiondetection.hpp, src/game-server/collisiondetection.cpp: Use M_PI_2 instead of acos(0.0f) and FLT_MAX instead of 1.0E40f (which exceeded the maximum float value). Some cosmetics (whitespace and declaring variables where they are used). 2007-03-03 Rogier Polak * src/utils/mathutils.h, src/utils/mathutils.cpp, src/utils/fastsqrt.h, src/Makefile.am, src/game-server/main-game.cpp: Moved math utility functions to the namespace utils::math, added cached trigonomic functions. * src/game-server/collisiondetection.hpp, src/game-server/being.cpp, src/game-server/collisiondetection.cpp: Implemented an alternate collision-detection function, for disks and circle-sectors. 2007-03-03 Philipp Sehmisch * src/controller.cpp, src/controller.h, src/defines.h, src/gameserver/being.cpp, src/gameserver/being.hpp, src/gameserver/gamehandler.cpp, src/gameserver/object.hpp, src/gameserver/player.cpp, src/gameserver/player.hpp, src/gameserver/state.cpp, src/gameserver/testing.cpp, src/point.h: Implemented being death, removal of dead mobs and sitting. 2007-03-01 Bjørn Lindeijer * src/Makefile.am: Updated with new collision related module. 2007-02-27 Philipp Sehmisch * src/account-server/dalstorage.cpp, src/account-server/dalstoragesql.hpp, src/chat-server/chatchannel.cpp, src/chat-server/chatchannel.hpp, src/chat-server/chatchannelmanager.cpp, src/chat-server/chatchannelmanager.hpp, src/chat-server/chathandler.cpp, src/dal/mysqldataprovider.cpp, src/dal/pqdataprovider.cpp src/dal/qulitedataprovider.cpp, src/defines.h: Implementation of chat channels by Trapdoor. 2007-02-25 Philipp Sehmisch * src/game-server/collisiondetection.cpp, src/game-server/collisiondetection.hpp, src/utils/fastsqrt.h: Added a function to calculate collisions between circles and circle sectors. * src/being.cpp, src/object.hpp, src/testing.cpp: Improved hit detection by using said function. 2007-02-23 Rogier Polak * src/chat-server/chathandler.cpp: Added disconnect. * src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp: Bugfixes related to switch_character. * src/account-server/main-account.cpp, src/game-server/main-game.cpp: Small modification to accomodate MS-Windows. 2007-02-04 Rogier Polak * src/chat-server/chathandler.cpp, src/account-server/accounthandler.hpp, src/account-server/serverhandler.cpp, src/account-server/dalstorage.cpp, src/account-server/storage.hpp, src/account-server/accounthandler.cpp, src/account-server/dalstorage.hpp, src/defines.h, src/playerdata.cpp, src/playerdata.hpp, src/game-server/gamehandler.cpp, src/game-server/accountconnection.cpp, src/game-server/accountconnection.hpp: Added support for switching character by reconnecting to the account server and fixed the issue where a client is not logged in after registering (patch applied by Bjørn Lindeijer). 2007-02-01 Rogier Polak * src/account-server/main-account.cpp, src/account-server/dalstorage.cpp, src/account-server/account.cpp, src/game-server/mapmanager.cpp, src/game-server/main-game.cpp: Added graceful server shutdown, chose some more sane variables names for SQL queries and fixed a possible character collision error (patch applied by Bjørn Lindeijer). * src/game-server/object.cpp, src/game-server/object.hpp: Added caching of paths (patch applied by Bjørn Lindeijer). 2007-01-14 Björn Steinbrink * src/utils/logger.h: Unified logging macros. 2007-01-12 Bjørn Lindeijer * src/account-server/serverhandler.cpp: Report problems with finding a certain character instead of crashing. 2007-01-06 Bjørn Lindeijer * src/game-server/mapcomposite.cpp: Fixed a compiler warning. * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp, src/net/connectionhandler.hpp, src/net/connectionhandler.cpp, src/account-server/main-account.cpp, src/game-server/mapcomposite.hpp, src/Makefile.am: Allowed usage of timeout in ConnectionHandler::process in order to reduce CPU usage. Now account and chat servers no longer need to keep track of game time, but simply listen for incoming messages to act on. * src/utils/timer.cpp, src/utils/timer.h: Gracefully handle cases where the computer time is set back. 2007-01-05 Bjørn Lindeijer * AUTHORS: Updated to include all current authors. * src/account-server/main-account.cpp, src/account-server/serverhandler.cpp, src/utils/logger.h, src/game-server/main-game.cpp: Removed log level argument from LOG_FATAL helper macro, with the assumption that fatal messages should always have highest log level. * docs/tmwserv.xml: Added some documentation to example config file. 2007-01-05 Guillaume Melquiond * src/game-server/player.cpp, src/game-server/state.cpp: Delayed update of persistent position and put it into state handling, so that the update happens before map change. * src/game-server/item.hpp: Added an amount property to items lying on the ground. * src/game-server/testing.cpp: Added a piece of equipment. * src/game-server/defines.h, src/game-server/gamehandler.cpp: Implemented item dropping. * src/game-server/player.hpp: Removed useless dependency on Inventory. * src/game-server/inventory.cpp: Fixed reported amounts of inventory items. Embeded handling of client message directly into the class. * src/defines.h, src/game-server/gamehandler.cpp: Added full update of Inventory on Player connection. * src/game-server/gamehandler.cpp, src/game-server/player.hpp, src/game-server/player.cpp: Generalized player state. * src/utils/logger.h, src/utils/logger.cpp: Simplified handling of verbosity levels: fatal, error, warn, info, debug are now the levels. Optimized code by generating only needed messages. * src/chat-server/chathandler.cpp, src/net/connection.cpp, src/net/netcomputer.cpp, src/net/connectionhandler.cpp, src/skill.cpp, src/configuration.cpp, src/account-server/main-account.cpp, src/account-server/serverhandler.cpp, src/utils/stringfilter.cpp, src/account-server/dalstorage.cpp, src/utils/zlib.cpp, src/account-server/accounthandler.cpp, src/resourcemanager.cpp, src/controller.cpp, src/game-server/mapreader.cpp, src/game-server/gamehandler.cpp, src/game-server/mapmanager.cpp, src/game-server/accountconnection.cpp, src/game-server/being.cpp, src/game-server/itemmanager.cpp, src/game-server/main-game.cpp: Updated accordingly. Removed some unworthy debug messages. * src/Makefile.am: Removed useless dependencies. 2007-01-04 Guillaume Melquiond * src/playerdata.hpp, src/playerdata.cpp, src/defines.h, src/Makefile.am: Factored serialization of PlayerData into a new file. Added inventory to PlayerData. Removed counted pointers. * src/account-server/serverhandler.hpp, src/account-server/account.hpp: Moved counted pointers here. * src/account-server/serverhandler.cpp, src/game-server/accountconnection.cpp: Simplified by relying on the serialization functionality of PlayerData. * src/game-server/inventory.hpp, src/game-server/inventory.cpp: Transformed Inventory into a strict helper class, as data are now stored inside PlayerData. Reduced memory footprint of inventory by avoiding storing empty slots. * src/game-server/player.hpp, src/game-server/player.cpp, src/game-server/gamehandler.cpp: Updated accordingly. * src/net/messagein.hpp, src/net/messagein.cpp: Removed signedness interpretation of received data. * src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp: Added iterator around a point. * src/defines.h, src/game-server/gamehandler.cpp: Implemented pick-up. 2007-01-04 Eugenio Favalli * accountserver.cbp, gameserver.cbp, src/account-server/main-account.cpp, src/game-server/main-game.cpp: Cleaned and updated project files, fixed Win32 PACKAGE_VERSION definition. * gameserver.cbp, src/game-server/state.cpp: Moved NOGDI definition to Code::Blocks project file. 2007-01-03 Eugenio Favalli * accountserver.cbp, gameserver.cbp: Updated project files. * src/game-server/state.cpp: Fix to Windows Rectangle redefinition. 2007-01-03 Björn Steinbrink * src/utils/timer.cpp: Removed extra semicolons that break builds with --pedantic. 2007-01-03 Guillaume Melquiond * src/debug.h, src/debug.cpp, src/Makefile.am: Removed obsolete debug helpers. * src/playerdata.hpp: Taken persistent data out of Player. * src/being.h, src/being.cpp, src/object.h, src/object.cpp, src/map.h, src/player.h, src/player.cpp, src/inventory.h, src/inventory.cpp, src/map.cpp: Moved to src/game-server directory and changed header extension to hpp. * src/controller.h, src/item.h, src/game-server/mapcomposite.cpp, src/game-server/mapreader.cpp, src/game-server/mapcomposite.hpp, src/game-server/trigger.cpp, src/game-server/trigger.hpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.hpp, src/game-server/state.cpp, src/game-server/accountconnection.hpp, src/game-server/itemmanager.cpp: Updated accordingly. * src/account-server/account.hpp, src/account-server/serverhandler.cpp, src/account-server/dalstorage.cpp, src/chat-server/chatchannel.hpp, src/account-server/serverhandler.hpp, src/chat-server/chathandler.cpp, src/account-server/accounthandler.cpp: Relied on PlayerData to remove dependencies on Thing, Object, MovingObject, etc. * src/defines.h: Fixed enumerations. * src/games-server/gamehandler.cpp, src/game-server/player.cpp: Commented in inventory code back. * src/item.h, src/item.cpp: Moved to src/game-server directory and changed header extension to hpp. * src/game-server/itemmanager.hpp, src/game-server/itemmanager.cpp, src/game-server/inventory.hpp, src/game-server/inventory.cpp, src/game-server/player.hpp, src/game-server/gamehandler.cpp, src/game-server/player.cpp: Simplified Inventory interface a bit. Renamed Item to ItemClass to reflect its role. Added a Item class for Objects lying on the world map. * src/game-server/being.hpp: Removed counted pointers. * src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp, src/game-server/being.cpp: Fixed end of lines. * src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp: Fixed pessimistic bounds on region iterators. Added an iterator for non-moving objects. * src/defines.h, src/game-server/state.cpp: Added code to send data on floor items to clients. * src/game-server/testing.cpp: Added a Xmas cake for testing purpose. 2007-01-02 Guillaume Melquiond * tmwserv.cbp, tmwserv.dev, runserv.sh: Removed obsolete project files and shell script. * configure.ac, src/Makefile.am, src/tests, src/client.cpp: Removed obsolete tests and text client. * src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp, src/point.h: Removed implicit radius for checking range of Point. Added a Rectangle class. Added support for rectangles in MapComposite. * src/object.h, src/defines.h, src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp, src/game-server/state.hpp, src/game-server/state.cpp: Put an ancestor for Object that are not visible to clients. Added simple accessors for object types. * src/game-server/mapmanager.cpp: Prevented loading unactive maps. * src/game-server/trigger.hpp, src/game-server/trigger.cpp: Added a trigger mechanism and a warp action. * src/game-server/testing.cpp: Added some hardcoded game objects for testing purpose. * src/sqlitestorage.h, src/sqlitestorage.cpp: Removed obsolete SQLite support. * src/utils/zlib.hpp, src/utils/zlib.cpp: Added support for inflating compressed data. * src/mapreader.h, src/mapreader.cpp: Moved to src/game-server directory and changed header extension to hpp. Removed useless declarations. Relied on utils/xml and utils/zlib. Simplified code. Fixed memory leaks on XML document and on Tilesets. * src/properties.h, src/Makefile.am: Removed now useless class Properties. 2006-12-31 Philipp Sehmisch * accountserver.cbp, gameserver.cbp, runsrv.bat: Added Code::Blocks project files and windows start script. 2006-12-31 Guillaume Melquiond * src/account-server/dalstorage.hpp, src/account-server/dalstorage.cpp, src/account-server/storage.hpp: Added function to query a character in the database. * src/account-server/serverhandler.cpp: Finished implementation for warping players around servers. 2006-12-30 Guillaume Melquiond * src/mapcomposite.h, src/mapcomposite.cpp: Moved to src/game-server directory and changed header extension to hpp. * src/Makefile.am: Updated accordingly. * src/object.h, src/being.h: Changed definition of directions. * src/being.cpp: Relied on MapComposite iterators to scan only beings in the vincinity one time instead of all objects of the map four times. Used a pixel-based zone instead of tile-based zone for damaging. * src/player.cpp: Removed useless dependency. * src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp: Added a radius parameter to iterator creators. Removed unused and inefficient getObjectsOnTile. * src/game-server/state.hpp, src/game-server/state.cpp: Split update function into updateMap and informPlayer. Simplified code a bit. * src/game-server/mapcomposite.hpp, src/game-server/mapcomposite.cpp, src/object.h, src/game-server/state.hpp, src/game-server/state.cpp, src/game-server/accountconnection.cpp, src/game-server/gamehandler.cpp: Removed reference-counted pointers on Object. * src/game-server/gameclient.hpp, src/game-server/gameclient.cpp, src/player.h, src/game-server/gamehandler.cpp, src/Makefile.am: Embedded a simplified version of GameClient into GameHandler. Removed the original files. * src/game-server/mapmanager.hpp, src/game-server/mapmanager.cpp: Added on-the-fly map loading. * src/defines.h, src/game-server/accountconnection.cpp, src/account-server/serverhandler.cpp: Controlled map activation from the account server, so that clients are not kept on the wrong server when warped. * src/defines.h, src/game-server/state.hpp, src/game-server/state.cpp, src/account-server/serverhandler.cpp, src/game-server/gamehandler.hpp, src/game-server/gamehandler.cpp, src/game-server/accountconnection.hpp, src/game-server/accountconnection.cpp: Added a queue for delaying intrusive events until update is finished. Partially implemented server communications to update player data and to warp players around. 2006-12-29 Guillaume Melquiond * src/account.h, src/account.cpp, src/accountclient.h, src/accountclient.cpp, src/storage.h, src/storage.cpp, src/dalstorage.h, src/dalstorage.cpp, src/dalstoragesql.h, src/accounthandler.h, src/accounthandler.cpp: Moved to src/account-server directory and changed header extension to hpp. * src/chathandler.h, src/chathandler.cpp, src/chatchannelmanager.h, src/chatchannel.cpp, src/chatchannel.h, src/chatchannelmanager.cpp: Moved to src/chat-server directory and changed header extension to hpp. * src/itemmanger.h, src/itemmanager.cpp, src/state.h, src/state.cpp, src/gamehandler.h, src/gamehandler.cpp, src/gameclient.h, src/gameclient.cpp, src/mapmanager.h, src/mapmanager.cpp: Moved to src/game-server directory and changed header extension to hpp. * src/messagein.h, src/messagein.cpp, src/messageout.h, src/messageout.cpp, src/connectionhandler.h, src/connectionhandler.cpp, src/netcomputer.h, src/netcomputer.cpp: Moved to src/net directory and changed header extension to hpp. * src/controller.h, src/controller.cpp, src/game-server/state.cpp, src/being.cpp, src/being.h: Removed knowledge of Controller in Being by deriving a Controlled Being. * src/game-server/state.cpp, src/game-server/mapmanager.cpp, src/game-server/mapmanager.hpp, src/object.cpp: Simplified by removing Singleton pattern. * src/object.cpp: Moved code around: the idle case is now a fast path. * src/net/connection.hpp, src/net/connection.cpp: Added a Connection class to handle inter-server communications. * src/game-server/itemmanager.cpp, src/utils/xml.hpp, src/utils/xml.cpp: Copied an XML helper from tmw client. Used it to simplify ItemManager. * src/game-server/mapmanager.hpp, src/game-server/mapmanager.cpp, data/maps.xml, src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp, src/account-server/storage.hpp, src/account-server/storage.cpp, src/account-server/dalstoragesql.hpp: Added a XML file linking map names to map identifiers. Removed the database as these links are not supposed to dynamically change. Modified code to load the (relevant) maps beforehand. * src/game-server/gamehandler.cpp, src/chat-server/chathandler.cpp, src/item.h, src/object.h, src/player.h: Fixed compile warnings and missing returns. * src/player.cpp, src/game-server/gamehandler.cpp: Commented out the currently unused inventory interface. * src/net/messagein.hpp: Updated from tmwclient to add getUnreadLength. * src/net/connectionhandler.hpp, src/net/connectionhandler.cpp: Removed unused ClientData class. * src/inventory.h: Removed "at" accessors, as nobody is ready to catch exceptions. Removed unneeded dependency and unused pointer. * src/net/netcomputer.hpp: Fixed typos. * src/configuration.h: Factored DEFAULT_SERVER_PORT macro here. * src/defines.h, src/game-server/accountconnection.hpp, src/game-server/accountconnection.cpp, src/account-server/serverhandler.hpp, src/account-server/serverhandler.cpp, src/account-server/accounthandler.cpp: Added communication between account server and game server. * src/main.cpp, src/Makefile.am: Created main files in both src/account-server and src/game-server. Modified makefiles to produce two server binaries. * src/itemhandler.h, src/itemhandler.cpp: Removed: useless and unused. * src/Makefile.am, src/account-server/dalstorage.cpp: Removed useless dependency on Cipher + OpenSSL. * README: Added a few words on how to run the split servers. 2006-12-29 Philipp Sehmisch * src/being.cpp, src/being.h, src/defines.h, src/gamehandler.cpp, src/mapcomposite.cpp, src/mapcomposite.h, src/object.h, src/player.cpp, src/player.h, src/state.cpp: Implemented basic attack hit detection and damage notification. 2006-12-27 Philipp Sehmisch * src/defines.h, src/gamehandler.cpp, src/object.h, src/player.cpp, src/player.h, src/state.cpp: Clients are now notified when other clients near them perform attacks. 2006-10-20 Yohann Ferreira * src/item.h, src/player.cpp, src/inventory.h, src/inventory.cpp: Adding inventory handling basics Part 2. 2006-10-20 Yohann Ferreira * data/items.xsd, data/items.xml, src/item.h, src/itemmanager.cpp, src/main.cpp: Simplified item reference a bit and filled the reference items.xml file. * data/items.xml, data/items.xsd, src/item.h, src/itemmanager.cpp: Added the missing Weapon Type and Max Per Slot item properties. * src/inventory.h, src/inventory.cpp, src/itemmanager.h, src/itemmanager.cpp, src/player.h, src/player.cpp, src/gamehandler.cpp: Adding inventory handling (basics) Part 1. 2006-10-19 Yohann Ferreira * data/items.xsd, src/main.cpp, src/Makefile.am, src/item.h, src/item.cpp, itemmanager.cpp, itemmanager.h, being.h, player.cpp, dalstorage.cpp: Added a backend to get item reference information. The xml file isn't ready yet. 2006-10-03 Eugenio Favalli * src/itemhandler.h, tmwserv.cbp, tmwserv.dev: Updated project files and fixed a compilation issue. 2006-10-03 Yohann Ferreira * src/item.cpp, src/item.h, src/inventory.h, src.inventory.cpp, src/itemhandler.h, src/itemhandler.cpp, src/dalstoragesql.h, src/Makefile.am: Committed itemhandler structure part rc1. src/accounthandler.cpp, src/accounthandler.h, src/chathandler.h, src/chathandler.cpp, src/gamehandler.h, src/gamehandler.cpp: Made the server tells which server is listening on a port. 2006-09-09 Guillaume Melquiond * src/map.cpp: Merged client pathfinder changes. 2006-09-04 Guillaume Melquiond * src/mapcomposite.cpp, src/mapcomposite.h, src/state.cpp: Fixed wrong ID allocation. Improved failure propagation. Simplified code. 2006-09-03 Guillaume Melquiond * src/player.cpp, src/object.h, src/gamehandler.h, src/state.cpp, src/gamehandler.cpp, src/state.h: Removed mNeedUpdate and mNew from Object class; added update flags instead. Reduced size of Object fields. Moved sayAround from GameHandler to State class. Improved handling of flags for move messages. * src/mapcomposite.h, src/state.cpp, src/mapcomposite.cpp: Added map partitioning to reduce quadratic behavior when checking object ranges. * src/object.cpp: Fixed cost of diagonal moves. 2006-09-02 Bjørn Lindeijer * src/defines.h: Corrected hair and hair color constants to match those available on the client. 2006-09-02 Guillaume Melquiond * src/object.cpp, src/controller.cpp, src/dalstorage.cpp, src/items.h, src/player.cpp, src/object.h, src/state.cpp, src/state.cpp, src/defines.h, src/player.h, src/gamehandler.cpp: Decorrelated moving object IDs from character database IDs. Switched to short IDs instead. * src/messageout.cpp, src/messageout.h, src/state.cpp, src/defines.h: Removed pixel-based synchronisation. Added variable length move messages. Changed default buffer size of outgoing packets. * src/src/accounthandler.cpp, src/point.h, src/object.cpp, src/controller.cpp, src/dalstorage.cpp, src/object.h, src/state.cpp, src/gamehandler.cpp: Made Point a POD type. Simplified server algorithm for moving objects; it now matches the one in the client. * src/gameclient.cpp, src/player.h, src/gamehandler.cpp: Added GameClient pointer to Player class for O(1) message sending. * src/mapcomposite.h, src/mapcomposite.cpp, src/Makefile.am: Moved MapComposite class to its own files. * src/gameclient.cpp, src/gamehandler.h, src/state.cpp, src/state.h, src/gamehandler.cpp: Reduced amount of counted pointers. Implemented unique public IDs. 2006-08-28 Eugenio Favalli * tmwserv.cbp, tmwserv.dev: Updated project files. 2006-08-28 Bjørn Lindeijer * src/controller.h, src/object.cpp, src/controller.cpp, src/object.h, src/state.cpp, src/being.cpp, src/Makefile.am, src/being.h: Added a Controller class meant to implement behaviour loosely coupled to the actual being. Used it to control 10 testing maggots that are now randomly walking around. 2006-08-27 Bjørn Lindeijer * src/map.cpp, src/accounthandler.cpp, src/point.h, src/dalstorage.cpp, src/object.h, src/state.cpp, src/gamehandler.cpp, src/map.h, src/Makefile.am: Introduced Point class to replace the confusing and clumsy usage of std::pair. * src/point.h, src/player.cpp, src/account.h, src/being.cpp, src/player.h, src/gameclient.h, src/state.h, src/Makefile.am, src/being.h: Put Player class in its own module instead of defining it together with Being. 2006-08-27 Guillaume Melquiond * src/object.cpp: Fixed assertion failure on being movements. * src/accounthandler.cpp: Matched server-side speed with client-side speed. Removed position hack. * src/state.cpp: Changed state handler so that entering and leaving beings are only reported when they are in range. 2006-08-26 Rogier Polak * src/netcomputer.h, src/netcomputer.cpp, src/connectionhandler.cpp: Added the stream operator << to NetComputer, for logging of the peers ip-address (patch applied by Bjørn Lindeijer). 2006-08-26 Guillaume Melquiond * src/accounthandler.cpp: Set an arbitrary start position outside any wall for testing purpose. * src/gamehandler.cpp, src/defines.h: Send being identifier instead of being name when saying around. * src/object.h: Added a field indicating if an object just appeared. * src/state.cpp: Improved update logic by taking into account beings that just appeared. Moved "change map" message from AddObject to InformPlayer. 2006-08-26 Bjørn Lindeijer * src/accounthandler.cpp: Read game and chat server addresses to send to the client from the configuration file. * docs/tmwserv.xml: Added example configuration file. 2006-08-25 Rogier Polak * src/accountclient.h, src/messageout.cpp, src/accounthandler.cpp, src/accountclient.cpp, src/netcomputer.h, src/client.cpp, src/messageout.h, src/netcomputer.cpp, src/gameclient.cpp, src/state.cpp, src/defines.h, src/gamehandler.cpp, src/chathandler.cpp, src/gameclient.h: MessageOut is now more efficient by preallocating buffer capacity, NetComputer no longer holds a reference to the ConnectionHandler that spawned it and support was added for unreliable packets and channels (patch applied by Bjørn Lindeijer with some modifications). 2006-08-21 Eugenio Favalli * tmwserv.cbp, tmwserv.dev: Updated project files. 2006-08-21 Bjørn Lindeijer * src/accounthandler.cpp, src/accounthandler.h: Handle character create message in separate funcion. 2006-08-20 Bjørn Lindeijer * src/accounthandler.cpp: Do not send map name and send token before game and chat server information, as per current specification. * src/connectionhandler.h, src/connectionhandler.cpp, src/dalstorage.cpp, src/netcomputer.cpp, src/mapmanager.cpp, src/state.cpp: Some code format changes, logging improvals and commenting. * src/state.cpp, src/defines.h, src/gamehandler.cpp, src/state.h, src/being.h: Added sending of initial GPMSG_PLAYER_MAP_CHANGE message for joining players. 2006-08-19 Bjørn Lindeijer * src/accounthandler.cpp, src/account.cpp, src/dalstorage.cpp, src/account.h, src/defines.h, src/chathandler.cpp, src/being.h: Renamed Genders to Gender and AccountLevels to AccountLevel. 2006-08-15 Bjørn Lindeijer * src/connectionhandler.h, src/messageout.cpp, src/messagein.h, src/accounthandler.cpp, src/connectionhandler.cpp, src/netcomputer.h, src/messagein.cpp, src/client.cpp, src/messageout.h, src/netcomputer.cpp, src/packet.h, src/packet.cpp, src/gamehandler.cpp, src/chathandler.cpp, src/Makefile.am: Removed Packet class since MessageIn and MessageOut suffice. MessageIn and MessageOut now no longer copy the message data unnecessarily (used to happen in Packet). On the client side this class was already removed. * src/defines.h: Removed UNKNOWN gender as this should currently not be used. 2006-08-15 Guillaume Melquiond * src/accounthandler.cpp, src/defines.h: Modified protocol so that server information are sent on character selection. * src/client.cpp: Adapted to new connection protocol and new character information. 2006-08-13 Bjørn Lindeijer * src/items.h: Fixed missing constructor since there is no default constructor in its superclass Object. * src/netcomputer.cpp: Log sending of messages. * runserv.sh: Include more verbose messages. 2006-08-13 Eugenio Favalli * tmwserv.cbp, tmwserv.dev: Updated project files. * src/accounthandler.cpp, src/connectionhandler.cpp, src/dalstorage.cpp, src/defines.h: Changed character list to a sequence of packets and fixed a db issue. 2006-08-11 Bjørn Lindeijer * src/connectionhandler.h, src/connectionhandler.cpp, src/netcomputer.h, src/netcomputer.cpp: Removed ConnectionHandler::forceDisconnect method and implemented part of the NetComputer::disconnect method instead. Makes NetComputer::getPeer unnecessary. 2006-08-06 Guillaume Melquiond * src/map.cpp, src/map.h, src/being.h, src/being.cpp: Changed member constness. Added a proximity tester. Moved path node structure. * src/accounthandler.cpp: Modified logging. Prevented empty packets from being sent and killing ENet. Set destination to current position. * src/defines.h, src/gamehandler.cpp, src/client.cpp: Added support for move messages. Changed sayAround to pixel distance. * src/object.cpp, src.object.h, src/state.cpp: Implemented being movements. 2006-08-04 Bjørn Lindeijer * src/properties.h, src/map.cpp, src/map.h, src/Makefile.am: Generalized the properties functionality as was done in the client before. * src/main.cpp, src/items.cpp, src/items.h, src/utils/timer.cpp, src/utils/timer.h, src/utils/logger.h: Removed some more remaining usages of tmwserv namespace. * src/gamehandler.cpp, src/chatchannel.h: Added some documentation and de-complicized the code a bit. * configure.ac: Removed checks for SDL and SDL_net. * INSTALL: Somehow got updated to a newer version. 2006-08-04 Guillaume Melquiond * src/object.h, src/object.cpp, src/being.h, src/dalstorage.cpp: Added the database primary key to Player. * src/state.cpp: Used Player ID. * src/dal/recordset.cpp: Removed redundant checks. * src/dalstorage.cpp, src/dalstorage.h, src/storage.h: Prevented database failure from allowing already existing character name or email address. * src/accounthandler.cpp: Fixed control for changing email address. 2006-08-03 Guillaume Melquiond * src/storage.h, src/dalstorage.h, src/dalstorage.cpp: Removed AccountInfo. Restricted addAccount to accounts without characters, removed wrong SQL code. Fixed casting in updAccount, promoted member as flush. Added implicit flush to addAccount and delAccount. Fixed user_id for every SQL backend. Added flushAll and unloadAccount members. * src/accounthandler.cpp: Restricted flush to only modified accounts. * src/account.h, src/account.cpp: Added the database primary key to Account. 2006-08-03 Bjørn Lindeijer * src/gameclient.cpp, src/gameclient.h, src/gamehandler.cpp, src/Makefile.am: Defined the GameClient class in its own module. 2006-08-02 Bjørn Lindeijer * src/accounthandler.cpp, src/accounthandler.h: Put handling of logout, unregister and password change messages into separate methods. 2006-08-02 Guillaume Melquiond * src/Makefile.am: Put object files in subdirectories. Removed compilation flags. 2006-08-02 Eugenio Favalli * tmwserv.cbp, tmwserv.dev: Updated project files. 2006-08-01 Bjørn Lindeijer * src/accountclient.h, src/accountclient.cpp, src/Makefile.am: Defined this class in its own module (extracted from accounthandler.cpp). * src/messageout.h, src/messageout.cpp: Added constructor that takes the message ID for convenience. * src/accounthandler.cpp, src/accounthandler.h: Put handling of logins in a separate method. I think it would be better if this was done for all messages. * src/client.cpp: Removed requesting character listing, as this comes with the succesful register/login responses. * src/accounthandler.cpp, src/accounthandler.h: Put handling of registrations in a separate method and cleaned it up a bit. 2006-07-31 Bjørn Lindeijer * src/client.cpp, src/netcomputer.cpp: Fixed registering (send version as integer) and corrected the off by one packed size. 2006-07-27 Eugenio Favalli * tmwserv.cbp, tmwserv.dev: Updated project files. * src/accounthandler.cpp, src/client.cpp: Modified client version to be an int. * src/accounthandler.cpp, src/defines.h: Client version is being sent also during registration. 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.