Exemple #1
0
//改变显示语言
void ChangeLanguage(int nLang)
{
    int i;
    unsigned char Mode;

    ByteDataSave(VAL_MENU_LANG,(unsigned char)nLang);
    if(nLang == CHINESE)
    {
		MI_LENS = MI_C_LENS;
        for(i=0; i<MGS_NUM; i++)
            gMG[i].pTitle = (char *)gMGTitle[i];

        gMG[0].FirstItem = (TMenu*)gMMain;
        gMG[1].FirstItem = (TMenu*)gM11;
        gMG[2].FirstItem = (TMenu*)gM12;
        gMG[3].FirstItem = (TMenu*)gM13;
        gMG[4].FirstItem = (TMenu*)gM21;


    }
    else
    {
		MI_LENS = MI_E_LENS;
        for(i=0; i<MGS_NUM_E; i++)
            gMG[i].pTitle = (char *)gMGTitle_E[i];

        gMG[0].FirstItem = (TMenu*)gMMain_E;
        gMG[1].FirstItem = (TMenu*)gM11_E;
        gMG[2].FirstItem = (TMenu*)gM12_E;
        gMG[3].FirstItem = (TMenu*)gM13_E;
        gMG[4].FirstItem = (TMenu*)gM21_E;

    }
    
    //清空显示区域
    clear_block(0,0,191,63);
    update_disp_data(0,0,191,63);
    ByteDataGet(VAL_DSCS_MODE,&Mode);
    ChangeMenu((int)Mode);
    //显示主菜单
}
Exemple #2
0
void CheckCheat(UBYTE c )
{
    static int cheat_counter=0,current_cheat=-1;
    int i;

    if(current_cheat>=0)
    {
        if(cheats[current_cheat][cheat_counter]==c)
        {
            cheat_counter++;

            if(cheat_counter==strlen(cheats[current_cheat]))
            {
                if(!menusound[0])
                    menusound[0]=LoadSound(menu_soundname[0]);

                if(menusound[0])
                    PlayBackSound(menusound[0]);

                D(bug("Eseguo il cheat: %ld\n"/*-*/,current_cheat));

                switch(current_cheat)
                {
                    case 0:
// Gioco l'arcade con l'hurricane force!
                        if(current_menu==MENU_ARCADE_SELECTION)
                        {
                            *teamarray=ARCADE_TEAMS;
                            controllo[ARCADE_TEAMS]=1;
                            turno=0;
                            competition=MENU_CHALLENGE;
                            cb[0].ID=MENU_CHALLENGE;
                            SetupMatches();
                            ChangeMenu(MENU_CHALLENGE);
                        }
                        break;
// Mostra sempre la sequenza finale
                    case 1:
                        final=TRUE;
                        break;
                    case 2:
                        framerate=35;
                        break;
                    case 3:
                        framerate=15;
                        break;
                    case 4:
                        nopari=TRUE;
                        break;
                    case 5:
                        killer=TRUE;
                        break;
                    case 6:
                        warp=TRUE;
                        break;
#ifdef CD_VERSION
                    case 7:
                        Outro();
                        break;
#endif
                }
            }

            return;
        }
        else
        {
Exemple #3
0
// 显示当前设置状态
//	中文:
//  	第一行:单元 xxx
//	  	第二行:会讨模式
//	 	第三行:上限 xxx
//	  	第四行:(签到/表决 xxx)摄像头 x
//	英文:
//
//	
//	显示当前状态
//	参数
//		nStateBit: bit0~4分别代表第一到第四个状态信息
//		nStNum[]:  分别对应各个状态的当前量或对应下标
//void DisplayOneState(TMGrpData *pMGrp, int nSeq)
//void DisplayOneState(TMGrpData *pMGrp, int nSeq ,int nLine,int nNum)
void DisplayAllState(int nStateBit,int nStNum[])
{
    unsigned char caItem[16];		//中文时需要8个字符,英文时需要16
    int Temp;
    //TMenu *pMenu;// yasirliang change in 20160603
   // int nState;
    //unsigned char ucLine,ucMode;// yasirliang change in 20160603
    unsigned char Len;

	int i;
	
  unsigned char MenuLang;

  ByteDataGet(VAL_MENU_LANG,&MenuLang);

//     pMenu = pMGrp->FirstItem+nSeq;
//     nState = pMGrp->ss.BitState & (1<<nSeq);
//
//     switch(pMenu->Type)
//     {
//         case MT_YESNO:
//             if(gsnCurMGrp == 1)
//             {
//                 ucLine = 0;
//                 memcpy(caItem,pMenu->Text,strlen(pMenu->Text));
//             }
//             else if(gsnCurMGrp == 4)
//             {
//                 ucLine = 4;
//                 memcpy(caItem,pMenu->Text,strlen(pMenu->Text));
//             }
//             break;
//         case MT_ONOFF:
//             if(gsnCurMGrp == 1)
//             {
//                 ucLine = 2;
//                 memcpy(caItem,pMenu->Text,strlen(pMenu->Text));
//             }
//             break;
//         default:
//           break;
// 	}
    ChangeMenu(nStNum[0]);

    // 更新显示数据
    if(MenuLang == CHINESE)
    {
        gstDispMem.ucX1 = 128;
        gstDispMem.ucX2 = 191;
 		for(i=0;i<4;i++)
		{
			gstDispMem.ucY1 = i*8*2;
			gstDispMem.ucY2 = (i+1)*8*2-1;
			switch(nStateBit & (1<<i))
			{
			case STD_MODE:
        Len=GetDiscussModeText(nStNum[0],caItem,MenuLang);
			  send_hz16x16(gstDispMem.ucX1,i*2*8,caItem, Len/2, 0);
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
				break;
      case STD_CAM:
				if(GetCmrTrack())
				{
					disp_ico(gstDispMem.ucX1,i*2*8,16,16,ico_data[ICO_CMR],0);
				}
				else
				{
        	disp_ico(gstDispMem.ucX1,i*2*8,16,16,ico_data[ICO_CMR_LOCK],0);
				}
				if(nStNum[1]>0)
				{
					Temp=IntToRightStr(caItem,nStNum[1],7);
					send_zf8x16(gstDispMem.ucX1+8*Temp+8,i*2*8,caItem+Temp+1, 7-Temp, 0);
				}
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
				break;
			case STD_LIMIT:
        disp_ico(gstDispMem.ucX1,i*2*8,16,16,ico_data[ICO_SPKER_LIMIT],0);
        if((FIFO_MODE==nStNum[0])||(LIMIT_MODE==nStNum[0]))
        {
  				if(nStNum[2]>0)
  				{
  					Temp=IntToRightStr(caItem,nStNum[2],7);
  					send_zf8x16(gstDispMem.ucX1+8*Temp+8,i*2*8,caItem+Temp+1, 7-Temp, 0);
  				}
        }
        else
        {
          disp_ico(gstDispMem.ucX1+6*8,i*2*8,16,16,ico_data[ICO_PROHIBIT],0);
        }
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
        break;
			case STD_APPLY:
        disp_ico(gstDispMem.ucX1,i*2*8,16,16,ico_data[ICO_APPLY_LIMIT],0);
        if((APPLY_MODE==nStNum[0])||(LIMIT_MODE==nStNum[0]))
        {
  				if(nStNum[3]>0)
  				{
  					Temp=IntToRightStr(caItem,nStNum[3],7);
  					send_zf8x16(gstDispMem.ucX1+8*Temp+8,i*2*8,caItem+Temp+1, 7-Temp, 0);
  				}
        }
        else
        {
          disp_ico(gstDispMem.ucX1+6*8,i*2*8,16,16,ico_data[ICO_PROHIBIT],0);
        }
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);        
        break;
			}		
			
			
			
		}

    }
    else		//English
    {
 		for(i=0;i<4;i++)
		{
			memset(caItem,' ',16);
			
			gstDispMem.ucX1 = (i%2)*96;
			gstDispMem.ucX2 = gstDispMem.ucX1+96-1;
			gstDispMem.ucY1 = (i/2)*10+44;
			gstDispMem.ucY2 =gstDispMem.ucY1+10-1;
			switch(nStateBit & (1<<i))
			{
			case STD_MODE:
        Len=GetDiscussModeText(nStNum[0],caItem,MenuLang);
			  send_zf6x10(gstDispMem.ucX1,gstDispMem.ucY1,(unsigned char *)caItem, Len, 0);
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
				break;
      case STD_CAM:
				memcpy(caItem,"Curr Cam:",9);
				if(nStNum[1]>0)
				{
					Temp=IntToRightStr(caItem,nStNum[1],12);
//					send_zf6x10(gstDispMem.ucX1+8*Temp+8,i*2*8,caItem+Temp+1, 12-Temp, 0);
				}
        send_zf6x10(gstDispMem.ucX1,gstDispMem.ucY1,(unsigned char *)caItem, 16, 0);
			  update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
				break;
			case STD_LIMIT:
        if((FIFO_MODE==nStNum[0])||(LIMIT_MODE==nStNum[0]))
        {
  				memcpy(caItem,"MaxSpeakers:",13);
  				if(nStNum[2]>0)
  				{
  					Temp=IntToRightStr(caItem,nStNum[2],12);
  				}
          send_zf6x10(gstDispMem.ucX1,gstDispMem.ucY1,(unsigned char *)caItem, 16, 0);
        }
         else
        {
          clear_block(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
        }
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
        break;
			case STD_APPLY:
        if((APPLY_MODE==nStNum[0])||(LIMIT_MODE==nStNum[0]))
        {
  				memcpy(caItem,"MaxApplicants:",13);
  				if(nStNum[3]>0)
  				{
  					Temp=IntToRightStr(caItem,nStNum[3],12);
  				}
          send_zf6x10(gstDispMem.ucX1,gstDispMem.ucY1,(unsigned char *)caItem, 16, 0);
  			  
        }
        else
        {
          clear_block(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
        }
        update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
        break;
			}			
 		}
    }

//		update_disp_data(gstDispMem.ucX1,gstDispMem.ucY1,gstDispMem.ucX2,gstDispMem.ucY2);
}
Exemple #4
0
WORD StartMatch(BYTE team1,BYTE team2)
{
    FILE *f;
    BOOL /*swapped=FALSE,*/ team_swap=FALSE,control_swap=FALSE,nightgame=FALSE,random_strict=FALSE;
    WORD risultato=-1,parent_menu;
    int t;

    parent_menu=current_menu;
    
    // Obtengo el timestamp y lo convierto a string
    struct timeval start_game;
    gettimeofday(&start_game, NULL);
    char timestamp_in_string [30];
    sprintf (timestamp_in_string, "%lu", start_game.tv_sec);
    
    filename = concat(folder, teamlist[team1].name);
    filename = concat(filename, "-");
    filename = concat(filename, teamlist[team2].name);

// temporanea, solo x evitare l'apertura della squadra!
    if(network_game)
        controllo[team2]=-1;

    if(!training&&!network_game) {
        if(RangeRand(2)) {
            UBYTE temp;

            temp=team1;
            team1=team2;
            team2=temp;
            team_swap=TRUE;
        }

        if(controllo[team2]>=0 && controllo[team1]==controllo[team2]) {
            control_swap=TRUE;

            controllo[team2]--;

            if(controllo[team2]<0)
                controllo[team2]=1;
        }
    }
    else if(network_game && network_player->num) {
        UBYTE temp=team1;

        D(bug("Player got team 1, swapping teams\n"));

        team1=team2;
        team2=temp;
        team_swap=TRUE;
    }

    if( (daytime==0 && RangeRand(2)==0 ) || daytime==2 )
            nightgame=TRUE;

    if(controllo[team1]>=0&&!arcade_teams) {
        SetTeamSettings(team1, TRUE);
        ChangeMenu(MENU_TEAM_SETTINGS);
        while(HandleMenuIDCMP());
    }

    if(controllo[team2]>=0&&!training&&!arcade_teams) {
        SetTeamSettings(team2, TRUE);
        ChangeMenu(MENU_TEAM_SETTINGS);
        while(HandleMenuIDCMP());
    }

    window_opened=FALSE;
//    write_config(TEMP_DIR "thismatch"/*-*/);

    if(arcade_teams)
    {
        extern BYTE arcade_team[];

        arcade_team[0]=team1;
        arcade_team[1]=team2;
    }

    team_a=team1;
    team_b=team2;

/*
 * Questo codice si occupa di inviare la squadra e ricevere
 * l'altra, notare la specularita' a seconda del controller
 * che si e' deciso di utilizzare.
 */
    if(!network_game || network_player->num == 0) {
        if(network_game && !SendTeam(team1))
                return -1;

        leftteam_dk=teamlist[team1];
    }
    else if(network_game && !ReceiveTeam(&leftteam_dk))
            return -1;

    if(!network_game || network_player->num == 1) {
        if(network_game && !SendTeam(team2))
                return -1;

        rightteam_dk=teamlist[team2];
    }
    else if(network_game && !ReceiveTeam(&rightteam_dk))
            return -1;

    if(!training && !network_game)
    {
        if(!CheckMaglie(team1,team2))
            rightteam_dk.jerseys[0]=rightteam_dk.jerseys[1];
    }

    use_offside = FALSE;
    
    if(training) {
        rightteam_dk.jerseys[0]=rightteam_dk.jerseys[1];
    }
    else if (offside)
        use_offside = TRUE;
    
    sprintf(shirt[0],"gfx/play%lc%lc%lc.obj"/*-*/,
            ( (nightgame||arcade) ? 'n' : 'e'),
            ( (field==8&&!arcade) ? 's' : 'r'),
            teamlist[team1].jerseys[0].type+'a');

    sprintf(shirt[1],"gfx/play%lc%lc%lc.obj"/*-*/,
            ( (nightgame||arcade) ? 'n' : 'e'),
            ( (field==8&&!arcade) ? 's' : 'r'),
            (training ? teamlist[team2].jerseys[1].type : teamlist[team2].jerseys[0].type)+'a');

    if(!field)
        t=RangeRand(6);
    else
        t=field-1;

    current_field= (arcade ? 0 : t);

    if(arcade)
    {
        if(!final&&!warp)
        {
            sprintf(fieldname,"gfx/arcade.gfx"/*-*/);
            sprintf(palette,"gfx/eat16arcade.col"/*-*/);
        }
        else
        {
            sprintf(fieldname,"gfx/a_final.gfx"/*-*/);
            sprintf(palette,"gfx/eat16arcade.col"/*-*/);
        }
    }