diff options
author | Aaron Marks <nymacro@gmail.com> | 2005-11-10 10:00:29 +0000 |
---|---|---|
committer | Aaron Marks <nymacro@gmail.com> | 2005-11-10 10:00:29 +0000 |
commit | e86de3e7ce09660e615792dba50af9de5d2d82c5 (patch) | |
tree | 8d2ac25779095112960a2521e9046cffefda03bd /src/client.cpp | |
parent | a13d9f0066aabc966fa6d60951b178bf73dc0f1b (diff) | |
download | manaserv-e86de3e7ce09660e615792dba50af9de5d2d82c5.tar.gz manaserv-e86de3e7ce09660e615792dba50af9de5d2d82c5.tar.bz2 manaserv-e86de3e7ce09660e615792dba50af9de5d2d82c5.tar.xz manaserv-e86de3e7ce09660e615792dba50af9de5d2d82c5.zip |
Updates to Being, test client, game handler and small update to state update.
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 68 |
1 files changed, 48 insertions, 20 deletions
diff --git a/src/client.cpp b/src/client.cpp index 7669b112..c3870b49 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -5,11 +5,9 @@ #include "defines.h" #include "messageout.h" -int main(int argc, char *argv[]) -{ +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); } @@ -18,8 +16,7 @@ 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); } @@ -28,15 +25,13 @@ 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); } @@ -46,9 +41,8 @@ int main(int argc, char *argv[]) int answer = 1; char line[256] = ""; - while (answer != 0) - { - + while (answer != 0) { + bool responseRequired = true; MessageOut msg; printf ("0) Quit\n"); @@ -57,6 +51,8 @@ int main(int argc, char *argv[]) printf ("3) Chat\n"); printf ("4) Create character\n"); printf ("5) Character selection\n"); + printf ("6) Move character\n"); + printf ("7) Equip item\n"); printf ("Choose your option: "); std::cin >> answer; @@ -74,6 +70,7 @@ int main(int argc, char *argv[]) std::cin >> line; msg.writeString(line); break; + case 2: // Login msg.writeShort(CMSG_LOGIN); @@ -84,6 +81,7 @@ int main(int argc, char *argv[]) std::cin >> line; msg.writeString(line); break; + case 3: // Chat msg.writeShort(CMSG_SAY); @@ -91,7 +89,9 @@ int main(int argc, char *argv[]) std::cin >> line; msg.writeString(line); msg.writeShort(0); + responseRequired = false; break; + case 4: { // Create character @@ -111,6 +111,36 @@ int main(int argc, char *argv[]) msg.writeByte(atoi(line)); } break; + case 6: + { + // Move character + long x, y; + std::cout << "X: "; + std::cin >> x; + std::cout << "Y: "; + std::cin >> y; + + msg.writeShort(CMSG_WALK); + msg.writeLong(x); + msg.writeLong(y); + + responseRequired = false; + } break; + + case 7: + { + // Equip + unsigned int itemId; + unsigned int slot; + std::cout << "Item ID: "; + std::cin >> itemId; + std::cout << "Slot: "; + std::cin >> slot; + msg.writeShort(CMSG_EQUIP); + msg.writeLong(itemId); + msg.writeByte(slot); + } break; + default: continue; } @@ -121,21 +151,19 @@ int main(int argc, char *argv[]) printf("%x ", msg.getPacket()->data[i]); } printf("\n\n"); - + SDLNet_TCP_Send(tcpsock, msg.getPacket()->data, msg.getPacket()->length); - - if (answer != 3) { + + if (responseRequired) { char data[1024]; int recvLength = SDLNet_TCP_Recv(tcpsock, data, 1024); printf("Received:\n"); - if (recvLength != -1) - { + if (recvLength != -1) { for (unsigned int i = 0; i < recvLength; i++) { printf("%x ", data[i]); } - } - else { + } else { printf("ERROR!"); } printf("\n\n"); |