📄 suoha_main.c
字号:
default:
break;
}
return MFW_EVENT_CONSUMED;
}
void Suoha_Destroy(T_MFW_HND own_window)
{
T_MFW_WIN * win;
T_Suoha * data;
TRACE_EVENT("Suoha_Destroy");
if (own_window)
{
win = ((T_MFW_HDR *)own_window)->data;
data = (T_Suoha *)win->user;
if (data)
{
casenum = 0;
kbdDelete(data->kbd);
timDelete(data->tim);
win_delete (data->win);
}
FREE_MEMORY ((void *)data, sizeof (T_Suoha));
}
flash_Gamewrite();
}
BOOL Opponent_Select_init()
{
//initialize three opponents
win_states = SUOHA_OPP_SELECT;
focus_opp = 1;
// dspl_ClearAll();
return 1;
}
void Play_MainWin_data_Init()
{
TRACE_FUNCTION("Play_MainWin_data_Init()");
c_M = oppmoney[focus_opp-1];
}
//4 开始游戏,洗牌,发牌,显示前两张牌
void Play_Start() //the entry of main playing window
{
MfwRect rect = {0,0,120,160};
USHORT i;
T_SUOHA_MAINWIN_FOCUSTHINGS *temp;
TRACE_FUNCTION("Play_Start()");
// isEnd = FALSE;
win_states = SUOHA_MAIN_WINDOW;
/*initialize p_Cards and c_Cards*/
dspl_ClearAll();
PaintBackground(rect, BKCOLOR);
ShuffleCards();
SendCards();
p_PreviousM = p_M;
c_PreviousM = c_M;
/* the number of case*/
casenum++;
/* display the cards*/
curr_CardTh = 1; //the first card will be displayed
DisplayOneCard(COMPUTER, BACKCARD, c_Cards[0]);
DisplayOneCard(PLAYER, curr_CardTh, p_Cards[0]);
/*initialize stakes*/
p_CurrStake = 100;
p_M = p_M - p_CurrStake;
c_CurrStake = 100;
c_M = c_M - c_CurrStake;
desk_CurrStake = 200;
DisplayMainWinTxtZone();
for (i=0; i<=3; i++) //in addition, "quansuo" must be enabled at last!!
{
temp = (T_SUOHA_MAINWIN_FOCUSTHINGS *)&playeractions[i];//+i*sizeof(T_SUOHA_MAINWIN_FOCUSTHINGS);
temp->thingtype = ACTIONS;
temp->isenabled = TRUE;
}
temp = &playeractions[4]; temp->isenabled = 0;
Interactive();
mainwin_focus->codenum = playeractions[1].codenum;
mainwin_focus->isenabled = playeractions[1].isenabled;
mainwin_focus->thingtype = playeractions[1].thingtype;
mainwin_states = SUOHA_ISACTING;
Display_Actions();
Display_Focus();
}
/********************************************************************
*********************************************************************/
void PreFocus()
{
USHORT numcode, i;
T_SUOHA_MAINWIN_FOCUSTHINGS *pre_focus;
pre_focus = mainwin_focus;
/*
* do not focus COMPUTER_CARD and PLAR_CARD
*/
/*
if(mainwin_focus->thingtype==COMPUTER_CARD) //4 如果是聚焦在电脑的牌上
{
numcode = mainwin_focus->codenum;
if(numcode==0) //future focus is not in computercards
{
RedrawPreCardFocus(pre_focus);
if(curr_CardTh>=2)
{
//4如果牌当前的牌数大于2,为什么会聚焦到玩家的牌上
mainwin_focus = &playercards[curr_CardTh-2]; //zhangzg 08/20/2002
Display_Focus();
}
else
{
for(i=4; i>=0; i--) //some actions may be not enabled in some cases
{
//4 如果对应按钮上的动作可以被执行
if(playeractions[i].isenabled)
{
mainwin_focus = &playeractions[i];
Display_Focus();
break;
}
}
}
}
else
{
numcode--;
RedrawPreCardFocus(pre_focus);
mainwin_focus = &computercards[numcode];
Display_Focus();
}
}
else if(mainwin_focus->thingtype==PLAYER_CARD)
{
numcode = mainwin_focus->codenum;
if(numcode==0)
{
RedrawPreCardFocus(pre_focus);
for(i=4; i>=0; i--) //some actions may be not enabled in some cases
{
if(playeractions[i].isenabled)
{
mainwin_focus = &playeractions[i];
Display_Focus();
break;
}
}
}
else
{
numcode--;
RedrawPreCardFocus(pre_focus);
mainwin_focus = &playercards[numcode];
Display_Focus();
}
}
else
{
*/
numcode = mainwin_focus->codenum;
if (numcode==0)
{
RedrawPreActionFocus(pre_focus);
//4 否则从最后一个开始找如果能画就画,并break
for (i=4; i>=0; i--) //some actions may be not enabled in some cases
{
if (playeractions[i].isenabled)
{
mainwin_focus = &playeractions[i];
Display_Focus();
break;
}
}
} else
{
numcode--;
RedrawPreActionFocus(pre_focus);
for (i=numcode; i>=0; i--)
{
if (playeractions[i].isenabled)
{
mainwin_focus = &playeractions[i];
Display_Focus();
break;
}
}
}
}
void NextFocus()
{
USHORT numcode;
T_SUOHA_MAINWIN_FOCUSTHINGS *pre_focus;
pre_focus = mainwin_focus;
/*
* do not focus COMPUTER_CARD and PLAR_CARD
*/
/*
if(mainwin_focus->thingtype==COMPUTER_CARD)
{
numcode = mainwin_focus->codenum;
while(curr_CardTh>=3 && numcode<=(curr_CardTh-3)) //zhangzg 08/20/2002
{
numcode++;
if(numcode>(curr_CardTh-3)) //zhangzg 08/20/2002
{
RedrawPreCardFocus(pre_focus);
mainwin_focus = &playeractions[0];
Display_Focus();
break;
}
else if(computercards[numcode].isenabled)
{
RedrawPreCardFocus(pre_focus);
//
mainwin_focus = &computercards[numcode];
Display_Focus();
break;
}
else
{
}
}
}
else if(mainwin_focus->thingtype==PLAYER_CARD)
{
numcode = mainwin_focus->codenum;
while(curr_CardTh>=2 && numcode<=(curr_CardTh-2)) //zhangzg 08/20/2002 //numcode=0~4; curr_CardTh= 1~5
{
numcode++;
if(numcode>(curr_CardTh-2))//zhangzg 08/20/2002
{
RedrawPreCardFocus(pre_focus);
if(curr_CardTh>=3)
mainwin_focus = &computercards[0];
else
mainwin_focus = &playeractions[0];
Display_Focus();
break;
}
else if(playercards[numcode].isenabled)
{
RedrawPreCardFocus(pre_focus);
mainwin_focus = &playercards[numcode];
Display_Focus();
break;
}
else
{
}
}
}
else
{ */
numcode = mainwin_focus->codenum;
while (numcode<=4) //numcode=0~4; playeractions have total 4 items!!
{
numcode++;
if (numcode>4)
{
RedrawPreActionFocus(pre_focus);
mainwin_focus = &playeractions[0];
Display_Focus();
break;
} else if (playeractions[numcode].isenabled)
{
RedrawPreActionFocus(pre_focus);
mainwin_focus = &playeractions[numcode];
Display_Focus();
break;
}
}
}
/***********************************************************************
when you select different items, the game handles them respectively
***********************************************************************/
void SelectFocusItems()
{
T_SUOHA_MAINWIN_THINGTYPE focusthing = mainwin_focus->thingtype;
USHORT cn = mainwin_focus->codenum;
switch (focusthing)
{
/*
case COMPUTER_CARD:
SelectComputerCard(cn);
break;
case PLAYER_CARD:
SelectPlayerCard(cn);
break;
*/
case ACTIONS:
SelectAction(cn);
break;
case STAKES:
SelectStake(cn);
break;
default:
break;
}
}
/****************************************************************************
******************************************************************************/
void SelectAction(USHORT whichaction)
{
switch (whichaction)
{
case 0: //4 查看
DrawSelectedButton(1);
pre_mainwin_states = mainwin_states;
CheckCurr();
break;
case 1: //4 下注
DrawSelectedButton(2);
XiaZhu();
if (playeractions[1].isenabled)
{
mainwin_focus = &playeractions[1];
Display_Focus();
} else
{
mainwin_focus = &playeractions[0];
Display_Focus();
}
break;
case 2: //4 跟进
DrawSelectedButton(3);
GenJin();
break;
case 3: //4 放弃
DrawSelectedButton(4);
FangQi();
mainwin_focus = (T_SUOHA_MAINWIN_FOCUSTHINGS *)&computercards[0];//point to computer[1];
break;
case 4: //4 全梭
DrawSelectedButton(5);
QuanSuo();
mainwin_focus = (T_SUOHA_MAINWIN_FOCUSTHINGS *)&computercards[0];//point to computer[1];
break;
default:
break;
}
}
//4 选择下注并且重新刷新所有的按钮设置mainwin_states为初始状态
void SelectStake(USHORT whichstake)
{
USHORT i, item;
switch (whichstake)
{
case 1:
DrawSelectedButton(2);
item = 1;
break;
case 2:
DrawSelectedButton(3);
item = 2;
break;
case 3:
DrawSelectedButton(4);
item = 3;
break;
default:
break;
}
for (i=1; i<=3; i++)
playeractions[i].thingtype = ACTIONS;
if (curr_CardTh<=5)// && !isEnd)
{
Display_Actions();
mainwin_states = SUOHA_ISACTING;
//recover the enabled
playeractions[1].isenabled = 1;
playeractions[3].isenabled = 1;
mainwin_focus = &playeractions[1]; //set the focus to xiazhu
Display_Focus();
}
Money123(item);
}
/***************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -