mirror of
https://github.com/brmlab/brmlife.git
synced 2025-08-02 18:03:37 +02:00
Connection: Add negotiation phase
This commit is contained in:
parent
85e143fd11
commit
9cf99e0bcd
3 changed files with 12 additions and 3 deletions
|
@ -16,6 +16,8 @@
|
|||
void
|
||||
connection::senses(int tick_id, class agent &a)
|
||||
{
|
||||
assert(!negotiation);
|
||||
|
||||
char buf[1024];
|
||||
snprintf(buf, sizeof(buf),
|
||||
"tick %d\r\n"
|
||||
|
@ -74,19 +76,26 @@ connection::actions(class agent &agent)
|
|||
if (y < -1) y = -1; if (y > 1) y = 1;
|
||||
if (!agent.move_dir(x, y))
|
||||
bump();
|
||||
} else if (!cmd.compare("attack_dir")) {
|
||||
|
||||
} else if (!negotiation && !cmd.compare("attack_dir")) {
|
||||
int x = 0, y = 0;
|
||||
sscanf(line.c_str(), "%d %d", &x, &y);
|
||||
if (x < -1) x = -1; if (x > 1) x = 1;
|
||||
if (y < -1) y = -1; if (y > 1) y = 1;
|
||||
if (!agent.attack_dir(x, y))
|
||||
bump();
|
||||
|
||||
} else {
|
||||
std::cout << "unknown line " << cmd << " " << line << " ...\n";
|
||||
}
|
||||
}
|
||||
in_buf.erase(0, 2);
|
||||
|
||||
if (negotiation) {
|
||||
negotiation = false;
|
||||
agent.spawn();
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&buf_lock);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue