int SelectWnd::selectExec() { WORD oldSelect; int i; BOOL bSetCursor = FALSE; oldSelect = selectNum; selectNum = -1; for(i=0; i<slctCnt; i++) { if(PtInRect(&selectRect[i],sysInf.msPoint)) { selectNum = i; break; } } if(keyState.push_action) { if(selectNum >= 0) { PlayEffectNum(evtHandle[1],SelectSnd); selectEnd(); return selectNum; } } else if(bCancel && keyState.push_cancel) { PlayEffectNum(evtHandle[1],CancelSnd); selectEnd(); return -2; } else if(keyState.push_up || keyState.push_down) { if(keyState.push_up) { if(selectNum == (-1))selectNum = 0; else if(selectNum == 0)selectNum = slctCnt -1; else selectNum --; } else { if(selectNum == (-1))selectNum = 0; else { selectNum ++; if(selectNum >= slctCnt)selectNum = 0; } } bSetCursor = TRUE; } else if(keyState.push_left || keyState.push_right) { if(keyState.push_left) { selectNum = 0; } else { selectNum = slctCnt -1; } bSetCursor = TRUE; } if(bSetCursor) { point.x = selectRect[selectNum].left + 30; point.y = selectRect[selectNum].top + 20; SetWindowCursorPos(sysInf.hWnd, point.x, point.y); } if(oldSelect!=selectNum && selectNum>=0) { PlayEffectNum(evtHandle[1],CurMoveSnd); } return -1; } // SelectWnd::selectExec
void mainLoop() { if(lpSoundDS && lpSoundDS->lpNextMusic){ lpSoundDS->NextMusicStart(); } lookPadState(); lookPadRepeat(); switch(sysInf.execMode){ case movie_mode: if(FALSE==lpMovie->IsPlay()){ my_delete(lpMovie); static BOOL bOpOnece = TRUE; if(bOpOnece){ lpSoundDS->ChangeMusic(bgmHandle,pack_bgmfile,2,FALSE,0); lpMovie = new CMovie(); lpMovie->OpenMovie("title.avi",-1,TRUE); bOpOnece = FALSE; }else{ PlayEffectNum(evtHandle[1],SelectSnd); StartMainLoop(); } } return; case opening_mode: titleWnd->Exec(); break; case staffRoll_mode: lpStaffRoll->Exec(); break; case event_exec_mode: case select_exec_mode: EXEC_ControlLang( &LangData ); break; case menu_mode: lpMenuWnd->Exec(); break; case kabegami_mode: lpKabeSetWnd->Exec(); break; case staffmode_mode: lpStaffmodeWnd->Exec(); break; case save_mode: case load_mode: if(FALSE==saveWnd->selectExec()){ my_delete(saveWnd); } break; case backlog_mode: backLog.Exec(); break; } keyInOut: if(Render()){ HDC hDC = GetDC(sysInf.hWnd); BitBlt(hDC,0,0,WIN_SIZEX,WIN_SIZEY,g_DibInf.memDC,0,0,SRCCOPY); ReleaseDC(sysInf.hWnd,hDC); } } // mainLoop
BOOL SaveWnd::selectExec() { int i; BOOL bSetCur = FALSE; int oldSelect = selectNum, oldBtn = btnSelect; switch(state){ case save_fadein: if(timeGetTime() >= startTime){ alpha = 1.0f; state = save_exec; }else{ alpha = 1.0f - (startTime -timeGetTime()) /500.0f; } SetAlpha(); btn[2].selectRect.top = 565; btn[2].selectRect.bottom = btn[2].selectRect.top+25; btn[2].selectRect.left = LONG(709 +(1.0f- alpha)*(47+40*4)); btn[2].selectRect.right = btn[2].selectRect.left +86; return TRUE; case save_fadeout: if(timeGetTime() >= startTime){ alpha = 0; changeExecMode(bak_mode); return FALSE; } alpha = (startTime -timeGetTime()) /500.0f; SetAlpha(); btn[2].selectRect.top = 457+4*27; btn[2].selectRect.top += LONG((1.0f-alpha)*40); btn[2].selectRect.bottom = btn[2].selectRect.top +25; return TRUE; case save_writeSure: if(keyState.push_left || keyState.push_right || keyState.push_up || keyState.push_down){ bYesNo = !bYesNo; SetWindowCursorPos(sysInf.hWnd,yesnoBtn[bYesNo].selectRect.left+43, yesnoBtn[bYesNo].selectRect.top+12); } for(i=0;i<2;i++){ if(yesnoBtn[i].CheckState(&sysInf.msPoint)){ if(i==0){ PlayEffectNum(evtHandle[11],SE_PUSH); state = save_writeExec; return TRUE; }else{ PlayEffectNum(evtHandle[11],SE_CANCEL); state = save_exec; } } } if(keyState.push_cancel){ PlayEffectNum(evtHandle[11],SE_CANCEL); state = save_exec; } return TRUE; case save_loadSure: if(keyState.push_left || keyState.push_right || keyState.push_up || keyState.push_down){ bYesNo = !bYesNo; SetWindowCursorPos(sysInf.hWnd,yesnoBtn[bYesNo].selectRect.left+43, yesnoBtn[bYesNo].selectRect.top+12); } for(i=0;i<2;i++){ if(yesnoBtn[i].CheckState(&sysInf.msPoint)){ if(i==0){ if(SAV_Load( selectNum+offsetNum+1 )){ PlayEffectNum(evtHandle[11],SE_PUSH); startTime = timeGetTime(); state = save_loadEnd; return TRUE; } startTime = timeGetTime() +500; state = save_fadeout; return TRUE; }else{ PlayEffectNum(evtHandle[11],SE_CANCEL); state = save_exec; } } } if(keyState.push_cancel){ PlayEffectNum(evtHandle[11],SE_CANCEL); state = save_exec; } return TRUE; case save_writeExec: new_time = selectNum+offsetNum+1; SAV_Save( new_time ); useTable[selectNum+offsetNum] = TRUE; struct _stat fstatus; char fname[32]; wsprintf( fname, "save_%02d.sav", new_time ); _stat(fname,&fstatus); file_time[selectNum+offsetNum] = fstatus.st_mtime; CreateInfo(); startTime = timeGetTime(); state = save_writeEnd; case save_loadEnd: case save_writeEnd: i = timeGetTime() -startTime; if(i>1000){ if(state==save_writeEnd){ changeExecMode(bak_mode); }else{ changeExecMode(event_exec_mode); } startTime = timeGetTime(); if(voicefile[0])PlayVoice(voicefile, FALSE, 255); voicefile[0] = '\0'; bFadeOut = TRUE; } return TRUE; } btnSelect = 0xff; for(i=0;i<3;i++){ if(btn[i].CheckState(&sysInf.msPoint)){ btnSelect = i; switch(i){ case 0: PlayEffectNum(evtHandle[11],SE_PUSH); if(0==offsetNum)offsetNum = 45; else offsetNum -= 5; CreateInfo(); return TRUE; case 1: PlayEffectNum(evtHandle[11],SE_PUSH); offsetNum += 5; if(offsetNum>45)offsetNum = 0; CreateInfo(); return TRUE; default: PlayEffectNum(evtHandle[11],SE_CANCEL); startTime = timeGetTime() +500; state = save_fadeout; return TRUE; } }else if(btn_onCursor==btn[i].GetState()){ btnSelect = i; if(oldBtn != btnSelect){ PlayEffectNum(evtHandle[11],SE_SELECT); } } } for(i=0;i<10;i++){ if(pageBtn[i].CheckState(&sysInf.msPoint)){ PlayEffectNum(evtHandle[11],SE_PUSH); btnSelect = i+3; offsetNum = i*5; CreateInfo(); return TRUE; }else if(btn_onCursor==pageBtn[i].GetState()){ btnSelect = i+3; if(oldBtn != btnSelect){ PlayEffectNum(evtHandle[11],SE_SELECT); } } } if(keyState.push_action){ if(selectNum<5){ if(useTable[selectNum+offsetNum]){ PlayEffectNum(evtHandle[11],SE_PUSH); SetWindowCursorPos(sysInf.hWnd,yesnoBtn[0].selectRect.left +43, yesnoBtn[0].selectRect.top +12); if(mode==save_mode) state = save_writeSure; else state = save_loadSure; return TRUE; }else if(mode==save_mode){ PlayEffectNum(evtHandle[11],SE_PUSH); state = save_writeExec; return TRUE; } } }else if(keyState.push_cancel){ PlayEffectNum(evtHandle[11],SE_CANCEL); startTime = timeGetTime() +500; state = save_fadeout; return TRUE; }else if(keyState.push_up){ for(i=0;i<5;i++){ if(selectNum==0xff){ selectNum = 0; }else if(selectNum==0){ selectNum = 4; if(0==offsetNum)offsetNum = 45; else offsetNum -= 5; CreateInfo(); }else{ selectNum --; } if(mode==save_mode || useTable[selectNum+offsetNum])break; } if(i==5){ selectNum = 0xff; }else{ bSetCur = TRUE; } }else if(keyState.push_down){ for(i=0;i<5;i++){ if(selectNum>=4){ selectNum = 0; offsetNum += 5; if(offsetNum>45)offsetNum = 0; CreateInfo(); }else{ selectNum ++; } if(mode==save_mode || useTable[selectNum+offsetNum])break; } if(i==5){ selectNum = 0xff; }else{ bSetCur = TRUE; } }else if(keyState.push_left){ if(0==offsetNum)offsetNum = 45; else offsetNum -= 5; CreateInfo(); return TRUE; }else if(keyState.push_right){ offsetNum += 5; if(offsetNum>45)offsetNum = 0; CreateInfo(); return TRUE; } if(bSetCur){ if(sysInf.msPoint.x>=20 && sysInf.msPoint.x<706){ point.x = sysInf.msPoint.x; }else{ point.x = 20 +40; } point.y = 18 +40 +selectNum*100; SetWindowCursorPos(sysInf.hWnd, point.x, point.y); }else{ selectNum = 0xff; for(i=0;i<5;i++){ rect.left = 20; rect.right = rect.left +686; rect.top = 18 +100*i; rect.bottom = rect.top +96; if(myPtInRect(&rect, &sysInf.msPoint)){ if(mode==save_mode || useTable[i+offsetNum]){ selectNum = i; break; } } } } if(0xff != selectNum){ yesnoBtn[0].selectRect.top = yesnoBtn[1].selectRect.top = 18+128+100*selectNum; yesnoBtn[0].selectRect.bottom = yesnoBtn[1].selectRect.bottom = yesnoBtn[0].selectRect.top +25; if(selectNum!=oldSelect){ PlayEffectNum(evtHandle[11],SE_SELECT); } } return TRUE; } // SaveWnd::selectExec
BOOL SideWnd::Check(POINT *msPoint) { RECT barRect = {770,0,800,600}; RECT scrollBarRect = {770+9,9,770+25,310}; RECT brightRect = {770+9,491,770+27,589}; int i; float ptr; switch(sysInf.execMode){ case event_exec_mode: case select_exec_mode: case backlog_mode: break; default: return FALSE; } if(PtInRect(&scrollBarRect,sysInf.msPoint)){ if(keyState.push_action || keyState.data_action){ switch(sysInf.execMode){ case event_exec_mode: case select_exec_mode: backLog.DispInit(); break; } if(sysInf.msPoint.y <= 24)ptr = 0; else if(sysInf.msPoint.y >= 295)ptr = 1.0f; else{ ptr = float(sysInf.msPoint.y -24)/271; } backLog.SetScrollPtr(ptr); keyState.push_action = 0; return TRUE; } } if(PtInRect(&brightRect,sysInf.msPoint)){ if(keyState.push_action || keyState.data_action){ if(sysInf.msPoint.y <= 494)ptr = 0; else if(sysInf.msPoint.y >= 587)ptr = 1.0f; else{ ptr = float(sysInf.msPoint.y -494)/93; } sysInf.transparent = SHORT(100.0f -ptr*100); } } if(msPoint->x >= barRect.left){ switch(type){ case 0: alpha += ((100-sysInf.transparent)/1000.0f); if(alpha > 1.0f) alpha = 1.0f; break; } for(i=0;i<6;i++){ if(FALSE==btn[i].CheckState(msPoint) && !(i==0&&keyState.push_up) && !(i==1&&keyState.push_down)) continue; switch(i){ case 0: switch(sysInf.execMode){ case event_exec_mode: case select_exec_mode: backLog.DispInit(); break; case backlog_mode: keyState.push_up = 1; return FALSE; } break; case 1: switch(sysInf.execMode){ case backlog_mode: keyState.push_down = 1; return FALSE; } break; case 2: if(NULL==saveWnd){ PlayEffectNum(evtHandle[1],SelectSnd); saveWnd = new SaveWnd(save_mode); } break; case 3: if(NULL==saveWnd){ PlayEffectNum(evtHandle[1],SelectSnd); saveWnd = new SaveWnd(load_mode); } break; case 4: sysInf.bShowMsgwin = !sysInf.bShowMsgwin; break; case 5: DialogBox( sysInf.hInstance, MAKEINTRESOURCE(IDD_CONFIGDIALOG), sysInf.hWnd, ConfDialogBoxProc ); break; } break; } keyState.push_action = 0; return TRUE; }else{ switch(type){ case 0: alpha -= ((100-sysInf.transparent)/1000.0f); if(alpha < (sysInf.transparent/100.0f)) alpha = (sysInf.transparent/100.0f); break; } for(i=2;i<6;i++){ if(btn[i].GetState()!=btn_disable) btn[i].SetState(btn_normal); } } return FALSE; } // SideWnd::Check
BOOL CGmodeWnd::Exec() { int i; BOOL bPush = FALSE; POINT icPt; char str[MAX_PATH]; if(cgview_mode!=sysInf.execMode)return FALSE; switch(state){ case 0: case 2: case 4: case 5: time = bgInf.look_cnt-timeGetTime(); baseWnd.alpha = float(bgInf.look_max-time)/bgInf.look_max; if(time<=0){ baseWnd.alpha = 1.0f; bgInf.look_cnt = 0; if(state==4)state = 1; else state ++; } if(state==3 && (selectNum==5 || selectNum==6 || selectNum==7)){ bgInf.look_max = 2100; bgInf.look_cnt = timeGetTime() +bgInf.look_max; }else if(state==5){ baseWnd.alpha = 1.0f -baseWnd.alpha; }else if(state==6){ changeExecMode( opening_mode ); } panel[0].alpha = panel[1].alpha = button.alpha = baseWnd.alpha; return TRUE; case 1: if(keyState.push_action && selectNum>=0){ if(AVG_GetCgFlag(selectNum+1)==FALSE)break; PlayEffectNum(evtHandle[1],SelectSnd); wsprintf(str,"v00%02d0",selectNum); baseWnd.loadLGF(pack_eventcg,str); state = 2; bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; panel[0].alpha = panel[1].alpha = button.alpha = baseWnd.alpha = 0; switch(selectNum){ case 5: scrollOffset.x = 680; scrollOffset.y = 0; break; case 6: scrollOffset.x = 0; scrollOffset.y = 600; break; case 7: scrollOffset.x = 0; scrollOffset.y = 0; break; } break; }else if(keyState.push_left || keyState.push_up){ bPush = TRUE; if(selectNum==0)selectNum = 11; else selectNum --; }else if(keyState.push_right || keyState.push_down){ bPush = TRUE; selectNum ++; if(selectNum > 11)selectNum = 0; } if(bPush){ icPt.x = 54 +(selectNum%4)*177 +50; icPt.y = 104 +(selectNum/4)*136 +50; ClientToScreen(sysInf.hWnd,&icPt); SetCursorPos(icPt.x, icPt.y); }else{ selectNum = -1; } for(i=0;i<12;i++){ rect.left = 54+ 177*(i%4); rect.right = rect.left +160; rect.top = 104+136*(i/4); rect.bottom = rect.top +120; if(PtInRect(&rect,sysInf.msPoint)){ selectNum = i; break; } } if(btn.CheckState(&sysInf.msPoint) || keyState.push_cancel){ PlayEffectNum(evtHandle[1],CancelSnd); baseWnd.BltFast(0,0,&g_DibInf.colorBuf,NULL,FALSE); state = 5; bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; return TRUE; } break; case 3: switch(selectNum){ case 5: time = bgInf.look_cnt-timeGetTime(); if(time<=0){ scrollOffset.x = 0; scrollOffset.y = 680; }else{ scrollOffset.x = 680 -(bgInf.look_max-time)*680/bgInf.look_max; scrollOffset.y = (bgInf.look_max-time)*680/bgInf.look_max; } break; case 6: time = bgInf.look_cnt-timeGetTime(); scrollOffset.x = 0; if(time<=0){ scrollOffset.y = 0; }else{ scrollOffset.y = 600-(bgInf.look_max-time)*600/bgInf.look_max; } break; case 7: time = bgInf.look_cnt-timeGetTime(); scrollOffset.x = 0; if(time<=0){ scrollOffset.y = 600; }else{ scrollOffset.y = (bgInf.look_max-time)*600/bgInf.look_max; } break; } if(keyState.push_action || keyState.push_cancel){ PlayEffectNum(evtHandle[1],CancelSnd); baseWnd.loadLGF(pack_gparts,"CGmodeBase"); state = 4; bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; panel[0].alpha = panel[1].alpha = button.alpha = baseWnd.alpha = 0; } break; } return TRUE; } // CGmodeWnd::Exec
void TitleWnd::Exec() { int i; BOOL bMoveCur = FALSE; short oldSelect = selectNum; switch(state){ case 0: baseCBuf.alpha += 0.02f; if(baseCBuf.alpha >= 1.0f){ backColorBuf.clearColorBuf(); baseCBuf.alpha = 1.0f; state = 1; } return; } if(keyState.push_up){ selectNum --; while(1){ if(selectNum<0){ selectNum = 4; break; } if(btn[selectNum].GetState()!=btn_disable)break; selectNum --; } bMoveCur = TRUE; }else if(keyState.push_down){ selectNum ++; while(1){ if(selectNum>4){ selectNum = 0; break; } if(btn[selectNum].GetState()!=btn_disable)break; selectNum ++; } bMoveCur = TRUE; }else if(keyState.push_left){ selectNum = 0; bMoveCur = TRUE; }else if(keyState.push_right){ selectNum = 4; bMoveCur = TRUE; } if(bMoveCur){ SetWindowCursorPos(sysInf.hWnd,btn[selectNum].selectRect.left+10, btn[selectNum].selectRect.top+10); }else{ selectNum = -1; } for(i=0;i<5;i++){ if(FALSE==btn[i].CheckState(&sysInf.msPoint)){ if(btn[i].GetState()==btn_onCursor)selectNum = i; continue; } selectNum = i; if(selectNum != 4) PlayEffectNum(evtHandle[1],SelectSnd); switch(i){ case 0: EXEC_ReadLang( "0500.sdt", &LangData ); AVG_SetScenarioNo(500); EXEC_StartLang( &LangData, MAIN_SCRIPT ); c_cls_all(); msgWnd.MsgCLS(); lpSoundDS->FadeOut(bgmHandle); saveInf.musicNum = -1; changeExecMode( event_exec_mode ); break; case 1: EXEC_ReadLang( "0000.sdt", &LangData ); AVG_SetScenarioNo(0); EXEC_StartLang( &LangData, MAIN_SCRIPT ); c_cls_all(); msgWnd.MsgCLS(); lpSoundDS->FadeOut(bgmHandle); saveInf.musicNum = -1; changeExecMode( event_exec_mode ); break; case 2: EXEC_LangBuf = (char *)&LangData.LangBuf; EXEC_LangInfo = &LangData; saveWnd = new SaveWnd(load_mode); break; case 3: lpCGmodeWnd = new CGmodeWnd; break; case 4: sysInf.bGameEnd = on; break; } } } // TitleWnd::Exec
BOOL StaffmodeWnd::Exec() { int i,loadTex,nextStaff; BOOL bPush = FALSE; POINT icPt; if(staffmode_mode!=sysInf.execMode)return FALSE; switch(state){ case 0: case 6: time = bgInf.look_cnt-timeGetTime(); baseWnd.alpha = float(bgInf.look_max-time)/bgInf.look_max; if(time<=0){ baseWnd.alpha = 1.0f; bgInf.look_cnt = 0; state ++; } if(1==state)baseWnd.loadLGF(pack_gparts,"staffBase"); if(7==state)changeExecMode( event_exec_mode ); panel[0].alpha = panel[1].alpha = button.alpha = logo.alpha = baseWnd.alpha; return TRUE; case 1: if(keyState.push_cancel || keyState.push_down){ PlayEffectNum(evtHandle[1],CancelSnd); baseWnd.loadLGF(pack_eventcg,"s20100"); bgInf.colorBuf.loadLGF(pack_eventcg,"s20100",Type_back); backColorBuf.BltFast(40, 30, &bgInf.colorBuf, NULL, FALSE); saveInf.btRect.left = saveInf.btRect.top = 0; saveInf.btRect.right = 800; saveInf.btRect.bottom = 600; saveInf.btPoint.x = 40; saveInf.btPoint.y = 30; state = 6; bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; panel[0].alpha = panel[1].alpha = button.alpha = logo.alpha = baseWnd.alpha = 0; }else if(keyState.push_left){ bTurn = 1; }else if(keyState.push_right){ bTurn = 2; }else if(keyState.push_up){ bTurn = 3; } for(i=0;i<3;i++){ if(btn[i].CheckState(&sysInf.msPoint)){ bTurn = i+1; } } if(bTurn==1){ selectNum --; if(selectNum < 0) selectNum = 43; nextStaff = selectNum -1; if(nextStaff < 0)nextStaff += 44; frontNum --; if(frontNum < 0)frontNum = 3; loadTex = frontNum -1; if(loadTex < 0) loadTex = 3; wsprintf(str,"stt%03d",nextStaff); panel[loadTex].loadLGF(pack_eventcg,str); src[loadTex].buf = (BYTE *)panel[loadTex].pBuf; src[loadTex].pal = (RGB32 *)panel[loadTex].palColor; state = 2; writeName(); PlayEffectNum(evtHandle[1],CurMoveSnd); }else if(bTurn==2){ selectNum ++; if(selectNum > 43) selectNum = 0; nextStaff = selectNum+1; if(nextStaff > 43)nextStaff -= 44; frontNum ++; if(frontNum > 3)frontNum = 0; loadTex = frontNum +1; if(loadTex > 3) loadTex = 0; wsprintf(str,"stt%03d",nextStaff); panel[loadTex].loadLGF(pack_eventcg,str); src[loadTex].buf = (BYTE *)panel[loadTex].pBuf; src[loadTex].pal = (RGB32 *)panel[loadTex].palColor; state = 2; writeName(); PlayEffectNum(evtHandle[1],CurMoveSnd); }else if(bTurn==3){ state = 2; moveStep = 0; PlayEffectNum(evtHandle[1],SelectSnd); } break; case 2: if(3==bTurn){ moveStep ++; button.alpha = logo.alpha = float(19-moveStep)/19; if(moveStep==19){ bTurn = 0; wsprintf(str,"st%03d",selectNum); baseWnd.loadLGF(pack_eventcg,str); clearPadState(); state = 3; } break; } if(1==bTurn){ deg += 5; if(deg >= 360) deg -= 360; }else if(2==bTurn){ deg -= 5; if(deg < 0)deg += 360; } if(deg % 90 == 0){ bTurn = 0; state = 1; } break; case 3: if(keyState.push_action || keyState.push_down || keyState.push_cancel){ PlayEffectNum(evtHandle[1],CancelSnd); baseWnd.loadLGF(pack_gparts,"staffBase"); bTurn = 3; moveStep = 18; state = 4; } break; case 4: moveStep --; button.alpha = logo.alpha = float(19-moveStep)/19; if(moveStep==0){ bTurn = 0; state = 1; } break; } return TRUE; } // StaffmodeWnd::Exec
BOOL KabeSetWnd::Exec() { int i,j,oldSelect = selectBtn,btnNo; BOOL bPush = FALSE; POINT icPt; char str[MAX_PATH]; if(kabegami_mode!=sysInf.execMode)return FALSE; switch(state){ case 0: case 2: case 5: case 8: time = bgInf.look_cnt-timeGetTime(); baseWnd.alpha = float(bgInf.look_max-time)/bgInf.look_max; if(time<=0){ baseWnd.alpha = 1.0f; bgInf.look_cnt = 0; if(state==5)state = 1; else state ++; } if(9==state){ changeExecMode( event_exec_mode ); } return TRUE; case 1: if(kabeIcon.alpha < 1.0f){ kabeIcon.alpha += 0.033334f; if(kabeIcon.alpha > 1.0f) kabeIcon.alpha = 1.0f; break; }else if(keyState.push_action && selectNum>=0){ PlayEffectNum(evtHandle[1],SelectSnd); wsprintf(str,"v01%02d0",ct_info[selectNum].num); baseWnd.loadLGF(pack_eventcg,str); state = 2; bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; kabeButton.alpha = baseWnd.alpha = 0; }else if(keyState.push_left || keyState.push_up){ bPush = TRUE; if(selectNum<=0)selectNum = dropStart -1; else selectNum --; }else if(keyState.push_right || keyState.push_down){ bPush = TRUE; selectNum ++; if(selectNum >= dropStart)selectNum = 0; } if(dropStart==0)bPush = FALSE; if(bPush){ icPt.x = (selectNum%4)*200 +100; icPt.y = 399-(selectNum/4)*133 +50; ClientToScreen(sysInf.hWnd,&icPt); SetCursorPos(icPt.x, icPt.y); }else{ selectNum = -1; } for(i=0;i<dropStart;i++){ rect.left = 200*(i%4); rect.right = rect.left +200; rect.top = 399 -133*(i/4); rect.bottom = rect.top +133; if(PtInRect(&rect,sysInf.msPoint)){ selectNum = i; break; } } for(btnNo=0;btnNo<4;btnNo++){ if(btn[btnNo].CheckState(&sysInf.msPoint))break; } if(keyState.push_fairyAttack || btnNo<=1){ PlayEffectNum(evtHandle[1],CancelSnd); state = 7; for(i=0;i<dropStart;i++) ct_info[i].speed = 1.0f; break; } if(keyState.push_cancel || 3==btnNo){ PlayEffectNum(evtHandle[1],CancelSnd); baseWnd.loadLGF(pack_eventcg,"s20100"); bgInf.colorBuf.loadLGF(pack_eventcg,"s20100",Type_back); backColorBuf.BltFast(40, 30, &bgInf.colorBuf, NULL, FALSE); saveInf.btRect.left = saveInf.btRect.top = 0; saveInf.btRect.right = 800; saveInf.btRect.bottom = 600; saveInf.btPoint.x = 40; saveInf.btPoint.y = 30; state = 8; bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; return TRUE; } if(keyState.push_camp || 2==btnNo){ if(dropStart>=KABE_NUM){ PlayEffectNum(evtHandle[1],9007); break; } PlayEffectNum(evtHandle[1],SelectSnd); dropNum = rndSelect(4)+1; if((dropStart+dropNum)>KABE_NUM){ dropNum = KABE_NUM -dropStart; } for(i=0;i<dropNum;i++){ ct_info[i+dropStart].bDrop = TRUE; ct_info[i+dropStart].point.x = 200*( (i+dropStart)%4 ); ct_info[i+dropStart].point.y = -133 -rndSelect(100); while(1){ ct_info[i+dropStart].num = rndSelect(KABE_TYPE); for(j=0;j<i+dropStart;j++){ if( ct_info[i+dropStart].num == ct_info[j].num )break; } if(j == (i+dropStart))break; } ct_info[i+dropStart].speed = 1.0f; ct_info[i+dropStart].rect.left = 0; ct_info[i+dropStart].rect.right = 200; ct_info[i+dropStart].rect.top = 133*(ct_info[i+dropStart].num); ct_info[i+dropStart].rect.bottom = ct_info[i+dropStart].rect.top +133; } state = 6; } break; case 3: if(kabeButton.alpha > 0){ kabeButton.alpha += 0.033334f; if(kabeButton.alpha >= 1.0f){ kabeButton.alpha = 1.0f; state = 4; } }else if(keyState.push_action){ kabeButton.alpha = 0.033334f; } break; case 4: for(btnNo=0;btnNo<2;btnNo++){ if(set_btn[btnNo].CheckState(&sysInf.msPoint)){ break; } } if(btnNo==2){ if(keyState.push_cancel) btnNo = 1; if(keyState.push_camp) btnNo = 0; } if(btnNo < 2){ if(btnNo==0){ PlayEffectNum(evtHandle[1],SelectSnd); char newfile[MAX_PATH]; wsprintf(str,"\\LeafFanDisc%02d.bmp",ct_info[selectNum].num); GetWindowsDirectory(newfile,MAX_PATH); strcat(newfile,str); wsprintf(str,".\\壁紙\\LeafFanDisc%02d.bmp",ct_info[selectNum].num); CopyFile(str,newfile,FALSE); SetWallPaper(newfile); }else{ PlayEffectNum(evtHandle[1],CancelSnd); } baseWnd.loadLGF(pack_gparts,"kabeBase"); bgInf.look_max = 900; bgInf.look_cnt = timeGetTime() +bgInf.look_max; kabeIcon.alpha = baseWnd.alpha = 0; state = 5; } break; case 6: j = 0; for(i=0;i<dropNum;i++){ if(!ct_info[i+dropStart].bDrop)continue; j ++; ct_info[i+dropStart].point.y += int(ct_info[i+dropStart].speed); ct_info[i+dropStart].speed += 0.5f; if(ct_height[(i+dropStart)%4] <= ct_info[i+dropStart].point.y){ ct_info[i+dropStart].point.y = ct_height[(i+dropStart)%4]; ct_info[i+dropStart].bDrop = FALSE; ct_height[(i+dropStart)%4] -= 133; PlayEffectNum(evtHandle[i],1012); } } if(j==0){ dropStart += dropNum; dropNum = 0; state = 1; } break; case 7: j = 0; for(i=0;i<dropStart;i++){ ct_info[i].point.y += int(ct_info[i].speed); ct_info[i].speed += 0.5f; if(ct_info[i].point.y < 600) j++; } if(j==0){ dropStart = dropNum = 0; for(i=0;i<4;i++)ct_height[i] = 399; state = 1; } break; } return TRUE; } // KabeSetWnd::Exec
void MyMenuWnd::Exec() { int i; BOOL bPush = FALSE; POINT icPt; float alpha; char oldSelect = selectNum; BOOL bStaffRoll = ScenarioFlag[SCRIPT_MAX-1][0]; if(menu_mode!=sysInf.execMode)return; switch(state){ case 0: time = bgInf.look_cnt-timeGetTime(); alpha = 1.0f -float(time) / bgInf.look_max; if(time<=0){ alpha = 1.0f; bgInf.look_cnt = 0; state = 1; } for(i=0;i<9;i++){ menuIcon[i][0].alpha = alpha; menuIcon[i][1].alpha = alpha/2; } return; } if(keyState.push_action && state==1 && selectNum>=0){ PlayEffectNum(evtHandle[1],SelectSnd); EXEC_LangInfo->reg[ 0 ] = selectNum; state = 2; c_cls_all(); changeExecMode( event_exec_mode ); }else if(keyState.push_left || keyState.push_up){ bPush = TRUE; if(selectNum<=0)selectNum = 8; else selectNum --; if(!bStaffRoll && selectNum==3) selectNum = 2; }else if(keyState.push_right || keyState.push_down){ bPush = TRUE; selectNum ++; if(selectNum > 8)selectNum = 0; if(!bStaffRoll && selectNum==3) selectNum = 4; } if(bPush){ icPt.x = menuRect[selectNum].left +50; icPt.y = menuRect[selectNum].top +50; ClientToScreen(sysInf.hWnd,&icPt); SetCursorPos(icPt.x, icPt.y); } selectNum = -1; for(i=0;i<9;i++){ if(PtInRect(&menuRect[i],sysInf.msPoint)){ if(!bStaffRoll && i==3)break; selectNum = i; break; } } if(selectNum>=0 && selectNum!=oldSelect){ PlayEffectNum(evtHandle[1],CurMoveSnd); } for(i=0;i<9;i++){ if(selectNum!=i){ if(menuIcon[i][1].alpha > 0.5f){ menuIcon[i][1].alpha -= 0.05f; if(menuIcon[i][1].alpha < 0.5f) menuIcon[i][1].alpha = 0.5f; } }else{ if(menuIcon[i][1].alpha < 1.0f){ menuIcon[i][1].alpha += 0.05f; if(menuIcon[i][1].alpha > 1.0f) menuIcon[i][1].alpha = 1.0f; } } } }// MyMenuWnd::Exec