- Removed the code for the now-obsolete-before-actually-being-used pathLists.
- playerAreas now contain a list called pathList.
- Refactored createArea, createPath, and the /move and /look commands.
- Added typedefs to prevent the compiler being unable to link.
- Implemented first pass of linked-list.c.
TODO:
- Polish linked-list.c 'till you can see a reflection in it.
- Refactor existing codebase to use linked-list.c.y
- Implemented skillCheck.
- Allowed for the in-game testing of skillCheck via /try.
- Slightly reorganized the Makefile.
- Tweaked the logoString to display correctly.
- Edited the client and server to generate gprof data when in debug builds.
- Adjusted the Makefile to create gprof data in the server (currently inactive as the server never terminates.)
- Fixed warnings in areadata.c and gamelogic.c.
- Added bruteforcePrint for completeness.
- Added text wrapping in client.
- Implemented functions for managing skill data.
- Rewrote some existing functionality to allow for variable length game messages over multiple userMessages.
- Reorganized the code yet again.
- Introduced enums for coreStats and outcomes.
- Implemented core stat checks.
- Added more example skills.
- Rewrote test areas to have longer descriptions.
- Cleaned up the client codebase.
- Throughly commented SilverMUDClient.c.
- Added a boolean for bolding slowPrintNcurses.
- Added a user-configurable delay for text printing.
- Other small improvements.
- Added inputoutput.c
- Added inputoutput.h
- inputoutput contains wrapper and helper functions for transmitting messages over GnuTLS.
- Moved the userMessage struct definition to inputoutput.
- Reworked client and server to use GnuTLS.
- Removed all commands from server in preperation for upcoming command and message queues.
- Names and areas are no longer considered for messaging.
- Changed Makefile to link GnuTLS.
- Added basic logging support to the client.
- Added basic command-line options to the client:
-g: Enables a game-log, must have a file-path.
-c: Enables a chat-log, must have a file-path.
-i: Sets the IP address to connect to.
- Removed the C-c handler, appeared to be broken anyways. Consider
reimplementation at some point.
- Added /EXIT command to allow for leaving the game.
- The client now exits gracefully if the server dies.
- Added lists.c
- Added lists.h
- Changed initialisation of rooms to add a third room and to add the rooms to a
list.
- Added datastructures for area and path nodes for doubly-linked lists.
- Added missing header guards.
- Increased the size of message contents to 2048.
- Added area and path initialization functions.
- movePlayerToArea no longer segfaults.
- /LOOK added to allow players to find exits.
- Amount of paths allowed out of an area has been decreased to 16.
- Debug builds are now available from the Makefile.
- Removed unused variables.
- Input sanatization has been moved to the server-side, phew.
- Server messages are now displayed differently to player messages.
- New area initialization has been added until I can integrate Guile.
- Server's sendBuffer has been renamed messageBuffer.
- Areas now have descriptions.
- Descriptions are sent to the player upon joining an area and /LOOK-ing.
Client now has two seperate Ncurses windows for sending and receiving.
Added SIGINT handler which sets a global boolean to gracefully exit and free memory.
Sending and Receiving are now on their own threads.
A pointer-to-struct is now passed to the threads.
The main thread will now wait to cancel the threads upon receiving SIGINT.
slowPrintNcurses now takes a window argument.
The server now doesn't check that a client receives the message that they sent, allowing for full chat history.
Created "slowPrintNcurses", which is a version of "slowPrint" compatible with Ncurses screens.
Ncurses is now used in place of raw-terminal output.
The screen clears after inital start-up messages.
C-d no longer exits, and still doesn't spam.
Added Ncurses to the ld options of client in the Makefile.
Created ld options for server in the Makefile.
Created new library to deal with user input.
Implemented check in client to prevent C-d spamming the server.
C-d now exits.
Implemented check in client to prevent clients sending messages containing only newlines
to the server.
Features Added:
- Server capable of receiving and sending messages to up to 64 clients.
- Client capable of sending and receiving messages from the server, multi-threaded.
- Text effect library with one effect.
Features Changed:
- None, initial release.
Features Removed:
- None, initial release.