-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathInspectCommand.cpp
More file actions
67 lines (53 loc) · 2.15 KB
/
Copy pathInspectCommand.cpp
File metadata and controls
67 lines (53 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "Company.h"
#include "InspectCommand.h"
#include "Language.h"
#include "Person.h"
#include "Platform.h"
#include "MasterState.h"
#include "Trait.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
InspectCommand::InspectCommand(MasterState *masterState) : CommandFunctor(masterState, "inspect", "Debugging command to give detailed information about a person.") {
}
void InspectCommand::executeCommand(const char *line) {
char *tmp = (char *)malloc(strlen(line) + 1);
strcpy(tmp, line);
char *inspect = strtok(tmp, " ");
char *number = strtok(NULL, " ");
if (number != NULL) {
int realNumber = atoi(number);
vector <Person *> *allPeople = this->_masterState->getPlayerCompany()->getKnownPeople();
if (realNumber != 0 && realNumber <= allPeople->size()) {
Person *p = (*allPeople)[realNumber-1];
printf("%s %s\n", p->getFirstName().c_str(), p->getLastName().c_str());
printf("\tCompany: %s\n", p->getCompany() ? p->getCompany()->getName() : "None");
printf("\tSalary: %d\n", p->getCurrentSalary());
list<Trait *> *realTraits = p->getRealTraits();
list<Trait *> *believedTraits = p->getBelievedTraits();
for (list<Trait *>::iterator it = realTraits->begin(); it != realTraits->end(); ++it) {
Trait *t = *it;
printf("\tReal %s: %d\n", t->getName().c_str(), t->getAmount());
}
for (list<Trait *>::iterator it = believedTraits->begin(); it != believedTraits->end(); ++it) {
Trait *t = *it;
printf("\tBelieved %s: %d\n", t->getName().c_str(), t->getAmount());
}
map<Platform *, int> *platformSkills = p->getPlatformSkills();
for (map<Platform *, int>::iterator it = platformSkills->begin(); it != platformSkills->end(); ++it) {
Platform *p = it->first;
int amount = it->second;
printf("\tPlatform %s: %d\n", p->getName().c_str(), amount);
}
map<Language *, int> *languageSkills = p->getLanguageSkills();
for (map<Language *, int>::iterator it = languageSkills->begin(); it != languageSkills->end(); ++it) {
Language *l = it->first;
int amount = it->second;
printf("\tLanguage %s: %d\n", l->getName().c_str(), amount);
}
}
}
free(tmp);
}
InspectCommand::~InspectCommand() {
}