diff options
author | Eugenio Favalli <elvenprogrammer@gmail.com> | 2005-07-19 08:23:04 +0000 |
---|---|---|
committer | Eugenio Favalli <elvenprogrammer@gmail.com> | 2005-07-19 08:23:04 +0000 |
commit | e57ecd19592ac46465d340d56c59a9faef26f18c (patch) | |
tree | 006430e3805cf9b0636a7ca55b3baa1a25990c39 /src | |
parent | cb25562fc18a169ee5fe2e2440b5267cbe0b9c6e (diff) | |
download | manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.tar.gz manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.tar.bz2 manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.tar.xz manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.zip |
a simple menu to choose options
Diffstat (limited to 'src')
-rw-r--r-- | src/client.cpp | 132 |
1 files changed, 83 insertions, 49 deletions
diff --git a/src/client.cpp b/src/client.cpp index e1bbc546..40c9cdf2 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1,13 +1,15 @@ #include <SDL.h> #include <SDL_net.h> #include <stdlib.h> +#include <iostream> #include "defines.h" #include "messageout.h" int main(int argc, char *argv[]) { // Initialize SDL - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1) { + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1) + { printf("SDL_Init: %s\n", SDL_GetError()); exit(1); } @@ -16,7 +18,8 @@ int main(int argc, char *argv[]) atexit(SDL_Quit); // Initialize SDL_net - if (SDLNet_Init() == -1) { + if (SDLNet_Init() == -1) + { printf("SDLNet_Init: %s\n", SDLNet_GetError()); exit(2); } @@ -25,66 +28,97 @@ int main(int argc, char *argv[]) IPaddress ip; TCPsocket tcpsock; - if (SDLNet_ResolveHost(&ip, "localhost", 9601) == -1) { + if (SDLNet_ResolveHost(&ip, "localhost", 9601) == -1) + { printf("SDLNet_ResolveHost: %s\n", SDLNet_GetError()); exit(1); } tcpsock = SDLNet_TCP_Open(&ip); - if (!tcpsock) { + if (!tcpsock) + { printf("SDLNet_TCP_Open: %s\n", SDLNet_GetError()); exit(2); } printf("Succesfully connected!\n"); - // Send a login message - MessageOut msg; - - // Register - /* - msg.writeShort(CMSG_REGISTER); - msg.writeString("test"); - msg.writeString("password"); - msg.writeString("test@email.addr"); - */ - - // Login - ///* - msg.writeShort(CMSG_LOGIN); - msg.writeString("test"); - msg.writeString("password"); - //*/ - - // Chat - /* - msg.writeShort(CMSG_SAY); - msg.writeString("Hello World!"); - msg.writeShort(0); - */ - - // message hex - ///* - for (unsigned int i = 0; i < msg.getPacket()->length; i++) { - printf("%x ", msg.getPacket()->data[i]); - } - printf("\n"); - //*/ - - SDLNet_TCP_Send(tcpsock, msg.getPacket()->data, msg.getPacket()->length); - - char data[1024]; - int recvLength = SDLNet_TCP_Recv(tcpsock, data, 1024); - printf("Received:\n"); - if (recvLength != -1) - for (unsigned int i = 0; i < recvLength; i++) { - printf("%x ", data[i]); + int answer = 1; + char line[256] = ""; + + while (answer != 0) + { + + MessageOut msg; + + printf ("0) Quit\n"); + printf ("1) Register\n"); + printf ("2) Login\n"); + printf ("3) Chat\n\n"); + printf ("Insert your option: "); + std::cin >> answer; + + switch (answer) { + case 1: + // Register + msg.writeShort(CMSG_REGISTER); + printf("Account name: ", line); + std::cin >> line; + msg.writeString(line); + printf("Password: ", line); + std::cin >> line; + msg.writeString(line); + printf("Email address: ", line); + std::cin >> line; + msg.writeString(line); + break; + case 2: + // Login + msg.writeShort(CMSG_LOGIN); + printf("Account name: ", line); + std::cin >> line; + msg.writeString(line); + printf("Password: ", line); + std::cin >> line; + msg.writeString(line); + break; + case 3: + // Chat + msg.writeShort(CMSG_SAY); + printf("\nChat: ", line); + std::cin >> line; + msg.writeString(line); + msg.writeShort(0); + break; + } + printf("\n"); + + // Message hex + for (unsigned int i = 0; i < msg.getPacket()->length; i++) { + printf("%x ", msg.getPacket()->data[i]); } - else - printf("ERROR!"); - printf("\n"); + printf("\n\n"); + + SDLNet_TCP_Send(tcpsock, msg.getPacket()->data, + msg.getPacket()->length); + + if (answer != 3) { + char data[1024]; + int recvLength = SDLNet_TCP_Recv(tcpsock, data, 1024); + printf("Received:\n"); + if (recvLength != -1) + { + for (unsigned int i = 0; i < recvLength; i++) { + printf("%x ", data[i]); + } + } + else { + printf("ERROR!"); + } + printf("\n\n"); + } + } - SDLNet_TCP_Close(tcpsock); return 0; |