void Window_Selectable::Update(){ // 共通アップデート Update_Common(); // 選択時にウィンドウを閉じるかの判定 CheckAutoClose(); // キャンセル可能かどうかの判定 CheckCancelable(); switch(state){ case UPDATING: // 更新 switch(select.Move()){ case SELECT2D_CHOOSE: result = select.index; if(autoClose){ state = IDLE; Close(); } break; case SELECT2D_CANCEL: if(cancelable){ result = WND_SELECTABLE_RESULT_CANCEL; Close(); } break; } break; case SUSPENDED: // SUSPENDED状態の判定 state = UPDATING; break; } }
void BWindow_UseSkill::Update(){ Game_CampDoll* pDoll = NULL; Update_Common(); switch(state){ case UPDATING: // 更新 switch(phaze){ case WND_USESKILL_PHAZE_SKILLSELECT: // 使用スキルマネージャのアップデート switch(UpdateUseSkillManager()){ case USESKILLMANAGER_UPDATE_SELECTED: break; case USESKILLMANAGER_UPDATE_CANCELED: // 閉じる state = IDLE; resultOnBattle = BWND_USESKILL_RESULT_CANCELED; Close(); break; case USESKILLMANAGER_UPDATE_START_CHOOSEDOLL: g_sound.PlaySE(MYSE_SELECT_CHOOSE, 1.0f); phaze = WND_USESKILL_PHAZE_TARGETSELECT; break; } break; case WND_USESKILL_PHAZE_TARGETSELECT: if(closingCount == 0){ // ターゲットの選択 if(UpdateTargetSelect()){ // 実際の適用を行う switch(useSkillManager.ExecuteSkillForBattleDoll(pScene, s_doll.index)){ case USESKILLMANAGER_EXECUTE_DONE: pScene->ReflectTmpDollData(); closingCount = 1; break; default: break; } } }else{ closingCount++; if(closingCount >= 30){ state = IDLE; resultOnBattle = BWND_USESKILL_RESULT_USED; Close(); } } break; } break; case SUSPENDED: // SUSPENDED状態の判定 state = UPDATING; break; } }
void BWindow_Result::Update(){ Update_Common(); float rate = 0.0f; int timing = 0; switch(phaze){ case WND_RESULT_SHOW_INFO: if(activeCount > WND_RESULT_SHOW_INFO_TIME){ phaze = WND_RESULT_ADD_EXP; } break; case WND_RESULT_ADD_EXP: timing = activeCount - WND_RESULT_SHOW_INFO_TIME; if(activeCount > WND_RESULT_SHOW_INFO_TIME + WND_RESULT_ADD_EXP_TIME){ // 経験値の加算を終了する ImportDollData(false); phaze = WND_RESULT_WAITKEY; }else{ // 擬似的な経験値の付加・レベルアップの判定 ApplyPseudoExpToDolls((float)timing/WND_RESULT_ADD_EXP_TIME); } break; case WND_RESULT_WAITKEY: if(g_input.pushedKey & (g_key.input[BTN_CHOOSE] | g_key.input[BTN_CANCEL])){ phaze = WND_RESULT_LEVELUP; } break; case WND_RESULT_LEVELUP: if(w_dollNotice.GetState() == Window_Base::CLOSED){ if(CheckDollNotice() != -1){ }else{ // 終わったら閉じる OnClose(); phaze = WND_RESULT_CLOSING; Close(true); } } break; case WND_RESULT_CLOSING: break; } w_dollNotice.Update(); }
void Window_Selectable::Update(){ // 共通アップデート Update_Common(); // 選択時にウィンドウを閉じるかの判定 CheckAutoClose(); // キャンセル可能かどうかの判定 CheckCancelable(); switch(state){ case UPDATING: // 更新 switch(select.Move()){ case SELECT2D_CHOOSE: result = select.index; if(autoClose){ state = IDLE; Close(); } break; case SELECT2D_CANCEL: if(cancelable){ // キャンセルされた時の値を返す。 result = indexOnCanceled; /* if(indexOnCanceled >= 0){ select.index = indexOnCanceled; } */ state = IDLE; Close(); } break; } break; case SUSPENDED: // SUSPENDED状態の判定 state = UPDATING; break; } }
void BWindow_ChooseFront::Update(){ Update_Common(); // ステートによる分岐 switch(state){ case UPDATING: // キャンセルで閉じられるように if(!isFirstArrange && (g_input.pushedKey & g_key.input[BTN_CANCEL])){ // その場合は何も反映させない canceled = true; Close(true, false); return; } if(!cursorIsConfirm){ // 最初に下キーの判定を行う if(s_main.GetRow(s_main.index) == s_main.row-1){ if(GetSelectedDollNum() > 0){ if((g_input.pushedKey & PAD_INPUT_DOWN) && canConfirm){ cursorIsConfirm = true; } } } // 選択肢の分岐 switch(s_main.Move()){ case SELECT2D_CHOOSE: // クリックした時の動作 OnChoosed(s_main.index); break; case SELECT2D_CANCEL: /* if(cancelable){ select.index = SELECTRESULT_CANCELED; pWndCommand->SetPhaze(BWND_DOLLCOMMAND_PHAZE_MAIN); Close(true, false); // スキルの情報を表示するウィンドウを閉じる。 pScene->CloseSkillAccLineWindow(); break; } */ break; default: break; } }else{ if(g_input.pushedKey & g_key.input[BTN_CHOOSE]){ // 決定に合わせた上で決定キーを押すと決定 for(int n=0; n<MAX_BATTLEDOLL; n++){ pScene->SetDollIsFront(n, false); } for(int n=0; n<NUM_BATTLEDOLL_FRONT; n++){ if(selectedIndex[n] != -1){ pScene->SetDollIsFront(selectedIndex[n], true); } } if(pScene->AttachDollPtrToSprite()){ state = IDLE; if(!isFirstArrange){ arrangedInTurn = true; } isFirstArrange = false; canceled = false; Close(); } }else if(g_input.pushedKey & PAD_INPUT_UP){ cursorIsConfirm = false; } } if(g_input.pushedKey & g_key.input[BTN_SHOWINFO]){ // 表示状態を情報キーで入れ替えることが出来る ChangeFullWindow(!isFullWindow); } break; case SUSPENDED: state = UPDATING; break; } }