int doRPCCmd(Client *C, char c) { int rc=-1; switch (c) { case 'h': { rc = proto_client_hello(C->ph); printf("hello: rc=%x\n", rc); if (rc > 0) game_process_reply(C); } break; case 'm': scanf("%c", &c); rc = proto_client_move(C->ph, c); break; case 'g': rc = proto_client_goodbye(C->ph); break; default: printf("%s: unknown command %c\n", __func__, c); } // NULL MT OVERRIDE ;-) printf("%s: rc=0x%x\n", __func__, rc); if (rc == 0xdeadbeef) rc=1; return rc; }
int doRPCCmd(Client *C, char c) { int rc=-1; switch (c) { case 'h': { if (PROTO_PRINT_DUMPS==1) printf("hello: rc=%x\n", rc); rc = proto_client_hello(C->ph); if (rc > 0) game_process_reply(C); } break; case 'm': gettimeofday(&rpc_start, NULL); if (PROTO_PRINT_DUMPS==1) printf("move: rc=%x\n", rc); rc = proto_client_move(C->ph, c); break; case 'f': gettimeofday(&rpc_pickup_start, NULL); if (PROTO_PRINT_DUMPS==1) printf("pickup: rc=%x\n", rc); rc = proto_client_pickup(C->ph); break; case 'g': if (PROTO_PRINT_DUMPS==1) printf("goodbye: rc=%x\n", rc); rc = proto_client_goodbye(C->ph); // We are done, exit the client exit(1); rc = -1; break; case 's': if (PROTO_PRINT_DUMPS==1) printf("start: rc=%x\n", rc); rc = proto_client_startgame(C->ph); break; case 'q': if (PROTO_PRINT_DUMPS==1) printf("query map: rc=%x\n", rc); rc = proto_client_querymap(C->ph); break; default: printf("%s: unknown command %c\n", __func__, c); } // NULL MT OVERRIDE ;-) if (PROTO_PRINT_DUMPS==1) printf("%s: rc=0x%x\n", __func__, rc); if (rc == 0xdeadbeef) rc=1; return rc; }