U32 CoverPoint::packUpdate(NetConnection *conn, U32 mask, BitStream *stream) { U32 retMask = Parent::packUpdate(conn, mask, stream); stream->writeInt(mSize, 4); stream->writeFlag(mOccupied); stream->writeFlag(peekLeft()); stream->writeFlag(peekRight()); stream->writeFlag(peekOver()); // Write our transform information if(stream->writeFlag(mask & TransformMask)) { mathWrite(*stream, getTransform()); mathWrite(*stream, getScale()); } return retMask; }
void Sun::beginPhase(int phase) { switch (phase) { case 0: wait(5000); break; case 1: move(180.0f, Game::kScreenWidth / 2.0f, 32.0f); //move(360 - 115.0f, Game::kScreenWidth * 2, 512.0f); //splash! break; case 2: move(180.0f, Game::kScreenWidth / 2.5f, 32.0f); break; case 3: move(270.0f, 1 * Game::kScreenHeight / 3, 32.0f); break; case 4: wait(3000); break; case 5: move(330.0f, 500.0f, 256.0f); break; case 6: move(90.0f, 1.7f * Game::kScreenHeight / 3.0f, 128.0f); break; case 7: move(270.0f, 1.0f * Game::kScreenHeight / 3.0f, 256.0f); break; case 8: move(30.0f, Game::kScreenHeight / 1.5f, 128.0f); break; case 9: wait(10000); break; case 10: move(240.0f, Game::kScreenWidth / 3.0f, 128.0f); break; case 11: move(120.0f, Game::kScreenWidth / 3.0f, 128.0f); break; case 12: move(240.0f, Game::kScreenWidth / 3.0f, 128.0f); break; case 13: move(120.0f, Game::kScreenWidth / 1.5f, 128.0f); break; case 14: move(240.0f, Game::kScreenWidth / 1.375f, 128.0f); break; case 15: moveRandY(); break; case 16: peekRight(); break; case 17: dashRight(); break; case 18: returnLeft(); break; case 19: moveRandY(); break; case 20: peekRight(); break; case 21: dashRight(); break; case 22: returnLeft(); break; case 23: moveRandY(); break; case 24: peekRight(); break; case 25: dashRight(); break; case 26: returnLeft(); break; case 27: moveY(-sprite_->height() / 2, 1000); break; case 28: move(0.0f, Game::kScreenWidth / 1.5f, 256.0f); break; case 29: move(270.0f, Game::kScreenHeight, 32.0f); break; case 30: move(90.0f, Game::kScreenHeight, 32.0f); break; //now come from the right into the endgame case 31: move(0.0f, Game::kScreenWidth / 1.25f, 256.0f); break; case 32: finalAttack(); break; } }
void play(void) { MWEvent event; MW244BPacket incoming; event.eventDetail = &incoming; while (TRUE) { NextEvent(&event, M->theSocket()); if (!M->peeking()) switch(event.eventType) { case EVENT_A: aboutFace(); break; case EVENT_S: leftTurn(); break; case EVENT_D: forward(); break; case EVENT_F: rightTurn(); break; case EVENT_BAR: backward(); break; case EVENT_LEFT_D: peekLeft(); break; case EVENT_MIDDLE_D: shoot(); break; case EVENT_RIGHT_D: peekRight(); break; case EVENT_NETWORK: processPacket(&event); break; case EVENT_INT: quit(0); break; } else switch (event.eventType) { case EVENT_RIGHT_U: case EVENT_LEFT_U: peekStop(); break; case EVENT_NETWORK: processPacket(&event); break; } ratStates(); /* clean house */ manageMissiles(); DoViewUpdate(); mws_update(M->state); /* Any info to send over network? */ } }
/* ----------------------------------------------------------------------- */ void play(void) { // initialisation cout << "Starting Play" << endl; //SetRatPosition(7,1,5,0); proj.present = false; proj.prev_x = proj.prev_y = proj.x = proj.y = 1; int turn = 0; updateSeqNo = true; join = false; for (int k = 0; k < 8; k++) participants[k] = prevseq_a[k] = 0; for (int k = 0; k < 8; k++) expected_seqno[k] = k+1; GLOBAL_ID = 0; checking = 1; checkingzero=1; MWEvent event; MW244BPacket incoming; event.eventDetail = &incoming; while (TRUE) { turn ++; NextEvent(&event, M->theSocket()); if (!M->peeking()) switch(event.eventType) { case EVENT_A: aboutFace(); break; case EVENT_S: leftTurn(); break; case EVENT_D: forward(); break; case EVENT_F: rightTurn(); break; case EVENT_LEFT_D: peekLeft(); break; case EVENT_BAR: shoot(); break; case EVENT_RIGHT_D: peekRight(); break; case EVENT_NETWORK: processPacket(&event); break; case EVENT_TIMEOUT: checking = (++checking) % 25; if (checking == 0 && !join){ cout << "Setting ID to zero" << endl; join = true; setMapping(); } else {cout << "TIMEOUT" << endl; participation = (++participation) % 30; manageMissiles(); if (participation == 29) { ratStates(); /* clean house */ for (int i = 0 ; i < 8 ; i++) participants[i] = 0; } } break; case EVENT_INT: quit(0); break; } else switch (event.eventType) { case EVENT_RIGHT_U: case EVENT_LEFT_U: peekStop(); break; case EVENT_NETWORK: processPacket(&event); break; } DoViewUpdate(); checking ++; manageMissiles(); if (join && checkingzero == 0) { MW244BPacket p; makePacket(&p,'a',kills, updateSeqNo); sendPacketToPlayers(p); } else if (join && turn % 2 == 0) { MW244BPacket p; makePacket(&p,'t',-1, updateSeqNo); sendPacketToPlayers(p); } } }