📄 gameshow.c
字号:
#define _GAMESHOW_C_
#pragma NOAREGS
#include "general.h"
#include "osdshow.h"
#ifdef SUPPORT_OSD_GAME
///////////////////////////////////////////////////////////////////////////////
#ifdef OSD_GAME_MAIN_MENU
static code WORD _wGameMenuItemMsg[GAME_MENU_ITEM_NS] =
{
OSD_MSG_BREAKOUT,
OSD_MSG_SOKOBAN,
OSD_MSG_TETRIS,
OSD_MSG_EXIT
};
void vShowGameMainMenu(void) large
{
BYTE i;
vSetBtnCol(WB_OSD_GAME, GAME_COL_DARK_GRAY, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vSetMsgCol4(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
_wStartX = GAME_MENU_ITEM_START_X;
_wEndX = GAME_MENU_ITEM_END_X;
_wStartY = GAME_MENU_ITEM_SPACE;
_wEndY = _wStartY + GAME_MENU_ITEM_HEIGHT;
for (i = 0; i < GAME_MENU_ITEM_NS; i++)
{
vCreateMsgButton(WB_OSD_GAME, i, 4, _wGameMenuItemMsg[i], 0xFFFF, 0);
vUnselButton(WB_OSD_GAME, i);
_wStartY += GAME_MENU_ITEM_HEIGHT + GAME_MENU_ITEM_SPACE;
_wEndY = _wStartY + GAME_MENU_ITEM_HEIGHT;
}
}
void vHiliGameMenuItem(BYTE bItem, BYTE bState) large
{
vHiliGameButton(bItem, bState);
}
#endif
///////////////////////////////////////////////////////////////////////////////
void vHex2Sring(WORD wHex, BYTE *pbString) large
{
pbString[4] = wHex % 10 + '0';
wHex /= 10;
pbString[3] = wHex % 10 + '0';
wHex /= 10;
pbString[2] = wHex % 10 + '0';
wHex /= 10;
pbString[1] = wHex % 10 + '0';
pbString[0] = 4;
}
void vClrGameWorkArea(void) large
{
vSetStartEndXY(GAME_WORK_START_X, GAME_WORK_START_Y, GAME_WORK_END_X, GAME_WORK_END_Y);
vRectangle(WB_OSD_GAME, 0, 0, TRUE, GAME_COL_BG);
}
void vDrawGameInfoPane(void) large
{
#if 0
vSetStartEndXY(GAME_INFO_START_X, GAME_INFO_START_Y, GAME_INFO_END_X, GAME_INFO_START_Y);
vOsdShowLine(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_INFO_LINE_WIDTH);
vSetStartEndXY(GAME_INFO_START_X, GAME_INFO_START_Y, GAME_INFO_START_X, GAME_INFO_END_Y);
vOsdShowLine(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_INFO_LINE_WIDTH);
vSetStartEndXY(GAME_INFO_END_X - GAME_INFO_LINE_WIDTH, GAME_INFO_START_Y,
GAME_INFO_END_X - GAME_INFO_LINE_WIDTH, GAME_INFO_END_Y);
vOsdShowLine(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_INFO_LINE_WIDTH);
vSetStartEndXY(GAME_INFO_START_X, GAME_INFO_END_Y - GAME_INFO_LINE_WIDTH ,
GAME_INFO_END_X, GAME_INFO_END_Y - GAME_INFO_LINE_WIDTH);
vOsdShowLine(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_INFO_LINE_WIDTH);
#else
vSetStartEndXY(GAME_INFO_START_X, GAME_INFO_START_Y, GAME_INFO_END_X - 1, GAME_INFO_END_Y - 1);
vRectangle(WB_OSD_GAME, GAME_INFO_LINE_WIDTH, GAME_COL_DARK_CYAN, TRUE, GAME_COL_BG);
#endif
}
void vHiliGameButton(BYTE bBnIndex, BYTE bState) large
{
switch (bState)
{
case ITEM_UNSELECT:
{
vSetBtnCol(WB_OSD_GAME, GAME_COL_DARK_GRAY, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vSetMsgCol4(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vUnselButton(WB_OSD_GAME, bBnIndex);
break;
}
case ITEM_SELECT:
{
vSetBtnCol(WB_OSD_GAME, GAME_COL_DARK_GRAY, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vSetMsgCol4(WB_OSD_GAME, GAME_COL_DARK_GRAY, GAME_COL_DARK_GRAY, GAME_COL_BLACK, GAME_COL_WHITE);
vSelButton(WB_OSD_GAME, bBnIndex);
break;
}
case ITEM_HILI:
{
vSetBtnCol(WB_OSD_GAME, GAME_COL_DARK_GRAY, GAME_COL_YELLOW, GAME_COL_BLACK, GAME_COL_WHITE);
vSetMsgCol4(WB_OSD_GAME, GAME_COL_YELLOW, GAME_COL_YELLOW, GAME_COL_BLACK, GAME_COL_BLACK);
vUnselButton(WB_OSD_GAME, bBnIndex);
break;
}
default:
{
break;
}
}
}
void vShowGameDialog(WORD wMsg, BYTE fgYesNo) large
{
// Create the dialog background
vSetStartEndXY(GAME_DIALOG_START_X, GAME_DIALOG_START_Y, GAME_DIALOG_END_X, GAME_DIALOG_END_Y);
vRectangle(WB_OSD_GAME, 0, 0, TRUE, GAME_COL_DARK_CYAN);
// Show the dialog message
vSetMsgCol4(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vSetStartXY(GAME_DIALOG_MSG_START_X, GAME_DIALOG_MSG_START_Y);
vOsdMsgPaste(WB_OSD_GAME, wMsg);
// Create the 'Yes' and 'No' button
vSetBtnCol(WB_OSD_GAME, GAME_COL_DARK_GRAY, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vSetMsgCol4(WB_OSD_GAME, GAME_COL_DARK_CYAN, GAME_COL_DARK_CYAN, GAME_COL_BLACK, GAME_COL_WHITE);
vSetStartEndXY(GAME_DIALOG_BN1_START_X, GAME_DIALOG_BN_START_Y,
GAME_DIALOG_BN1_END_X, GAME_DIALOG_BN_END_Y);
vCreateMsgButton(WB_OSD_GAME, GAME_DIALOG_YES, 4, OSD_MSG_GAME_YES, 0xFFFF, 0);
vSetStartEndXY(GAME_DIALOG_BN2_START_X, GAME_DIALOG_BN_START_Y,
GAME_DIALOG_BN2_END_X, GAME_DIALOG_BN_END_Y);
vCreateMsgButton(WB_OSD_GAME, GAME_DIALOG_NO, 4, OSD_MSG_GAME_NO, 0xFFFF, 0);
if(fgYesNo)
{
vHiliGameButton(GAME_DIALOG_YES, TRUE);
vHiliGameButton(GAME_DIALOG_NO, FALSE);
}
else
{
vHiliGameButton(GAME_DIALOG_YES, FALSE);
vHiliGameButton(GAME_DIALOG_NO, FALSE);
}
}
///////////////////////////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -