void ProcessRoomData(Message <Oculus.Platform.Models.Room> msg) { if (msg.Data.OwnerOptional.ID == PlatformManager.MyID) { amIServer = true; } else { amIServer = false; } // if the caller left while I was in the process of joining, just use that as our new room if (msg.Data.UsersOptional.Count == 1) { PlatformManager.TransitionToState(PlatformManager.State.WAITING_IN_A_ROOM); } else { PlatformManager.TransitionToState(PlatformManager.State.CONNECTED_IN_A_ROOM); } // Look for users that left PlatformManager.MarkAllRemoteUsersAsNotInRoom(); foreach (User user in msg.Data.UsersOptional) { if (user.ID != PlatformManager.MyID) { if (!PlatformManager.IsUserInRoom(user.ID)) { PlatformManager.AddRemoteUser(user.ID); } else { PlatformManager.MarkRemoteUserInRoom(user.ID); } } } PlatformManager.ForgetRemoteUsersNotInRoom(); PlatformManager.SetFloorColorForState(amIServer); }