📄 housekeeper.c
字号:
/* ** housekeeper: the housekeeper game.** Copyright (C) 2002~2007 Feynman Software** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the** GNU General Public License for more details.** You should have received a copy of the GNU General Public License along** with this program; if not, write to the Free Software Foundation, Inc.,** 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.*/#include "map.h"#define ID_GOTO 7980#define ID_NEXT 7990#define ID_PREVIOUS 8000 #define ID_RESTART 8010#define ID_UNDO 8020#define ID_EXIT 8040#define ID_MAP_A 8050#define ID_MAP_B 8060#define ID_MAP_C 8070#define ID_MAP_D 8080#define ID_MAP_E 8090#define ID_MAP_F 8100#define ID_MAP_G 8110#define ID_MAP_H 8120#define ID_ABOUT 8130 #define WIDTH_LARGEWIN 600#define HEIGHT_LARGEWIN 400int TestMyWinProc(HWND hWnd,int message,WPARAM wParam,LPARAM lParam);void InitMyWinCreateInfo(PMAINWINCREATE pCreateInfo);HMENU createmenu1(void);HMENU createpmenugame(void);HMENU createpmenucollection(void);HMENU createpmenuabout(void);BOOL InitializeApp(void);void OnClose(HWND hWnd);void OnDraw(HWND hWnd,HDC hDC);static BITMAP bitmapAll[6];static const char* lang= "en";static const char**pmain_menu =NULL;static const char**pgame_menu =NULL;static const char**pabout_menu =NULL;static const char**pcollection_menu =NULL;static const char**pmessagebox =NULL;static const char* messagebox_cn[] ={ "选择游戏级别", "游戏级别", "确定", "取消", "推箱子-1.0\n\nCopyright (C) 2003 ~ 2008 北京飞漫软件技术有限公司\n\n 保留所有权利", "推箱子", "任务完成", "你行!"};static const char* messagebox_tw[] ={ "選擇游戲級別", "游戲級別", "確定", "取消", "推箱子-1.0\n\nCopyright (C) 2003 ~ 2008 北京飛漫軟件技術有限公司\n\n 保留所有權利", "推箱子", "任務完成", "你行!"};static const char* messagebox_en[] ={ "Choose level", //0 "Game Level:", //1 "Ok", //2 "Cancel", //3 "House Keeper -- Version 1.0\n\nCopyright (C) 2003 ~ 2008 Beijing Feynman Software Technology Co., Ltd.\nAll rights reserved.", //4 "House Keeper", //5 "Misson Completed!", //6 "Good" //7};static const char* collection_menu_cn[] ={ "排列集合", "排列集合 A", "排列集合 B", "排列集合 C", "排列集合 D", "排列集合 E", "排列集合 F", "排列集合 G", "排列集合 H"};static const char* collection_menu_tw[] ={ "排列集合", "排列集合 A", "排列集合 B", "排列集合 C", "排列集合 D", "排列集合 E", "排列集合 F", "排列集合 G", "排列集合 H"};static const char* collection_menu_en[] ={ "Collection", "Collection A", "Collection B", "Collection C", "Collection D", "Collection E", "Collection F", "Collection G", "Collection H"};static const char* about_menu_cn[] ={ "关于", "关于推箱子游戏"};static const char* about_menu_tw[] ={ "關於", "關於推箱子游戲"};static const char* about_menu_en[] ={ "About", "About House Keeper"};static const char* game_menu_cn[] ={ "游戏", "选择级別", "下一级別", "上一级別", "重新开始", "撤消", "退出"};static const char* game_menu_tw[] ={ "游戲", "選擇級別", "下一級別", "上一級別", "重新開始", "撤消", "退出"};static const char* game_menu_en[] ={ "Game", //0 "Goto Level", //1 "Next Level", //2 "Previous Level", //3 "Restart Level", //4 "Undo", //5 "Exit" //6};static const char* main_menu_cn[] ={ "游戏", "排列集合", "关于"};static const char* main_menu_tw[] ={ "游戲", "排列集合", "關於"};static const char* main_menu_en[] ={ "Game", "Collection", "About"};static PLOGFONT cap_font = NULL;static PLOGFONT ctrl_font = NULL;static PLOGFONT menu_font = NULL;static PLOGFONT utf8_font = NULL;static void init_housekeeper(void){ cap_font = g_SysLogFont[SYSLOGFONT_CAPTION]; ctrl_font = g_SysLogFont[SYSLOGFONT_CONTROL]; menu_font = g_SysLogFont[SYSLOGFONT_MENU]; utf8_font = CreateLogFontByName("*-Arial-rrncnn-*-12-UTF-8"); g_SysLogFont[SYSLOGFONT_CAPTION] = utf8_font; g_SysLogFont[SYSLOGFONT_CONTROL] = utf8_font; g_SysLogFont[SYSLOGFONT_MENU] = utf8_font; if(strcasecmp(lang,"zh_cn")==0){ local_SysText = GetSysTextInUTF8("zh_CN"); } else if(strcasecmp(lang,"zh_tw")==0){ local_SysText = GetSysTextInUTF8("zh_TW"); } else local_SysText = GetSysTextInUTF8("EN");}static void release_housekeeper(void){ g_SysLogFont[SYSLOGFONT_CAPTION] = cap_font; g_SysLogFont[SYSLOGFONT_CONTROL] = ctrl_font; g_SysLogFont[SYSLOGFONT_MENU] = menu_font; DestroyLogFont(utf8_font);}#define IDC_LEVELINPUT 9000DLGTEMPLATE DlgInputLevel = { WS_BORDER | WS_CAPTION, WS_EX_IMECOMPOSE, 70, 80, 400, 158, "Choose level", 0, 0, 4, NULL, 0};CTRLDATA CtrlInputLevel [] = { { "static", WS_VISIBLE | SS_RIGHT, 14, 30, 150, 18, IDC_STATIC, "Game Level:", 0 }, { "edit", WS_VISIBLE | WS_BORDER | WS_TABSTOP, 180, 30, 100, 22, IDC_LEVELINPUT, NULL, 0 }, { "button", WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, 80, 94, 100, 28, IDOK, "Ok", 0 }, { "button", WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, 256, 94, 100, 28, IDCANCEL, "Cancel", 0 }}; static int DialogInputLevelProc(HWND hDlg, int message, WPARAM wParam, LPARAM lParam){ char strText[4]; int i; switch (message) { case MSG_INITDIALOG: return 1; case MSG_COMMAND: switch (wParam) { case IDOK: GetDlgItemText(hDlg,IDC_LEVELINPUT,strText,3); i = atoi(strText); EndDialog(hDlg,i); break; case IDCANCEL: EndDialog (hDlg, 0); break; } break; } return DefaultDialogProc (hDlg, message, wParam, lParam);}HMENU createmenu1(void){ HMENU hmnu; MENUITEMINFO mii; hmnu = CreateMenu(); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 100; mii.typedata = (DWORD)pmain_menu[0]; mii.hsubmenu = createpmenugame(); InsertMenuItem(hmnu, 0, TRUE, &mii); mii.type = MFT_STRING; mii.id = 110; mii.typedata = (DWORD)pmain_menu[1]; mii.hsubmenu = createpmenucollection(); InsertMenuItem(hmnu, 1, TRUE, &mii); mii.type = MFT_STRING; mii.id = 120; mii.typedata = (DWORD)pmain_menu[2]; mii.hsubmenu = createpmenuabout(); InsertMenuItem(hmnu, 2, TRUE, &mii); return hmnu;}HMENU createpmenuabout(void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)pabout_menu[0]; hmnu = CreatePopupMenu (&mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_ABOUT; mii.typedata = (DWORD)pabout_menu[1]; InsertMenuItem(hmnu, 0, TRUE, &mii); return hmnu;}HMENU createpmenugame(void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)pgame_menu[0]; hmnu = CreatePopupMenu (&mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_GOTO; mii.typedata = (DWORD)pgame_menu[1]; InsertMenuItem(hmnu, 0, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_NEXT; mii.typedata = (DWORD)pgame_menu[2]; InsertMenuItem(hmnu, 1, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_PREVIOUS; mii.typedata = (DWORD)pgame_menu[3]; InsertMenuItem(hmnu, 2, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_RESTART; mii.typedata = (DWORD)pgame_menu[4]; InsertMenuItem(hmnu, 3, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_UNDO; mii.typedata = (DWORD)pgame_menu[5]; InsertMenuItem(hmnu, 4, TRUE, &mii); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_EXIT; mii.typedata = (DWORD)pgame_menu[6]; InsertMenuItem(hmnu, 5, TRUE, &mii); return hmnu;}HMENU createpmenucollection(void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)pcollection_menu[0]; hmnu = CreatePopupMenu (&mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_MAP_A; mii.typedata = (DWORD)pcollection_menu[1]; InsertMenuItem(hmnu, 0, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_MAP_B; mii.typedata = (DWORD)pcollection_menu[2]; InsertMenuItem(hmnu, 1, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_MAP_C; mii.typedata = (DWORD)pcollection_menu[3]; InsertMenuItem(hmnu, 2, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_MAP_D; mii.typedata = (DWORD)pcollection_menu[4]; InsertMenuItem(hmnu, 3, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_MAP_E; mii.typedata = (DWORD)pcollection_menu[5]; InsertMenuItem(hmnu, 4, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = ID_MAP_F;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -