⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 games_main.c

📁 几个嵌入式手机平台小游戏c源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -