⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 suoha_dspl.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/********************************************************************************
 $History: Suoha_dspl.c
    Date .................. Modification ......................................
    08/14/2002    version 1.1.0 zhangzg 
    08/23/2002    version 1.1.5 zhangzg 
 $End

*******************************************************************************/

#if defined (NEW_FRAME)

   #include "typedefs.h"
   #include "vsi.h"
   #include "pei.h"
   #include "custom.h"
   #include "gsm.h"

#else  /* NEW_FRAME */

   #include "stddefs.h"
   #include "custom.h"
   #include "gsm.h"
   #include "vsi.h"

#endif /* NEW_FRAME */

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#include "mfw_sys.h"
//#include "stddefs.h"
#include "p_sim.h"
#include "cus_aci.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_edt.h"
#include "mfw_tim.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_sat.h"
#include "dspl.h"
#include "MmiMmi.h"
#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiSoftkeys.h"
#include "MmiIcons.h"
#include "MmiMenu.h"
#include "gdi.h"
#include "Audio.h"
#include "MmiSounds.h"
#include "MmiBookShared.h"

#include "suoha_common.h"
#include "suoha_algri.h"
#include "suoha_dspl.h"
/*****************************************************************

  unicode and AscII char and bmp data

*****************************************************************/


/********************************************************************************

    data definition

*********************************************************************************/
///////////////////////////////////////////
char* opparray[3] = 
{(char*)opp1,(char*)opp2,(char*)opp3};
char* oppintro[3] = {(char*)introopp1, (char*)introopp2, (char*)introopp3}; 
char* oppname[3] = {(char*)name_opp1,(char*)name_opp2, (char*)name_opp3};
extern  UBYTE focus_opp;
extern unsigned long oppmoney[3];
/********************************************************************************



*********************************************************************************/

void Suoha_Display_Start_Picture();
void Suoha_Display_Opponent();
void Suoha_Display_End();

/********************************************************************************

    function definition 

*********************************************************************************/
void PaintBackground(MfwRect rect, U32 color);
void DrawFigure(MfwRect focus_rect, ULONG color); //draw the profiles of focus things of the main window
void DisplayMMFigure(UBYTE num_MM, UBYTE num_preMM); //draw the profile of focus mm
void DisplayName(UBYTE num_MM, USHORT x, USHORT y);


void DisplayOneCard(UBYTE whoturned, USHORT numcard, USHORT card);
void DisplayCard(UBYTE numcard);
void DrawButton(USHORT x, USHORT y, BOOL isSelected);
void DrawHand(USHORT x, USHORT y);

void DisplayText(USHORT X, USHORT y); //display the info about the situation of playing

void MoveCard(UBYTE who, UBYTE whichCard);
void DisplayZone(UBYTE numzone, char* txt, UBYTE attr);
void ClearZone(UBYTE numzone);
void DisplayMainWinTxtZone();
void DrawSelectedButton(USHORT i);
void DisplayDialog(BOOL yesorno);


char* CardRes(USHORT card);
char* CardResGe(USHORT card);
char* CardResShi(USHORT card);


/********************************************************************************



*********************************************************************************/
void PaintBackground(MfwRect rect, U32 color)
{
   U32 oldcolor;
   oldcolor = dspl_SetBkgColor(color);
   dspl_fill_rectangle(rect.px, rect.py, rect.sx+rect.px, rect.sy+rect.py);
   dspl_SetBkgColor(oldcolor);
}
/********************************************************************************


*********************************************************************************/
void DisplayMMFigure(UBYTE num_MM, UBYTE num_preMM)
{   
   U8 uMode,haveMoney;
   U32 oldcolor;
   USHORT i, j;
   MfwRect rect;


   uMode = dspl_Enable(0); 
   if (oppmoney[focus_opp-1]>=100)       //the opponent has money!!		    	
   {
      haveMoney=1;
   } else
   {
      haveMoney=0;              
   }

   rect.px = LEFT_WIDTH_PPMM+WIDTH_PPMM;                    /* clear the old hand and draw the new              */
   rect.py = TOP_PPMM+(num_preMM-1)*INTERVAL_PPMM+(num_preMM-1)*HEIGHT_PPMM-2;
   rect.sx = (LEFT_WIDTH_PPMM+WIDTH_PPMM+1)+9;
   rect.sy = TOP_PPMM+(num_preMM-1)*INTERVAL_PPMM+(num_preMM-1)*HEIGHT_PPMM+13;
   PaintBackground(rect, 0x80ffff);
   DrawHand(LEFT_WIDTH_PPMM+WIDTH_PPMM+2, TOP_PPMM+(num_MM-1)*INTERVAL_PPMM+(num_MM-1)*HEIGHT_PPMM);


   /* set the background color tangyan0303  		*/     
   rect.px = LEFT_OPPTXT; rect.py = TOP_OPPTXT; rect.sx = RIGHT_OPPTXT-LEFT_OPPTXT; rect.sy = BOTTOM_OPPTXT-TOP_OPPTXT;
   dspl_DrawRect(LEFT_OPPTXT-1, TOP_OPPTXT-1, RIGHT_OPPTXT, BOTTOM_OPPTXT);
   PaintBackground(rect, 0xffff80); //浅黄色


   if (num_MM!=4)                                                                                              /* focus on one of oppnents				*/
   {
      if (haveMoney)                                         /* oppnent has a lot of money 			 */
      {
         dspl_TextOut(60, 5, DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, oppname[num_MM-1]);
         for (i=0; i<=6; i++)
         {
            dspl_TextOut(50, 25+16*i, DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (oppintro[num_MM-1])+i*10);
         }
      } else
      {
         dspl_TextOut(LEFT_OPPTXT+15, 50, DSPL_TXTATTR_NORMAL | DSPL_TXTATTR_TRANSPARENT, (char *)"NO");
         dspl_TextOut(LEFT_OPPTXT+5, 66, DSPL_TXTATTR_NORMAL | DSPL_TXTATTR_TRANSPARENT, (char *)"Money!");              
      }
   } else                                                    /* display help content!! 	  			  */
   {
      DrawButton(LEFT_OPPTXT+2, TOP_OPPTXT+10, FALSE);
      dspl_BitBlt(LEFT_OPPTXT+2+10, TOP_OPPTXT+10+2, 13, 11, 0, (void *)checkstake, DSPL_BMPCOPY);
      dspl_TextOut(LEFT_OPPTXT+2+WIDTH_BUTTON+1, TOP_OPPTXT+10, DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)chakan);

      DrawButton(LEFT_OPPTXT+2, TOP_OPPTXT+10+HEIGHT_BUTTON+1, FALSE);
      dspl_BitBlt(LEFT_OPPTXT+2+11, TOP_OPPTXT+10+HEIGHT_BUTTON+1+2, 11, 11, 0, (void *)putstake, DSPL_BMPCOPY);           
      dspl_TextOut(LEFT_OPPTXT+2+WIDTH_BUTTON+1, TOP_OPPTXT+10+HEIGHT_BUTTON+1, DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)xiazhu);

      DrawButton(LEFT_OPPTXT+2, TOP_OPPTXT+10+2*(HEIGHT_BUTTON+1), FALSE);
      dspl_BitBlt(LEFT_OPPTXT+2+12, TOP_OPPTXT+10+2*(HEIGHT_BUTTON+1)+5, 9, 6, 0, (void *)follow, DSPL_BMPCOPY);
      dspl_TextOut(LEFT_OPPTXT+2+WIDTH_BUTTON+1, TOP_OPPTXT+10+2*(HEIGHT_BUTTON+1), DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)genjin);

      DrawButton(LEFT_OPPTXT+2, TOP_OPPTXT+10+3*(HEIGHT_BUTTON+1), FALSE);
      dspl_BitBlt(LEFT_OPPTXT+2+10, TOP_OPPTXT+10+3*(HEIGHT_BUTTON+1)+2, 14, 13, 0, (void *)quitall, DSPL_BMPCOPY);           
      dspl_TextOut(LEFT_OPPTXT+2+WIDTH_BUTTON+1, TOP_OPPTXT+10+3*(HEIGHT_BUTTON+1), DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)fangqi);

      DrawButton(LEFT_OPPTXT+2, TOP_OPPTXT+10+4*(HEIGHT_BUTTON+1), FALSE);
      dspl_BitBlt(LEFT_OPPTXT+2+11,TOP_OPPTXT+10+4*(HEIGHT_BUTTON+1)+1, 10, 15, 0, (void *)allstake, DSPL_BMPCOPY);
      dspl_TextOut(LEFT_OPPTXT+2+WIDTH_BUTTON+1, TOP_OPPTXT+10+4*(HEIGHT_BUTTON+1), DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)quansuo);

      dspl_TextOut(LEFT_OPPTXT+2, TOP_OPPTXT+10+5*(HEIGHT_BUTTON+1), DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)leftselet);
      dspl_TextOut(LEFT_OPPTXT+2, TOP_OPPTXT+10+5*(HEIGHT_BUTTON+1)+16, DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)rightquit);
      dspl_TextOut(LEFT_OPPTXT+2, TOP_OPPTXT+10+5*(HEIGHT_BUTTON+1)+16*2, DSPL_TXTATTR_UNICODE | DSPL_TXTATTR_TRANSPARENT, (char *)updownmove);

   }

   dspl_Enable(uMode); //zhangzg 08/23/2002

}

//4 显示一张扑克牌
void DisplayOneCard(UBYTE whoturned, USHORT numcard, USHORT  card)
{
   U32 oldcolor;
   char* ge;
   char* shi;

   shi = CardResShi(card);
   ge = CardResGe(card);
   if (shi && ge)
   {
      if (whoturned == COMPUTER) //display the card of machine
      {
         if (numcard==BACKCARD) //display the back of the first card
         {
            dspl_BitBlt(LEFT_WIDTH_CARD, TOP_WIDTH_CARD, 38, 50, 0, (void *)cardback, DSPL_BMPCOPY);
         } else
         {
            oldcolor = dspl_SetFrgColor(0x000000);
            dspl_DrawRect(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD, TOP_WIDTH_CARD, LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+WIDTH_CARD, TOP_WIDTH_CARD+HEIGHT_CARD);
            dspl_SetFrgColor(oldcolor);
            oldcolor = dspl_SetBkgColor(0xffffff);
            dspl_fill_rectangle(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD, TOP_WIDTH_CARD, LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+WIDTH_CARD, TOP_WIDTH_CARD+HEIGHT_CARD);
            dspl_SetBkgColor(oldcolor);
            dspl_BitBlt(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+LEFT_C1, TOP_WIDTH_CARD+TOP_C1, WIDTH_C12, HEIGHT_C12, 0, (void *)ge, 0);
            dspl_BitBlt(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+LEFT_C2, TOP_WIDTH_CARD+TOP_C2, WIDTH_C12, HEIGHT_C12, 0, (void *)ge, DSPL_BMPINVERT | DSPL_BMPCOPY);
            dspl_BitBlt(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+LEFT_C0, TOP_WIDTH_CARD+TOP_C0, WIDTH_C0, HEIGHT_C0, 0, (void *)shi, 0);
         }
      } else
      {
         oldcolor = dspl_SetFrgColor(0x000000);
         dspl_DrawRect(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD, 160-TOP_WIDTH_CARD-HEIGHT_CARD, LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+WIDTH_CARD, 160-TOP_WIDTH_CARD);
         dspl_SetFrgColor(oldcolor);
         oldcolor = dspl_SetBkgColor(0xffffff);
         dspl_fill_rectangle(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD, 160-TOP_WIDTH_CARD-HEIGHT_CARD, LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+WIDTH_CARD, 160-TOP_WIDTH_CARD);
         dspl_SetBkgColor(oldcolor);
         dspl_BitBlt(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+LEFT_C1, 160-TOP_WIDTH_CARD-HEIGHT_CARD+TOP_C1, WIDTH_C12, HEIGHT_C12, 0, (void *)ge, 0);
         dspl_BitBlt(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+LEFT_C2, 160-TOP_WIDTH_CARD-HEIGHT_CARD+TOP_C2, WIDTH_C12, HEIGHT_C12, 0, (void *)ge, DSPL_BMPINVERT | DSPL_BMPCOPY);
         dspl_BitBlt(LEFT_WIDTH_CARD+(numcard-1)*EXPOSED_WIDTH_CARD+LEFT_C0, 160-TOP_WIDTH_CARD-HEIGHT_CARD+TOP_C0, WIDTH_C0, HEIGHT_C0, 0, (void *)shi, 0);             
      }
   }

}

/***********************************************************************


***********************************************************************/
//4 画按钮可以显示按下和未按下的状态
void DrawButton(USHORT x, USHORT y, BOOL isSelected)
{
   U32 oldcolor;
//UBYTE uMode;
//	uMode = dspl_Enable(0);
   if (isSelected)
      oldcolor = dspl_SetFrgColor(0x000000); //set black color
   else
      oldcolor = dspl_SetFrgColor(0xffffff); //set white color
   dspl_DrawLine(x, y, x, y+HEIGHT_BUTTON-1-2);
   dspl_DrawLine(x, y, x+WIDTH_BUTTON-1-2, y);

   if (isSelected)
      dspl_SetFrgColor(0xc0c0c0);
   else
      dspl_SetFrgColor(0x808080); //set deep grey color
   dspl_DrawLine(x, y+HEIGHT_BUTTON-1-1, x+WIDTH_BUTTON-1-1, y+HEIGHT_BUTTON-1-1);
   dspl_DrawLine(x+WIDTH_BUTTON-1-1, y, x+WIDTH_BUTTON-1-1, y+HEIGHT_BUTTON-1-1);

   if (isSelected)
      dspl_SetFrgColor(0xffffff);
   else
      dspl_SetFrgColor(0x000000); //set black
   dspl_DrawLine(x, y+HEIGHT_BUTTON-1, x+WIDTH_BUTTON-1, y+HEIGHT_BUTTON-1);
   dspl_DrawLine(x+WIDTH_BUTTON-1, y, x+WIDTH_BUTTON-1, y+HEIGHT_BUTTON-1);

   dspl_SetFrgColor(oldcolor);

   if (!isSelected)
   {
      oldcolor = dspl_SetBkgColor(0xc0c0c0); //fill shallow grey color
      dspl_fill_rectangle(x, y, x+WIDTH_BUTTON-2, y+HEIGHT_BUTTON-2);

      dspl_SetBkgColor(oldcolor);
   }
   //  dspl_Enable(uMode);

}

/****************************************************************************



******************************************************************************/
void DrawHand(USHORT x, USHORT y)
{
   dspl_BitBlt(x, y, 9, 12, 0, (void *)handshape, DSPL_BMPXOR);
   dspl_BitBlt(x, y, 9, 12, 0, (void *)handmask,  DSPL_BMPAND);
   dspl_BitBlt(x, y, 9, 12, 0, (void *)handshape, DSPL_BMPXOR);
}

/*****************************************************************************


******************************************************************************/
char* CardResShi(USHORT card)
{
   USHORT shiwei, gewei;

   gewei = FirstNum(card);
   shiwei = SecondNum(card);

   switch (shiwei)
   {
   case 1:
      switch (gewei)
      {
      case 0:
      case 1:
      case 2:
      case 6:
         return(char*)fangpian;
         break;
      case 3:
         return(char*)laoJ;
         break;
      case 4:
         return(char*)laoQ;
         break;
      case 5:
         return(char*)laoK;
         break;
      }
      break;
   case 2:
      switch (gewei)
      {
      case 0:
      case 1:
      case 2:
      case 6:
         return(char*)chaohua;
         break;
      case 3:
         return(char*)laoJ;
         break;
      case 4:
         return(char*)laoQ;
         break;
      case 5:
         return(char*)laoK;
         break;
      }
      break;
   case 3:
      switch (gewei)
      {
      case 0:
      case 1:
      case 2:
      case 6:
         return(char*)hongtao;
         break;
      case 3:
         return(char*)laoJ;
         break;
      case 4:
         return(char*)laoQ;
         break;
      case 5:
         return(char*)laoK;
         break;
      }
      break;
   case 4:
      switch (gewei)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -