📄 suoha_dspl.c
字号:
/********************************************************************************
$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 + -