?? game.c
字號:
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* load setting */
#if defined(__MMI_GAME__)
mmi_gfx_load_setting();
#endif
EntryNewScreen(SCR_ID_GAME_SETTING, mmi_game_exit_setting_screen, NULL, NULL);
/*****************************************************************************
* Game
*****************************************************************************/
#if defined(__MMI_GAME__)
/* TRUE (1) is on */
#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
g_mmi_game_cntx.bgm_selected = GFX.is_background_music_on;
g_mmi_game_cntx.sound_effect_selected = GFX.is_sound_effect_on;
#else /* __MMI_GAME_MULTICHANNEL_SOUND__ */
g_mmi_game_cntx.aud_selected = GFX.is_aud_on;
#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */
g_mmi_game_cntx.vib_selected = GFX.is_vib_on;
#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
g_mmi_game_cntx.background_music_str[0] = (UI_string_type) GetString((U16) (STR_GLOBAL_OFF));
g_mmi_game_cntx.background_music_str[1] = (UI_string_type) GetString((U16) (STR_GLOBAL_ON));
g_mmi_game_cntx.sound_effect_str[0] = (UI_string_type) GetString((U16) (STR_GLOBAL_OFF));
g_mmi_game_cntx.sound_effect_str[1] = (UI_string_type) GetString((U16) (STR_GLOBAL_ON));
#else /* __MMI_GAME_MULTICHANNEL_SOUND__ */
g_mmi_game_cntx.aud_str[0] = (UI_string_type) GetString((U16) (STR_GLOBAL_OFF));
g_mmi_game_cntx.aud_str[1] = (UI_string_type) GetString((U16) (STR_GLOBAL_ON));
#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */
g_mmi_game_cntx.vib_str[0] = (UI_string_type) GetString((U16) (STR_GLOBAL_OFF));
g_mmi_game_cntx.vib_str[1] = (UI_string_type) GetString((U16) (STR_GLOBAL_ON));
memset((void*)g_mmi_game_cntx.inline_game_items, 0, sizeof(InlineItem) * MMI_GAME_SETTING_ITEM_COUNT * 2);
InitializeCategory57Screen();
#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
/* background music */
SetInlineItemCaption(
&g_mmi_game_cntx.inline_game_items[item_offset++],
(PU8) GetString((U16) (STR_ID_GAME_SETTING_MULTICHANNEL_BACKGROUND_MUSIC)));
SetInlineItemActivation(&g_mmi_game_cntx.inline_game_items[item_offset], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
SetInlineItemSelect(
&g_mmi_game_cntx.inline_game_items[item_offset++],
2,
(U8 **) g_mmi_game_cntx.background_music_str,
&g_mmi_game_cntx.bgm_selected);
/* sound effect */
SetInlineItemCaption(
&g_mmi_game_cntx.inline_game_items[item_offset++],
(PU8) GetString((U16) (STR_ID_GAME_SETTING_MULTICHANNEL_SOUND_EFFECT)));
SetInlineItemActivation(&g_mmi_game_cntx.inline_game_items[item_offset], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
SetInlineItemSelect(
&g_mmi_game_cntx.inline_game_items[item_offset++],
2,
(U8 **) g_mmi_game_cntx.sound_effect_str,
&g_mmi_game_cntx.sound_effect_selected);
#else /* __MMI_GAME_MULTICHANNEL_SOUND__ */
/* game audio */
SetInlineItemCaption(
&g_mmi_game_cntx.inline_game_items[item_offset++],
(PU8) GetString((U16) (STR_ID_GAME_SETTING_AUD)));
SetInlineItemActivation(&g_mmi_game_cntx.inline_game_items[item_offset], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
SetInlineItemSelect(
&g_mmi_game_cntx.inline_game_items[item_offset++],
2,
(U8 **) g_mmi_game_cntx.aud_str,
&g_mmi_game_cntx.aud_selected);
#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */
/* game vib */
SetInlineItemCaption(
&g_mmi_game_cntx.inline_game_items[item_offset++],
(PU8) GetString((U16) (STR_ID_GAME_SETTING_VIB)));
SetInlineItemActivation(&g_mmi_game_cntx.inline_game_items[item_offset], INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, 0);
SetInlineItemSelect(
&g_mmi_game_cntx.inline_game_items[item_offset++],
2,
(U8 **) g_mmi_game_cntx.vib_str,
&g_mmi_game_cntx.vib_selected);
#endif /* defined(__MMI_GAME__) */
guiBuffer = GetCurrGuiBuffer(SCR_ID_GAME_SETTING);
inputBuffer = GetCurrNInputBuffer(SCR_ID_GAME_SETTING, &inputBufferSize);
if (inputBuffer != NULL)
{
SetCategory57Data(g_mmi_game_cntx.inline_game_items, MMI_GAME_SETTING_ITEM_COUNT * 2, inputBuffer);
}
RegisterHighlightHandler(mmi_game_setting_highlight_hdlr);
/* show category */
ShowCategory57Screen(
STR_ID_GAME_SETTING,
GetRootTitleIcon(MENU3105_GAMES),
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
item_offset,
item_icons,
g_mmi_game_cntx.inline_game_items,
0,
guiBuffer);
/* set key hdlr */
SetCategory57LeftSoftkeyFunction(mmi_game_setting_done_hdlr);
SetCategory57RightSoftkeyFunctions(GoBackHistory, GoBackHistory);
DisableCategory57ScreenDone();
#endif /* defined(__MMI_GAME__) */
}
/*****************************************************************************
* FUNCTION
* mmi_game_setting_done_hdlr
* DESCRIPTION
* done hdlr for game setting
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
static void mmi_game_setting_done_hdlr(void)
{
#if defined(__MMI_GAME__)
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* game effect */
#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
GFX.is_background_music_on = g_mmi_game_cntx.bgm_selected;
GFX.is_sound_effect_on = g_mmi_game_cntx.sound_effect_selected;
#else /* __MMI_GAME_MULTICHANNEL_SOUND__ */
GFX.is_aud_on = g_mmi_game_cntx.aud_selected;
#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */
GFX.is_vib_on = g_mmi_game_cntx.vib_selected;
mmi_gfx_store_setting();
DisplayPopup((PU8) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, ST_NOTIFYDURATION, SUCCESS_TONE);
DeleteNHistory(1);
#endif /* defined(__MMI_GAME__) */
}
/*****************************************************************************
* FUNCTION
* mmi_game_setting_highlight_hdlr
* DESCRIPTION
* highlight hdlr
* PARAMETERS
* index [IN]
* RETURNS
* void
*****************************************************************************/
static void mmi_game_setting_highlight_hdlr(S32 index)
{
#if defined(__MMI_GAME__)
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
SetCategory57LeftSoftkeyFunction(mmi_game_setting_done_hdlr);
#endif /* defined(__MMI_GAME__) */
}
/*****************************************************************************
* FUNCTION
* mmi_game_exit_setting_screen
* DESCRIPTION
* exit point for game setting screen
* PARAMETERS
* void
* viud(?) [IN]
* RETURNS
* void
*****************************************************************************/
static void mmi_game_exit_setting_screen(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 inputBufferSize;
history h;
S16 nHistory = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
h.scrnID = SCR_ID_GAME_SETTING;
CloseCategory57Screen();
h.entryFuncPtr = mmi_game_entry_setting_screen;
mmi_ucs2cpy((S8*) h.inputBuffer, (S8*) & nHistory);
GetCategory57History(h.guiBuffer);
inputBufferSize = (U16) GetCategory57DataSize();
GetCategory57Data((U8*) h.inputBuffer);
AddNHistory(h, inputBufferSize);
}
#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
/*****************************************************************************
* FUNCTION
* ColorBall_Get_Current_Language_Index
* DESCRIPTION
* get current language index
* PARAMETERS
* void
* RETURNS
* BOOL
*****************************************************************************/
U16 mmi_gfx_get_current_language_index()
{
U8 i;
for (i = MMI_GAME_LANGUAGE0 ; i < MMI_GAME_LANGUAGE_TATAL ; i++)
{
if(strcmp((PS8)mtk_gLanguageArray[gCurrLangIndex].aLangSSC, (PS8)g_mmi_game_language_mapping_table[i].aLangSSC) == 0)
return i;
}
return 0;
}
/*****************************************************************************
* FUNCTION
* ColorBalls_Get_Current_Language_Image_ID
* DESCRIPTION
* get image id of current language
* PARAMETERS
* void
* viod(?)
* RETURNS
* void
*****************************************************************************/
U16 mmi_gfx_get_multilanguage_image_ID(
MMI_GAME_MULTI_LANGUAGE_ENUM language,
U16 image_ID_base,
U16 total_string_count,
U16 string_number)
{
return (image_ID_base + language*total_string_count + string_number);
}
/*****************************************************************************
* FUNCTION
* ColorBalls_Check_Image_Validity
* DESCRIPTION
* check image in current language is valid or not, and get valid language
* PARAMETERS
* void
* viod(?)
* RETURNS
* void
*****************************************************************************/
BOOL mmi_gfx_check_image_get_valid_language(
U16 *game_language_index,
U16 image_ID_base,
U16 total_string_count)
{
U8 *pData = NULL;
BOOL image_validate = TRUE;
U8 first_valid_language_index;
U16 image_handle;
U8 i;
for (i = 0 ; i < total_string_count ; i++)
{
image_handle = (*game_language_index) * total_string_count + image_ID_base + i;
pData = (PU8)GetImage(image_handle);
if (pData == MMI_GAME_DEFAULT_IMAGE_BMP|| pData == MMI_GAME_EMPTYIMAGE_BMP)
{
image_validate = FALSE;
break;
}
}
if(image_validate == FALSE)
{
first_valid_language_index = mmi_gfx_get_fisrt_valid_language_index();
*game_language_index= first_valid_language_index;
}
return TRUE;
}
/*****************************************************************************
* FUNCTION
* ColorBalls_Get_Fisrt_Valid_Language_Index
* DESCRIPTION
* get first valid language index
* PARAMETERS
* void
* viod(?)
* RETURNS
* void
*****************************************************************************/
U8 mmi_gfx_get_fisrt_valid_language_index()
{
U32 i;
for(i = MMI_GAME_LANGUAGE0 ; i < MMI_GAME_LANGUAGE_TATAL ; i++)
{
if(strlen((PS8)g_mmi_game_language_mapping_table[i].aLangSSC) != 0)
{
return i;
}
}
return MMI_GAME_LANGUAGE0;
}
#endif /* __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ */
#endif /* __MMI_GAME__ */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -