Line data Source code
1 : /* 2 : Created by Daniel Monteiro on 08/10/2019. 3 : */ 4 : 5 : #ifndef DONT_INCLUDE 6 : #ifdef WIN32 7 : #include "Win32Int.h" 8 : #else 9 : 10 : #include <stdint.h> 11 : 12 : #endif 13 : 14 : #include "Enums.h" 15 : #include "Common.h" 16 : #include "Core.h" 17 : #include "Parser.h" 18 : #include <string.h> 19 : 20 : #endif 21 : 22 105 : uint8_t parseCommand(const char *cmd, const char *operand) { 23 105 : if (!strcmp(cmd, "pick")) { 24 23 : pickObjectByName(operand); 25 82 : } else if (!strcmp(cmd, "drop")) { 26 11 : dropObjectByName(operand); 27 71 : } else if (!strcmp(cmd, "move")) { 28 : 29 14 : if (operand != NULL && operand[0] != '\0') { 30 12 : moveBy(operand[0] - '0'); 31 : } else { 32 2 : errorHandlerCallback("Please specify a valid direction"); 33 : } 34 57 : } else if (!strcmp(cmd, "use")) { 35 23 : useObjectNamed(operand); 36 34 : } else if (!strcmp(cmd, "w")) { 37 4 : walkBy(0); 38 30 : } else if (!strcmp(cmd, "s")) { 39 5 : walkBy(2); 40 25 : } else if (!strcmp(cmd, "a")) { 41 5 : walkBy(3); 42 20 : } else if (!strcmp(cmd, "d")) { 43 5 : walkBy(1); 44 15 : } else if (!strcmp(cmd, "q")) { 45 4 : turnLeft(); 46 11 : } else if (!strcmp(cmd, "e")) { 47 4 : turnRight(); 48 7 : } else if (!strcmp(cmd, "walkTo")) { 49 4 : walkTo(operand); 50 : #ifdef INCLUDE_ITEM_DESCRIPTIONS 51 : } else if (!strcmp(cmd, "info")) { 52 : infoAboutItemNamed(operand); 53 : #endif 54 3 : } else if (!strcmp(cmd, "use-with")) { 55 2 : useObjectsTogether(operand); 56 : } else { 57 1 : defaultLogger("Unrecognized command"); 58 1 : return FALSE; 59 : } 60 : 61 104 : return TRUE; 62 : }