📄 bmshow.h
字号:
\
#ifndef _BMSHOW_H_
#define _BMSHOW_H_
#ifdef OSD_GAME_SOKOBAN
#define MAX_BOX_NO 6
#define GetBMPos(a) ((a) * 28)
#define SetBoxfg(a) (_bfgApBox | (0x01 << (a)))
#define ClrBoxfg(a) (_bfgApBox & (~(0x01 << (a))))
#define fgBox(a) (_bfgApBox & (0x01 << (a)))
#define SI_MAN_X wSIItemPos(SI_OSD_GAME_START_GRP, 1)
#define SI_MAN_Y wSIItemPos(SI_OSD_GAME_START_GRP, 2)
#define SI_BOX_X_START wSIItemPos(SI_OSD_GAME_START_GRP, 3)
#define SI_BOX_X(a) (SI_BOX_X_START + (a) * 2)
#define SI_BOX_Y(a) (SI_BOX_X_START + (a) * 2 + 1)
#define SI_BOX_POS_SIZE (MAX_BOX_NO * 2)
#define SI_SHIFT_SR_X (SI_BOX_X_START + SI_BOX_POS_SIZE)
#define SI_SHIFT_SR_Y (SI_SHIFT_SR_X + 1)
#define SI_SHIFT_DS_X (SI_SHIFT_SR_X + 2)
#define SI_SHIFT_DS_Y (SI_SHIFT_SR_X + 3)
#define SI_MEM_SHIFT_START (SI_SHIFT_SR_X + 4)
#define SI_MEM_OREN(a) (SI_MEM_SHIFT_START + (a) * 2)
#define SI_MEM_BOXID(a) (SI_MEM_SHIFT_START + (a) * 2 + 1)
#define SI_GAME_SHAR_SIZE 256
#define MAX_REBACK_STEP ((SI_GAME_SHAR_SIZE - 18) / 2)
#define BOXMAN_MAP_START_X 4
#define BOXMAN_MAP_START_Y 0
#define BOXMAN_BMP_WIDTH 28
#define BOXMAN_BMP_HEIGHT 28
#define BM_INFO_PANE (0x01 << 0)
#define BM_INFO_GRADE (0x01 << 1)
#define BM_INFO_PUSH_STEP (0x01 << 2)
#define BM_INFO_REBACK_STEP (0x01 << 3)
#define BM_INFO_REBACKED_STEP (0x01 << 4)
#define BM_INFO_ANSWER (0x01 << 5)
#define BM_INFO_START (0x01 << 6)
#define BM_INFO_PLAYING (0x01 << 7)
#define BM_INFO_ALL1 (0x7F)
#define BM_INFO_ALL2 (0xBF)
#define BM_INFO_NS (8)
// Grade / Push Step / Reback Step / Rebacked Step / Answer
#define BM_INFO_BUTTON_SPACE 12
#define BM_INFO_BUTTON_WIDTH1 160
#define BM_INFO_BUTTON_HEIGHT1 38
#define BM_INFO_BUTTON_START_X1 (GAME_INFO_START_X + (GAME_INFO_WIDTH - BM_INFO_BUTTON_WIDTH1) / 2)
#define BM_INFO_BUTTON_END_X1 (BM_INFO_BUTTON_START_X1 + BM_INFO_BUTTON_WIDTH1)
#define BM_INFO_VALUE_START_X (BM_INFO_BUTTON_START_X1 + 100)
// Start / Playing
#define BM_INFO_BUTTON_WIDTH2 80
#define BM_INFO_BUTTON_HEIGHT2 38
#define BM_INFO_BUTTON_START_X2 (GAME_INFO_START_X + (GAME_INFO_WIDTH - BM_INFO_BUTTON_WIDTH2) / 2)
#define BM_INFO_BUTTON_END_X2 (BM_INFO_BUTTON_START_X2 + BM_INFO_BUTTON_WIDTH2)
#define BM_INFO_BUTTON_START_Y2 (BM_INFO_BUTTON_END_Y2 - BM_INFO_BUTTON_HEIGHT2)
#define BM_INFO_BUTTON_END_Y2 (GAME_INFO_END_Y - BM_INFO_BUTTON_SPACE)
// Bad position warning
#define BM_BAD_POSI_WARN_WIDTH GAME_WORK_WIDTH
#define BM_BAD_POSI_WARN_HEIGHT 60
#define BM_BAD_POSI_START_X GAME_WORK_START_X
#define BM_BAD_POSI_START_Y (BM_BAD_POSI_END_Y - BM_BAD_POSI_WARN_HEIGHT)
#define BM_BAD_POSI_END_X GAME_WORK_END_X
#define BM_BAD_POSI_END_Y GAME_WORK_END_Y
void vDrawMap(BYTE bBmpId, BYTE bBmpX, BYTE bBmpY) large;
void vDrawBox(BYTE bBoxId) large;
void vDrawMan(BYTE bManPosX, BYTE bManPosY) large;
void vBoxManShowMap(void) large;
void vBoxManShowInfo(BYTE bInfo) large;
void vHiliBoxManMenuItem(BYTE bItem, BYTE bState) large;
void vBoxManShowDialog(void) large;
void vHiliBoxManDialogItem(BYTE bItem, BYTE bStste) large;
void vShowBmBadPosiWarn(void) large;
void vClrBmBadPosiWarn(void) large;
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -