Exemplo n.º 1
0
void Wiimote::UpdateButtonsFromMessages(wm_core* buttons)
{
  MessageStack messageStack = MessagePipe::Instance().FilteredStack('k', m_index + 1);
  
  if (!messageStack.IsEmpty())
  {
    *buttons = 0;
  }
  std::string addRelease;
  while (!messageStack.IsEmpty())
  {
    wm_core mask;
    std::string message = messageStack.Pop();
    char code;
    int player;
    std::istringstream iss(message);
    iss >> player >> code >> mask;
    *buttons |= mask;

    if (mask == 0 && buttons != 0)
    {
      addRelease = message;
    }
  }

  if (addRelease.length() > 0)
  {
    messageStack.Push(addRelease);
  }
}