Commit Graph

67 Commits

Author SHA1 Message Date
Barry Kane 151f3002b8 Began implementing game logic and re-implementing commands
- Reimplemented /MOVE and /EXIT
- The server is now multi-threaded
- Input and output is now queued
2022-05-05 19:45:27 +01:00
Barry 0b3a72beff Removed inputhandling library
The functionality was moved to inputoutput.
2022-04-07 01:39:59 +01:00
Barry 4ddb80b8b2 Basic message queuing implemented
- Messages are now queued on reception by the server.
- Message queue datastructures are now added.
2022-04-07 01:38:36 +01:00
Barry e4b8693037 Cleaned up client.
- 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.
2022-03-15 14:52:49 +00:00
Barry 5d772df469 Added initial GnuTLS encryption.
- 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.
2022-03-06 00:36:42 +00:00
Barry 235ff8e74f Added basic logging support and command-line options to the client.
- 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.
2021-12-26 19:07:30 +00:00
Barry 6c93805d6f Added initial implementation of doubly-linked lists
- 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.
2021-12-05 23:33:53 +00:00
Barry 241ac7a92b Added area and path creation functions
- 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.
2021-11-04 23:14:47 +00:00
Barry 85a31a2933 Added basic area system
- Added playerdata.c
- Added basic move command
- Added a basic initialisation of two connected rooms
- Added datastructures for areas and paths
2021-10-21 21:58:55 +01:00
Barry Kane ae8373d4ce Incremented Version Number.
- Incremented version number in preperation for merge.
2021-09-15 00:28:57 +01:00
Barry Kane 18a4f416f6 Added basic name system
- Added basic name system.
- Added playerdata.h.
- Added basic /NAME command. TODO: Create proper command system.
- Added datastructures for user messages and user names.
2021-09-15 00:07:13 +01:00
Barry Kane 9411803942 Increment version message for merge.
Incremented the version number by 0.1 for the server.
Added version splash to the client.
2021-09-10 15:07:42 +01:00
Barry Kane 7047d0ee08 Added two-window messaging to the client.
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.
2021-09-10 15:03:02 +01:00
Barry Kane 33bc9bcda0 Adapted client to use Ncurses instead of raw terminal output:
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.
2021-09-03 18:47:11 +01:00
Barry Kane 849a80bd37 Basic input sanatization:
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.
2021-08-19 23:07:58 +01:00
Barry Kane 2c093903a4 Git Sanity Check 2021-08-17 18:57:56 +01:00
Barry Kane 618b2144e3 Initial release of SilverMUD:
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.
2021-08-15 19:42:37 +01:00