Exemplo n.º 1
0
void Protocol::GenerateMap()
{
    struct PTankMap pmap;
    for(int i=0; i<scene->NumTankOnGame(); i++) {
        struct PTankData *ptdata = &(pmap.tanks[i]);
        Tank *tank = scene->getTank(i);
        ptdata->x = tank->pos().x();
        ptdata->y = tank->pos().y();
        ptdata->angle = tank->rotation();
        ptdata->id = i;
        ptdata->fire_on = tank->Action() & ACT_FIRE?1:0;
        if(tank->Action() & ACT_FIRE) {
            int x=0;
        }
        ptdata->move_up = tank->Action() & MOVE_UP?1:0;
        ptdata->move_left = tank->Action() & MOVE_LEFT?1:0;
        ptdata->move_right = tank->Action() & MOVE_RIGHT?1:0;
    }
    pmap.code = SEND_MAP;
    pmap.total_tank = scene->NumTankOnGame();

    const char *ch = (const char *) &pmap;
    QByteArray array(ch, sizeof(struct PTankMap));
    scene->gserver->BroadcastMessage(array);
}