예제 #1
0
        private void OnSaveSnapshot()
        {
            string filename = "snapshot";
            int    i        = 0;

            while (File.Exists(Path.Combine(CSettings.sFolderProfiles, filename + i + ".png")))
            {
                i++;
            }
            _Snapshot.Save(Path.Combine(CSettings.sFolderProfiles, filename + i + ".png"), System.Drawing.Imaging.ImageFormat.Png);
            CProfiles.LoadAvatars();
            LoadAvatars();
            _Snapshot = null;
            CWebcam.Stop();
            CDraw.RemoveTexture(ref _WebcamTexture);

            for (int j = 0; j < CProfiles.Avatars.Length; j++)
            {
                if (CProfiles.Avatars[j].FileName == (filename + i + ".png"))
                {
                    CProfiles.SetAvatar(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection, j);
                    break;
                }
            }

            Buttons[htButtons(ButtonSaveSnapshot)].Visible    = false;
            Buttons[htButtons(ButtonDiscardSnapshot)].Visible = false;
            Buttons[htButtons(ButtonTakeSnapshot)].Visible    = false;
            Buttons[htButtons(ButtonWebcam)].Visible          = true;
        }
예제 #2
0
        private void _LoadAvatars(bool keep)
        {
            int selectedAvatarID = _SelectSlides[_SelectSlideAvatars].SelectedTag;

            _SelectSlides[_SelectSlideAvatars].Clear();
            IEnumerable <CAvatar> avatars = CProfiles.GetAvatars();

            if (avatars != null)
            {
                foreach (CAvatar avatar in avatars)
                {
                    _SelectSlides[_SelectSlideAvatars].AddValue(avatar.GetDisplayName(), null, avatar.ID);
                }
            }

            if (keep)
            {
                _SelectSlides[_SelectSlideAvatars].SelectedTag = selectedAvatarID;
                CProfiles.SetAvatar(_NewProfileID, selectedAvatarID);
            }
            else
            {
                _SelectSlides[_SelectSlideAvatars].SelectedTag = CProfiles.GetAvatarID(_NewProfileID);
            }

            _AvatarsChanged = false;
        }
예제 #3
0
        private void _NewProfile()
        {
            _EditMode = EEditMode.None;
            Guid id = CProfiles.NewProfile();

            //_LoadProfiles(false);
            _NewProfileID = id;

            CProfiles.SetAvatar(_NewProfileID, _SelectSlides[_SelectSlideAvatars].SelectedTag);

            _SelectElement(_Buttons[_ButtonPlayerName]);
            //_EditMode = EEditMode.PlayerName;
        }
예제 #4
0
        private void NewProfile()
        {
            _EditMode = EEditMode.None;
            CProfiles.NewProfile();
            LoadProfiles();
            SelectSlides[htSelectSlides(SelectSlideProfiles)].LastValue();

            CProfiles.SetAvatar(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                SelectSlides[htSelectSlides(SelectSlideAvatars)].Selection);

            SetInteractionToButton(Buttons[htButtons(ButtonPlayerName)]);
            _EditMode = EEditMode.PlayerName;
        }
예제 #5
0
        private void _NewProfile()
        {
            _EditMode = EEditMode.None;
            Guid id = CProfiles.NewProfile();

            _LoadProfiles(false);
            int num = CProfiles.NumProfiles;

            _SelectSlides[_SelectSlideProfiles].SelectedTag = num;
            _SelectSlideGuids.Add(num, id);

            CProfiles.SetAvatar(id, _SelectSlides[_SelectSlideAvatars].SelectedTag);

            _SelectElement(_Buttons[_ButtonPlayerName]);
            _EditMode = EEditMode.PlayerName;
        }
예제 #6
0
        private void _OnSaveSnapshot()
        {
            string file = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CConfig.ProfileFolders[0]), "snapshot.png");

            _Snapshot.Save(file, ImageFormat.Png);

            _Snapshot = null;
            CDraw.RemoveTexture(ref _WebcamTexture);

            _Buttons[_ButtonSaveSnapshot].Visible    = false;
            _Buttons[_ButtonDiscardSnapshot].Visible = false;
            _Buttons[_ButtonTakeSnapshot].Visible    = false;
            _Buttons[_ButtonWebcam].Visible          = CWebcam.IsDeviceAvailable();

            int id = CProfiles.NewAvatar(file);

            CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].SelectedTag, id);
            _LoadAvatars(false);

            _SelectElement(_Buttons[_ButtonSave]);
        }
예제 #7
0
        public override bool HandleInput(SKeyEvent keyEvent)
        {
            if ((keyEvent.Key == Keys.Up || keyEvent.Key == Keys.Down) && _EditMode == EEditMode.PlayerName)
            {
                _EditMode = EEditMode.None;
            }
            if (_EditMode == EEditMode.None)
            {
                base.HandleInput(keyEvent);
            }

            if (keyEvent.KeyPressed && !Char.IsControl(keyEvent.Unicode))
            {
                switch (_EditMode)
                {
                case EEditMode.None:
                    break;

                case EEditMode.PlayerName:
                    CProfiles.AddGetPlayerName(_NewProfileID, keyEvent.Unicode);
                    _ProfilesChanged = true;
                    break;
                }
            }
            else
            {
                switch (keyEvent.Key)
                {
                case Keys.Escape:
                    _DeleteProfile();
                    _ClosePopup();
                    break;

                case Keys.Enter:
                    if (_Buttons[_ButtonCancel].Selected)
                    {
                        _DeleteProfile();
                        _ClosePopup();
                    }

                    else if (_Buttons[_ButtonSave].Selected)
                    {
                        _SaveProfiles();
                        _ClosePopup();
                    }

                    /*else if (_Buttons[_ButtonNew].Selected)
                     *  _NewProfile();*/
                    else if (_Buttons[_ButtonPlayerName].Selected)
                    {
                        if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
                        {
                            _EditMode = EEditMode.PlayerName;
                        }
                        else
                        {
                            _EditMode = EEditMode.None;
                        }
                    }

                    /*else if (_Buttons[_ButtonDelete].Selected)
                     *  _DeleteProfile();*/
                    break;

                case Keys.Back:
                    if (_EditMode == EEditMode.PlayerName)
                    {
                        CProfiles.GetDeleteCharInPlayerName(_NewProfileID);
                        _ProfilesChanged = true;
                    }
                    else
                    {
                        _ClosePopup();
                    }
                    break;

                case Keys.Delete:
                    _DeleteProfile();
                    break;
                }
                if (_SelectSlides[_SelectSlideDifficulty].Selected)
                {
                    CProfiles.SetDifficulty(_NewProfileID,
                                            (EGameDifficulty)_SelectSlides[_SelectSlideDifficulty].Selection);
                }
                else if (_SelectSlides[_SelectSlideAvatars].Selected)
                {
                    CProfiles.SetAvatar(_NewProfileID,
                                        _SelectSlides[_SelectSlideAvatars].SelectedTag);
                }

                /*else if (_SelectSlides[_SelectSlideUserRole].Selected)
                 * {
                 *  CProfiles.SetUserRoleProfile(_NewProfileID,
                 *                               (EUserRole)_SelectSlides[_SelectSlideUserRole].Selection);
                 * }
                 * else if (_SelectSlides[_SelectSlideActive].Selected)
                 * {
                 *  CProfiles.SetActive(_NewProfileID,
                 *                      (EOffOn)_SelectSlides[_SelectSlideActive].Selection);
                 * }*/
            }

            return(true);
        }
예제 #8
0
        public override bool HandleMouse(SMouseEvent mouseEvent)
        {
            if (_EditMode == EEditMode.None)
            {
                base.HandleMouse(mouseEvent);
            }

            if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
            {
                if (_Buttons[_ButtonCancel].Selected)
                {
                    _DeleteProfile();
                    _ClosePopup();
                }
                else if (_Buttons[_ButtonSave].Selected)
                {
                    _SaveProfiles();
                    _ClosePopup();
                }

                /*else if (_Buttons[_ButtonNew].Selected)
                 *  _NewProfile();
                 * else if (_Buttons[_ButtonDelete].Selected)
                 *  _DeleteProfile();*/
                else if (_Buttons[_ButtonPlayerName].Selected)
                {
                    if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
                    {
                        _EditMode = EEditMode.PlayerName;
                    }
                    else
                    {
                        _EditMode = EEditMode.None;
                    }
                }
                else if (_SelectSlides[_SelectSlideDifficulty].Selected)
                {
                    CProfiles.SetDifficulty(_NewProfileID,
                                            (EGameDifficulty)_SelectSlides[_SelectSlideDifficulty].Selection);
                }
                else if (_SelectSlides[_SelectSlideAvatars].Selected)
                {
                    CProfiles.SetAvatar(_NewProfileID,
                                        _SelectSlides[_SelectSlideAvatars].SelectedTag);
                }

                /*else if (_SelectSlides[_SelectSlideUserRole].Selected)
                 * {
                 *  CProfiles.SetUserRoleProfile(_NewProfileID,
                 *                               (EUserRole)_SelectSlides[_SelectSlideUserRole].Selection);
                 * }
                 * else if (_SelectSlides[_SelectSlideActive].Selected)
                 * {
                 *  CProfiles.SetActive(_NewProfileID,
                 *                      (EOffOn)_SelectSlides[_SelectSlideActive].Selection);
                 * }
                 */
            }

            if (mouseEvent.RB)
            {
                _ClosePopup();
            }
            return(true);
        }
예제 #9
0
        public override bool HandleInput(KeyEvent KeyEvent)
        {
            if (_EditMode == EEditMode.None)
            {
                base.HandleInput(KeyEvent);
            }

            if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode))
            {
                switch (_EditMode)
                {
                case EEditMode.None:
                    break;

                case EEditMode.PlayerName:
                    SelectSlides[htSelectSlides(SelectSlideProfiles)].RenameValue(
                        CProfiles.AddGetPlayerName(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection, KeyEvent.Unicode));
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (KeyEvent.Key)
                {
                case Keys.Escape:
                    CGraphics.FadeTo(EScreens.ScreenMain);
                    break;

                case Keys.Enter:
                    if (Buttons[htButtons(ButtonExit)].Selected)
                    {
                        CGraphics.FadeTo(EScreens.ScreenMain);
                    }
                    else if (Buttons[htButtons(ButtonSave)].Selected)
                    {
                        SaveProfiles();
                    }
                    else if (Buttons[htButtons(ButtonNew)].Selected)
                    {
                        NewProfile();
                    }
                    else if (Buttons[htButtons(ButtonPlayerName)].Selected)
                    {
                        if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
                        {
                            _EditMode = EEditMode.PlayerName;
                        }
                        else
                        {
                            _EditMode = EEditMode.None;
                        }
                    }
                    else if (Buttons[htButtons(ButtonDelete)].Selected)
                    {
                        DeleteProfile();
                    }
                    break;

                case Keys.Back:
                    if (_EditMode == EEditMode.PlayerName)
                    {
                        SelectSlides[htSelectSlides(SelectSlideProfiles)].RenameValue(
                            CProfiles.GetDeleteCharInPlayerName(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection));
                    }
                    else
                    {
                        CGraphics.FadeTo(EScreens.ScreenMain);
                    }
                    break;

                case Keys.Delete:
                    DeleteProfile();
                    break;
                }
                if (SelectSlides[htSelectSlides(SelectSlideDifficulty)].Selected)
                {
                    CProfiles.SetDifficulty(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                            (EGameDifficulty)SelectSlides[htSelectSlides(SelectSlideDifficulty)].Selection);
                }
                else if (SelectSlides[htSelectSlides(SelectSlideAvatars)].Selected)
                {
                    CProfiles.SetAvatar(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                        SelectSlides[htSelectSlides(SelectSlideAvatars)].Selection);
                }
                else if (SelectSlides[htSelectSlides(SelectSlideGuestProfile)].Selected)
                {
                    CProfiles.SetGuestProfile(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                              (EOffOn)SelectSlides[htSelectSlides(SelectSlideGuestProfile)].Selection);
                }
                else if (SelectSlides[htSelectSlides(SelectSlideActive)].Selected)
                {
                    CProfiles.SetActive(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                        (EOffOn)SelectSlides[htSelectSlides(SelectSlideActive)].Selection);
                }
            }

            return(true);
        }
예제 #10
0
        public override bool HandleMouse(MouseEvent MouseEvent)
        {
            if (_EditMode == EEditMode.None)
            {
                base.HandleMouse(MouseEvent);
            }

            if (MouseEvent.LB && IsMouseOver(MouseEvent))
            {
                if (Buttons[htButtons(ButtonExit)].Selected)
                {
                    CGraphics.FadeTo(EScreens.ScreenMain);
                }
                else if (Buttons[htButtons(ButtonSave)].Selected)
                {
                    SaveProfiles();
                }
                else if (Buttons[htButtons(ButtonNew)].Selected)
                {
                    NewProfile();
                }
                else if (Buttons[htButtons(ButtonDelete)].Selected)
                {
                    DeleteProfile();
                }
                else if (Buttons[htButtons(ButtonPlayerName)].Selected)
                {
                    if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
                    {
                        _EditMode = EEditMode.PlayerName;
                    }
                    else
                    {
                        _EditMode = EEditMode.None;
                    }
                }
                else if (SelectSlides[htSelectSlides(SelectSlideDifficulty)].Selected)
                {
                    CProfiles.SetDifficulty(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                            (EGameDifficulty)SelectSlides[htSelectSlides(SelectSlideDifficulty)].Selection);
                }
                else if (SelectSlides[htSelectSlides(SelectSlideAvatars)].Selected)
                {
                    CProfiles.SetAvatar(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                        SelectSlides[htSelectSlides(SelectSlideAvatars)].Selection);
                }
                else if (SelectSlides[htSelectSlides(SelectSlideGuestProfile)].Selected)
                {
                    CProfiles.SetGuestProfile(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                              (EOffOn)SelectSlides[htSelectSlides(SelectSlideGuestProfile)].Selection);
                }
                else if (SelectSlides[htSelectSlides(SelectSlideActive)].Selected)
                {
                    CProfiles.SetActive(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
                                        (EOffOn)SelectSlides[htSelectSlides(SelectSlideActive)].Selection);
                }
            }

            if (MouseEvent.RB)
            {
                CGraphics.FadeTo(EScreens.ScreenMain);
            }
            return(true);
        }
예제 #11
0
        public override bool HandleInput(SKeyEvent keyEvent)
        {
            if (_EditMode == EEditMode.None)
            {
                base.HandleInput(keyEvent);
            }

            if (keyEvent.KeyPressed && !Char.IsControl(keyEvent.Unicode))
            {
                switch (_EditMode)
                {
                case EEditMode.None:
                    break;

                case EEditMode.PlayerName:
                    _SelectSlides[_SelectSlideProfiles].RenameValue(
                        CProfiles.AddGetPlayerName(_SelectSlides[_SelectSlideProfiles].SelectedTag, keyEvent.Unicode));
                    _ProfilesChanged = true;
                    break;
                }
            }
            else
            {
                switch (keyEvent.Key)
                {
                case Keys.Escape:
                    if (_EditMode == EEditMode.PlayerName)
                    {
                        _EditMode = EEditMode.None;
                    }
                    else
                    {
                        CGraphics.FadeTo(EScreen.Main);
                    }
                    break;

                case Keys.Enter:
                    if (_Buttons[_ButtonExit].Selected)
                    {
                        CGraphics.FadeTo(EScreen.Main);
                    }
                    else if (_Buttons[_ButtonSave].Selected)
                    {
                        _SaveProfiles();
                    }
                    else if (_Buttons[_ButtonNew].Selected)
                    {
                        _NewProfile();
                    }
                    else if (_Buttons[_ButtonPlayerName].Selected)
                    {
                        if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
                        {
                            _EditMode = EEditMode.PlayerName;
                        }
                        else
                        {
                            _EditMode = EEditMode.None;
                        }
                    }
                    else if (_Buttons[_ButtonDelete].Selected)
                    {
                        _DeleteProfile();
                    }
                    else if (_Buttons[_ButtonWebcam].Selected)
                    {
                        _OnWebcam();
                    }
                    else if (_Buttons[_ButtonSaveSnapshot].Selected)
                    {
                        _OnSaveSnapshot();
                    }
                    else if (_Buttons[_ButtonDiscardSnapshot].Selected)
                    {
                        _OnDiscardSnapshot();
                    }
                    else if (_Buttons[_ButtonTakeSnapshot].Selected)
                    {
                        _OnTakeSnapshot();
                    }
                    break;

                case Keys.Back:
                    if (_EditMode == EEditMode.PlayerName)
                    {
                        _SelectSlides[_SelectSlideProfiles].RenameValue(
                            CProfiles.GetDeleteCharInPlayerName(_SelectSlides[_SelectSlideProfiles].SelectedTag));
                        _ProfilesChanged = true;
                    }
                    else
                    {
                        CGraphics.FadeTo(EScreen.Main);
                    }
                    break;

                case Keys.Delete:
                    _DeleteProfile();
                    break;
                }
                if (_SelectSlides[_SelectSlideDifficulty].Selected)
                {
                    CProfiles.SetDifficulty(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                            (EGameDifficulty)_SelectSlides[_SelectSlideDifficulty].Selection);
                }
                else if (_SelectSlides[_SelectSlideAvatars].Selected)
                {
                    CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                        _SelectSlides[_SelectSlideAvatars].SelectedTag);
                }
                else if (_SelectSlides[_SelectSlideUserRole].Selected)
                {
                    CProfiles.SetUserRoleProfile(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                                 (EUserRole)_SelectSlides[_SelectSlideUserRole].Selection);
                }
                else if (_SelectSlides[_SelectSlideActive].Selected)
                {
                    CProfiles.SetActive(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                        (EOffOn)_SelectSlides[_SelectSlideActive].Selection);
                }
            }

            return(true);
        }
예제 #12
0
        public override bool HandleMouse(SMouseEvent mouseEvent)
        {
            if (_EditMode == EEditMode.None)
            {
                base.HandleMouse(mouseEvent);
            }

            if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
            {
                if (_Buttons[_ButtonExit].Selected)
                {
                    CGraphics.FadeTo(EScreen.Main);
                }
                else if (_Buttons[_ButtonSave].Selected)
                {
                    _SaveProfiles();
                }
                else if (_Buttons[_ButtonNew].Selected)
                {
                    _NewProfile();
                }
                else if (_Buttons[_ButtonDelete].Selected)
                {
                    _DeleteProfile();
                }
                else if (_Buttons[_ButtonPlayerName].Selected)
                {
                    if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
                    {
                        _EditMode = EEditMode.PlayerName;
                    }
                    else
                    {
                        _EditMode = EEditMode.None;
                    }
                }
                else if (_SelectSlides[_SelectSlideDifficulty].Selected)
                {
                    CProfiles.SetDifficulty(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                            (EGameDifficulty)_SelectSlides[_SelectSlideDifficulty].Selection);
                }
                else if (_SelectSlides[_SelectSlideAvatars].Selected)
                {
                    CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                        _SelectSlides[_SelectSlideAvatars].SelectedTag);
                    if (CWebcam.IsDeviceAvailable() && _WebcamTexture != null)
                    {
                        _OnDiscardSnapshot();
                    }
                }
                else if (_SelectSlides[_SelectSlideUserRole].Selected)
                {
                    CProfiles.SetUserRoleProfile(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                                 (EUserRole)_SelectSlides[_SelectSlideUserRole].Selection);
                }
                else if (_SelectSlides[_SelectSlideActive].Selected)
                {
                    CProfiles.SetActive(_SelectSlides[_SelectSlideProfiles].SelectedTag,
                                        (EOffOn)_SelectSlides[_SelectSlideActive].Selection);
                }
                else if (_Buttons[_ButtonWebcam].Selected)
                {
                    _OnWebcam();
                }
                else if (_Buttons[_ButtonSaveSnapshot].Selected)
                {
                    _OnSaveSnapshot();
                }
                else if (_Buttons[_ButtonDiscardSnapshot].Selected)
                {
                    _OnDiscardSnapshot();
                }
                else if (_Buttons[_ButtonTakeSnapshot].Selected)
                {
                    _OnTakeSnapshot();
                }
            }

            if (mouseEvent.RB)
            {
                CGraphics.FadeTo(EScreen.Main);
            }
            return(true);
        }