summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugenio Favalli <elvenprogrammer@gmail.com>2005-07-19 08:23:04 +0000
committerEugenio Favalli <elvenprogrammer@gmail.com>2005-07-19 08:23:04 +0000
commite57ecd19592ac46465d340d56c59a9faef26f18c (patch)
tree006430e3805cf9b0636a7ca55b3baa1a25990c39
parentcb25562fc18a169ee5fe2e2440b5267cbe0b9c6e (diff)
downloadmanaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.tar.gz
manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.tar.bz2
manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.tar.xz
manaserv-e57ecd19592ac46465d340d56c59a9faef26f18c.zip
a simple menu to choose options
-rw-r--r--src/client.cpp132
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;