本文整理汇总了C++中WriteBuffer::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ WriteBuffer::clear方法的具体用法?C++ WriteBuffer::clear怎么用?C++ WriteBuffer::clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WriteBuffer
的用法示例。
在下文中一共展示了WriteBuffer::clear方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: move
unique_ptr<Card> PlayerServer::judge()
{
auto card = move(GAME->drawCards(1).front());
WriteBuffer wb;
wb << card->id;
GAME->notify(100, Notify_JudgeStart, wb);
TRIEV(t_Judge, &card);
wb.clear();
wb << card->id;
GAME->notify(100, Notify_JudgeEnd, wb);
return card;
}
示例2: died
void PlayerServer::died(PlayerServer *killer)
{
WriteBuffer wb;
wb << position;
GAME->notify(100, Notify_PlayerDied, wb);
TRIEV(t_PlayerDied,&killer);
alive = false;
eventsRegister.clear();
wb.clear();
wb << position << role;
GAME->notify(100, Notify_PlayerRole, wb);
switch (role)
{
case Role_Zhu:
{
int aliveNei = 0;
for (auto player : game->players) {
if (player->alive) {
if (player->role==Role_Nei) {
aliveNei++;
}
else {
throw Role_Fan;
}
}
}
if (aliveNei == 1) {
throw Role_Nei;
}
else
throw Role_Fan;
break;
}
case Role_Zhong:
if (killer && killer->role==Role_Zhu) {
killer->discardAll();
}
break;
case Role_Fan:
if (killer) {
killer->getHands(GAME->drawCards(3));
}
case Role_Nei:
{
for (auto player : game->players) {
if (player->alive && player->role != Role_Zhu && player->role != Role_Zhong) {
goto endSwitch;
}
}
throw Role_Zhu;
}
}
endSwitch:;
discardAll();
for (int i = 0; i < 3; i++) {
if (this->judgingArea[i]) {
list<unique_ptr<Card>> cards;
cards.push_back(move(loseJudgingArea((JudgingArea)i)));
discardCards(cards);
}
}
for (auto &p : skillCards) {
for (auto &card : p.second) {
GAME->addToDeadwood(card);
}
}
}