📄 games_main.c
字号:
#ifdef __cplusplus
extern "C" {
#endif
/*==================================================================================================
MODULE NAME : module-filename.c
GENERAL DESCRIPTION
General description of this grouping of functions.
TECHFAITH Telecom Confidential Proprietary
(c) Copyright 2002 by TECHFAITH Telecom Corp. All Rights Reserved.
====================================================================================================
Revision History
Modification Tracking
Date Author Number Description of changes
---------- -------------- --------- -----------------------------------------------------------------------------------
MM/DD/YYYY name of author crxxxxx Brief description of changes made
02/12/2003 Steven Lai PP00063 update function close_old_popup()
03/01/2003 Steven Lai PC00009 Restructure Games app
03/01/2003 Steven Lai PC00010 Add a new game: tetris
03/13/2003 Steven Lai PP00159 Removed some useless code
05/27/2003 Chenyu P000436 Fix sublcd & game display
03-06-3 Chenyu P00502 Fix game tetris
07/02/2003 Steven Lai C000662 Add a sound-switch for Games App
replace all the App_change_state() with Games_change_state()
fixed some bugs
01/07/2004 steven li p003225 change title attr for dolphin
02/24/2004 lixingbo p002467 Modify the game for dolphin.
03/16/2004 Steven li c002661 change menu item structure to support diable menu item .
03/29/2004 Lixingbo p002775 Mofify some bug for dolphin.
04/13/2004 chouwangyun C002941 make new style list
04/19/2004 chouwangyun C005019 add game icon
04/20/2004 chouwangyun c005037 finish icon list
04/16/2004 caoyanqing c003008 Add the corresponding part of fruit_game app.
04/24/2004 lixingbo p005089 Modify the Icon for fruit_game.
04/27/2004 chouwangyun c005132 add icon for list
06/08/2004 jianghb C005970 Synchronize Lotus with Dolphin(3)
06/12/2004 Lixingbo p006127 Modify menu_icons for lotus.
06/18/2004 Lixingbo p006238 Modify some display bugs for lotus.
07/15/2004 Lixingbo p006995 Modify the menu icon.
07/24/2004 linda C007242 Unify the menu attribute.
Self-documenting Code
Describe/explain low-level design of this module and/or group of funtions and/or specific
funtion that are hard to understand by reading code and thus requires detail description.
Free format !
====================================================================================================
INCLUDE FILES
==================================================================================================*/
#include "APP_include.h"
#include "uhapi.h"
#include "MENU_submain.h"
#include "MENU_display.h"
#include "MENU_item.h"
#include "SP_volume.h"
#include "GAMES_main.h"
#ifdef GAMES_TETRIS
#include "GAMES_tetris.h"
#endif
#ifdef GAMES_CARGADOR
#include "GAMES_cargador.h"
#endif
#ifdef GAMES_FALLBALL
#include "GAMES_fallball.h"
#endif
#ifdef GAMES_GOPHER
#include "GAMES_gopher.h"
#endif
#ifdef GAMES_HUARONG
#include "GAMES_huarong.h"
#endif
#ifdef GAMES_LIGHTUP
#include "GAMES_lightup.h"
#endif
#ifdef GAMES_STARWAR
#include "GAMES_starwar.h"
#endif
#ifdef GAMES_FRUIT
#include "GAMES_fruit.h"
#endif
#include "GAMES_highscore.h"
#include "GAMES_help.h"
/*==================================================================================================
LOCAL FUNCTION PROTOTYPES
==================================================================================================*/
static void Games_App_Menu_Enter(void);
static void Games_App_Menu_Handler( OPUS_EVENT_ENUM_TYPE event,
void *pMess,
OP_BOOLEAN *handle);
#ifdef GAMES_CARGADOR
static void CargadorProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_FALLBALL
static void FallballProcess(OP_UINT32 select_item);
static void FallballHighscoreProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_GOPHER
static void GopherProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_HUARONG
static void HuarongProcess(OP_UINT32 select_item);
static void HuarongHighscoreProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_LIGHTUP
static void LightupProcess(OP_UINT32 select_item);
static void LightupHighscoreProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_STARWAR
static void StarwarProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_TETRIS
static void tetrisProcess(OP_UINT32 select_item);
#endif
#ifdef GAMES_FRUIT
static void FruitProcess(OP_UINT32 select_item);
#endif
static void setting_games_audio
(
OP_UINT32 para
);
static void Games_notice_enter
(
void
);
static void Games_notice_handler
(
OPUS_EVENT_ENUM_TYPE event,
void *pMess,
OP_BOOLEAN *handle
);
/*==================================================================================================
LOCAL CONSTANTS
==================================================================================================*/
/*==================================================================================================
LOCAL TYPEDEFS - Structure, Union, Enumerations...etc
==================================================================================================*/
/*
* Define Application's sub state table here.
*/
APP_SUBSTATE_STRUCTURE_NAME_T const games_substate[APP_GAMES_MAX_STATE+1]=
{
/* STATE NAME , ENTRY , EXIT , HANDLER , EVMASK */
{APP_GAMES_STATE_MENU, Games_App_Menu_Enter, OP_NULL, Games_App_Menu_Handler,
(OPUS_EVENT_GROUP_FOCUS_MASK |OPUS_EVENT_GROUP_TIMER_MASK)},
#ifdef GAMES_TETRIS
{APP_GAMES_TETRIS_ENTER, APP_Tetris_entry, App_Tetris_exit, App_Tetris_handler,
(OPUS_EVENT_GROUP_FOCUS_MASK|OPUS_EVENT_GROUP_TIMER_MASK)},
#endif
#ifdef GAMES_CARGADOR
{APP_GAMES_CARGADOR_RESUME, APP_Cargador_entry, App_Cargador_exit, App_Cargador_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
{APP_GAMES_CARGADOR_SELECT, APP_Cargador_entry, App_Cargador_exit, App_Cargador_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK | OPUS_EVENT_GROUP_INTERNAL_MASK | OPUS_EVENT_GROUP_UHW_MASK)},
{APP_GAMES_CARGADOR_STATE_POPUP, OP_NULL, OP_NULL, App_Cargador_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
#ifdef GAMES_FALLBALL
{APP_GAMES_FALLBALL_ENTER, APP_Fallball_entry, APP_Fallball_exit, APP_Fallball_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
#ifdef GAMES_GOPHER
{APP_GAMES_GOPHER_ENTER, APP_Gopher_entry, App_Gopher_exit, App_Gopher_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
#ifdef GAMES_HUARONG
{APP_GAMES_HUARONG_ENTER, APP_Huarong_entry, App_Huarong_exit, App_Huarong_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
#ifdef GAMES_LIGHTUP
{APP_GAMES_LIGHTUP_ENTER, APP_Lightup_entry, App_Lightup_exit, App_Lightup_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
#ifdef GAMES_FRUIT
{APP_GAMES_FRUIT_ENTER, APP_Fruit_entry, App_Fruit_exit, App_Fruit_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
#ifdef GAMES_STARWAR
{APP_GAMES_STARWAR_ENTER, APP_Starwar_entry, App_Starwar_exit, App_Starwar_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
#endif
{APP_GAMES_HELP, Games_Help_entry, Games_Help_exit, Games_Help_Handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
{APP_GAMES_HIGHSCORE, Games_Highscore_entry, Games_Highscore_exit, Games_Highscore_Handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
{APP_GAMES_STATE_NOTICE, Games_notice_enter, OP_NULL, Games_notice_handler,
(OPUS_EVENT_GROUP_TIMER_MASK|OPUS_EVENT_GROUP_FOCUS_MASK)},
{APP_GAMES_MAX_STATE, OP_NULL, OP_NULL, OP_NULL, 0 }
};
/*
* Menu items definitions
*/
#ifdef GAMES_CARGADOR
MENU_ITEM_STRUCTURE_NAME_T const games_cargador_menu[] =
{
{ PMPT_LIST_GAMES_JUMPTO_LEVEL, NULL_ICON, OP_FALSE, CargadorProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_GAMES_CONTINUE, NULL_ICON, OP_FALSE, CargadorProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP, NULL_ICON, OP_FALSE, CargadorProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_cargador_menu_tier =
{
PMPT_LIST_CARGADOR,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_cargador_menu,
(sizeof(games_cargador_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
#ifdef GAMES_FALLBALL
MENU_ITEM_STRUCTURE_NAME_T const games_fallball_menu[] =
{
{ PMPT_LIST_START_A_GAME, NULL_ICON, OP_FALSE, FallballProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP,NULL_ICON, OP_FALSE, FallballProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HIGHSCORE,NULL_ICON, OP_FALSE, FallballProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_fallball_menu_tier =
{
PMPT_LIST_GOPHERS,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_fallball_menu,
(sizeof(games_fallball_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
#ifdef GAMES_GOPHER
MENU_ITEM_STRUCTURE_NAME_T const games_gopher_menu[] =
{
{ PMPT_LIST_START_A_GAME, NULL_ICON, OP_FALSE, GopherProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP,NULL_ICON, OP_FALSE, GopherProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HIGHSCORE,NULL_ICON, OP_FALSE, GopherProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_gopher_menu_tier =
{
PMPT_LIST_STARWAR,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_gopher_menu,
(sizeof(games_gopher_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
#ifdef GAMES_HUARONG
MENU_ITEM_STRUCTURE_NAME_T const games_huarong_highscore_menu[] =
{
{ PMPT_LIST_HUARONG_MAP1, NULL_ICON, OP_FALSE, HuarongHighscoreProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HUARONG_MAP2, NULL_ICON, OP_FALSE, HuarongHighscoreProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HUARONG_MAP3, NULL_ICON, OP_FALSE, HuarongHighscoreProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HUARONG_MAP4, NULL_ICON, OP_FALSE, HuarongHighscoreProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_huarong_highscore_menu_tier =
{
PMPT_LIST_HIGHSCORE,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_huarong_highscore_menu,
(sizeof(games_huarong_highscore_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
MENU_ITEM_STRUCTURE_NAME_T const games_huarong_menu[] =
{
{ PMPT_LIST_HUARONG_MAP1, NULL_ICON, OP_FALSE, HuarongProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HUARONG_MAP2, NULL_ICON, OP_FALSE, HuarongProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HUARONG_MAP3, NULL_ICON, OP_FALSE, HuarongProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HUARONG_MAP4, NULL_ICON, OP_FALSE, HuarongProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP, NULL_ICON, OP_FALSE, HuarongProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HIGHSCORE, NULL_ICON, OP_TRUE, OP_NULL, &games_huarong_highscore_menu_tier, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_huarong_menu_tier =
{
PMPT_LIST_HUARONG,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_huarong_menu,
(sizeof(games_huarong_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
MENU_ITEM_STRUCTURE_NAME_T const games_lightup_highscore_menu[] =
{
{ PMPT_LIST_LIGHTUP_3, NULL_ICON, OP_FALSE, LightupHighscoreProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_LIGHTUP_4, NULL_ICON, OP_FALSE, LightupHighscoreProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_LIGHTUP_5, NULL_ICON, OP_FALSE, LightupHighscoreProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_lightup_highscore_menu_tier =
{
PMPT_LIST_HIGHSCORE,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_lightup_highscore_menu,
(sizeof(games_lightup_highscore_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#ifdef GAMES_LIGHTUP
MENU_ITEM_STRUCTURE_NAME_T const games_lightup_menu[] =
{
{ PMPT_LIST_LIGHTUP_2, NULL_ICON, OP_FALSE, LightupProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_LIGHTUP_3, NULL_ICON, OP_FALSE, LightupProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_LIGHTUP_4, NULL_ICON, OP_FALSE, LightupProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_LIGHTUP_5, NULL_ICON, OP_FALSE, LightupProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP, NULL_ICON, OP_FALSE, LightupProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HIGHSCORE, NULL_ICON, OP_TRUE, OP_NULL, &games_lightup_highscore_menu_tier, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_lightup_menu_tier =
{
PMPT_LIST_LIGHTUP,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_lightup_menu,
(sizeof(games_lightup_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
#ifdef GAMES_STARWAR
MENU_ITEM_STRUCTURE_NAME_T const games_starwar_menu[] =
{
{ PMPT_LIST_START_A_GAME, NULL_ICON, OP_FALSE, StarwarProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP, NULL_ICON, OP_FALSE, StarwarProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HIGHSCORE, NULL_ICON, OP_FALSE, StarwarProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_starwar_menu_tier =
{
PMPT_LIST_STARWAR,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_starwar_menu,
(sizeof(games_starwar_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
#ifdef GAMES_TETRIS
MENU_ITEM_STRUCTURE_NAME_T const games_tetris_menu[] =
{
{ PMPT_LIST_START_A_GAME, NULL_ICON, OP_FALSE, tetrisProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HELP, NULL_ICON, OP_FALSE, tetrisProcess, OP_NULL, OP_NULL},
{ PMPT_LIST_HIGHSCORE, NULL_ICON, OP_FALSE, tetrisProcess, OP_NULL, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_tetris_menu_tier =
{
PMPT_LIST_TETRIS,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_tetris_menu,
(sizeof(games_tetris_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
#ifdef GAMES_FRUIT
MENU_ITEM_STRUCTURE_NAME_T const games_fruit_menu[] =
{
{ PMPT_LIST_START_A_GAME, NULL_ICON, OP_FALSE, FruitProcess, OP_NULL},
{ PMPT_LIST_HELP,NULL_ICON, OP_FALSE, FruitProcess, OP_NULL},
{ PMPT_LIST_HIGHSCORE,NULL_ICON, OP_FALSE, FruitProcess, OP_NULL},
};
MENU_TIER_STRUCTURE_NAME_T games_fruit_menu_tier =
{
PMPT_LIST_FRUIT,
TITLE_SECOND_MENU,
MA_NUMBER,
0,
(void *)games_fruit_menu,
(sizeof(games_fruit_menu) /
sizeof(MENU_ITEM_STRUCTURE_NAME_T))
};
#endif
MENU_ITEM_STRUCTURE_NAME_T const games_audio_menu[] =
{
{ PMPT_COM_MODE_ON, NULL_ICON, FALSE, &setting_games_audio, NULL, OP_NULL},
{ PMPT_COM_MODE_OFF, NULL_ICON, FALSE, &setting_games_audio, NULL, OP_NULL}
};
MENU_TIER_STRUCTURE_NAME_T games_audio_menu_tier =
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -