| 266 | return data->eventStringCount++; |
| 267 | } |
| 268 | int Server::addEvent(const BWAPI::Event& e) |
| 269 | { |
| 270 | assert(data->eventCount < GameData::MAX_EVENTS); |
| 271 | BWAPIC::Event* e2 = &(data->events[data->eventCount++]); |
| 272 | int id = data->eventCount; |
| 273 | e2->type = e.getType(); |
| 274 | e2->v1 = 0; |
| 275 | e2->v2 = 0; |
| 276 | switch (e.getType()) |
| 277 | { |
| 278 | case BWAPI::EventType::MatchEnd: |
| 279 | e2->v1 = e.isWinner(); |
| 280 | break; |
| 281 | case BWAPI::EventType::SendText: |
| 282 | case BWAPI::EventType::SaveGame: |
| 283 | e2->v1 = addString(e.getText().c_str()); |
| 284 | break; |
| 285 | case BWAPI::EventType::PlayerLeft: |
| 286 | e2->v1 = getPlayerID(e.getPlayer()); |
| 287 | break; |
| 288 | case BWAPI::EventType::ReceiveText: |
| 289 | e2->v1 = getPlayerID(e.getPlayer()); |
| 290 | e2->v2 = addString(e.getText().c_str()); |
| 291 | break; |
| 292 | case BWAPI::EventType::NukeDetect: |
| 293 | e2->v1 = e.getPosition().x; |
| 294 | e2->v2 = e.getPosition().y; |
| 295 | break; |
| 296 | case BWAPI::EventType::UnitDiscover: |
| 297 | case BWAPI::EventType::UnitEvade: |
| 298 | case BWAPI::EventType::UnitCreate: |
| 299 | case BWAPI::EventType::UnitDestroy: |
| 300 | case BWAPI::EventType::UnitMorph: |
| 301 | case BWAPI::EventType::UnitShow: |
| 302 | case BWAPI::EventType::UnitHide: |
| 303 | case BWAPI::EventType::UnitRenegade: |
| 304 | case BWAPI::EventType::UnitComplete: |
| 305 | e2->v1 = getUnitID(e.getUnit()); |
| 306 | break; |
| 307 | default: |
| 308 | break; |
| 309 | } |
| 310 | return id; |
| 311 | } |
| 312 | |
| 313 | void Server::setWaitForResponse(bool wait) |
| 314 | { |