www.pudn.com > super_plane.rar > vz_sp_ques.c, change:2013-11-22,size:17720b


// 
#ifdef __VLCZ_SP__ 
 
#include "vz_common_gfx.h" 
#include "vz_common_debug.h" 
#include "vz_sp_ques.h" 
#include "vz_commonResDef.h" 
#include "vzf_config_lib.h" 
 
///////////////////////////////////// 
//define 
///////////////////////////////////// 
#define VZSP_OPTIONS_SUM    		4 
 
///////////////////////////////////// 
//global variables 
///////////////////////////////////// 
int vzSP_width =CRLSCR_WIDTH; 
int vzSP_height =CRLSCR_HEIGHT; 
#ifdef __VZGAME_240X320__ 
/////over 
int VzSP_over_tck_x=26; 
int VzSP_over_tck_y=58; 
int VzSP_over_w=188; 
int VzSP_over_h=182; 
int VzSP_over_word_x=40; 
int VzSP_over_wordnum_x=73;//游戏得分 /炸毁敌机/奖励得分/本次总分/历史最高 
int VzSP_over_score_dy=24; 
int VzSP_over_scorenum_dy = 0; 
int VzSP_over_score_y=112; 
int VzSP_over_re_btn_x=0; 
int VzSP_over_btn_x=180; 
int VzSP_over_btn_y=290; 
int VzSP_over_lx=6; 
int VzSP_over_rx=12; 
int VzSP_over_lry=6;//结束界面左右软件 
int VzSP_button_w=60; 
int VzSP_button_h=30; 
///////pause 
int VzSP_pause_word1_x=80; 
int VzSP_pause_word_y=100; 
int VzSP_pause_word_dy=44; 
int VzSP_pause_word_w = 85; 
int VzSP_pause_word_h = 23; 
//////plane 
int VzSP_plane_i=6; //战机位置标记0-13,随机产生 
#define VzSP_plane_dump 16 
#define VzSP_plane_start 2 
int VzSP_plane_x[]={VzSP_plane_start+VzSP_plane_dump*0, 
	VzSP_plane_start+VzSP_plane_dump*1,  
	VzSP_plane_start+VzSP_plane_dump*2,  
	VzSP_plane_start+VzSP_plane_dump*3,  
	VzSP_plane_start+VzSP_plane_dump*4,  
	VzSP_plane_start+VzSP_plane_dump*5,  
	VzSP_plane_start+VzSP_plane_dump*6,  
	VzSP_plane_start+VzSP_plane_dump*7,  
	VzSP_plane_start+VzSP_plane_dump*8,  
	VzSP_plane_start+VzSP_plane_dump*9,  
	VzSP_plane_start+VzSP_plane_dump*10,  
	VzSP_plane_start+VzSP_plane_dump*11,  
	VzSP_plane_start+VzSP_plane_dump*12,  
	VzSP_plane_start+VzSP_plane_dump*13}; 
int VzSP_plane_y=263; 
int VzSP_plane_shell[13][2]; 
int VzSP_plane_bullet=0; //战机中弹数 
int VzSP_plane_life=3; 
int VzSP_plane_speed=10;//子弹的速度 
int VzSP_plane_dy=15; 
int VzSP_plane_is_hit=0; //战机是否被撞击0没有 
int VzSP_plane_hit_flag=1; 
int VzSP_plane_flash_time=0; 
int VzSP_plane_shell_num=13; 
int VzSP_plane_num=0; 
 
//////enemy 
int VzSP_enemy_num=0;//记录每一波的敌机数 
int VzSP_enemy_pos[3]={0};//为0没有敌机,1-4 
int VzSP_enemy_x[4]={0}; 
int VzSP_enemy_y[4]={-31, -31, -31, -31}; 
int VzSP_enemy_shell[4][18]={0}; 
int VzSP_enemy_shell_num[4]={0};//发射子弹数 
int VzSP_enemy_bullet[4]={0};//敌机中弹数 
int VzSP_enemy_die_num=0;//炸毁敌机总数 
int VzSP_enemy_speed[5]={2, 5, 8, 12, 15};//敌机速度 
int VzSP_enemy_bullet_sd[5]={3, 7, 11, 15, 20};//敌机炮弹速度 
int VzSP_enemy_bullet_st[2]={30, 20};//炮弹发射时间间隔 
int VzSP_enemy_flag=0; 
int VzSP_enshell_flag=1; 
int VzSP_enemy_is_hit[4]={0}; 
int VzSP_enemy_hit_time=0; 
int VzSP_enemy_rand=29;//每个轨道随机产生//2013-7-19 zoe 该值已停用 
int VzSP_enemy_rand_w=(int)CRLSCR_WIDTH/4;//每个轨道的宽度 
//////pic 
int VzSP_plane_w=30; 
int VzSP_plane_h=45; 
int VzSP_shell_w=4; 
int VzSP_shell_h=4; 
int VzSP_bomb_w=62; 
int VzSP_bomb_h=61; 
int VzSP_enemy_w=30; 
int VzSP_enemy_h=31; 
int VzSP_UI_w=221; 
int VzSP_UI_h=18; 
int VzSP_heart_w=12; 
int VzSP_heart_h=11; 
int VzSP_stop_w=24; 
int VzSP_stop_h=24; 
 
///////top 
int VzSP_top_heart_x=4; 
int VzSP_top_heart_y=4;  
int VzSP_top_heart_dx=15; 
int VzSP_top_score_x=166; 
int VzSP_top_score_y=1; 
int VzSP_top_stop_x=216; 
int VzSP_top_stop_y=0; 
int VzSP_top_stop_flag=0;//0为正常,1为按下 
 
//////////////// 
//SIZE已停用,不需设置SIZE 
int BOMB_SIZE=2619; 
int BUTTON_SIZE=254; 
int ENEMY_SIZE=369; 
int OVER_SIZSE=993; 
int PLANE_SIZE=435; 
int SHELL_SIZE=178; 
int UI_SIZE=295; 
int UI_HEART_SIZE=191; 
int UI_STOP_SIZE=539; 
///////////////////////////// 
 
int VzSP_tip_lr=10; //提示框左右 
int VzSP_tip_top=20;//顶部 
int VzSP_tip_bottom=30; 
int VzSP_tip_s_w = 40; 
int VzSP_tip_s_h = 23; 
#endif 
 
#ifdef __VZGAME_176X220__ 
/////over 
int VzSP_over_tck_x=0; 
int VzSP_over_tck_y=0; 
int VzSP_over_w=176; 
int VzSP_over_h=195; 
int VzSP_over_word_x=10; 
int VzSP_over_wordnum_x=62; 
int VzSP_over_score_dy=19; 
int VzSP_over_scorenum_dy = 0; 
int VzSP_over_score_y=35; 
int VzSP_over_re_btn_x=0; 
int VzSP_over_btn_x=118; 
int VzSP_over_btn_y=196; 
int VzSP_over_lx=6; 
int VzSP_over_rx=12; 
int VzSP_over_lry=6;//结束界面左右软件 
int VzSP_button_w=58; 
int VzSP_button_h=24; 
///////pause 
int VzSP_pause_word1_x=50; 
int VzSP_pause_word_y=60; 
int VzSP_pause_word_dy=34; 
int VzSP_pause_word_w = 85; 
int VzSP_pause_word_h = 23; 
//////plane 
int VzSP_plane_i=3; //战机位置标记0-6,随机产生 
//int VzSP_plane_x[7]={8, 31, 54, 77, 100, 123, 146}; 
#define VzSP_plane_dump 12 
#define VzSP_plane_start 2 
int VzSP_plane_x[]={VzSP_plane_start+VzSP_plane_dump*0, 
	VzSP_plane_start+VzSP_plane_dump*1,  
	VzSP_plane_start+VzSP_plane_dump*2,  
	VzSP_plane_start+VzSP_plane_dump*3,  
	VzSP_plane_start+VzSP_plane_dump*4,  
	VzSP_plane_start+VzSP_plane_dump*5,  
	VzSP_plane_start+VzSP_plane_dump*6,  
	VzSP_plane_start+VzSP_plane_dump*7,  
	VzSP_plane_start+VzSP_plane_dump*8,  
	VzSP_plane_start+VzSP_plane_dump*9,  
	VzSP_plane_start+VzSP_plane_dump*10,  
	VzSP_plane_start+VzSP_plane_dump*11,  
	VzSP_plane_start+VzSP_plane_dump*12,  
	VzSP_plane_start+VzSP_plane_dump*13}; 
int VzSP_plane_y=180; 
int VzSP_plane_shell[10][2]; 
int VzSP_plane_bullet=0; //战机中弹数 
int VzSP_plane_life=3; 
int VzSP_plane_speed=10;//子弹的速度 
int VzSP_plane_dy=15; 
int VzSP_plane_is_hit=0; //战机是否被撞击0没有 
int VzSP_plane_hit_flag=1; 
int VzSP_plane_flash_time=0; 
int VzSP_plane_shell_num=10; 
int VzSP_plane_num=0; 
 
//////enemy 
int VzSP_enemy_num=0;//记录每一波的敌机数 
int VzSP_enemy_pos[3]={0};//为0没有敌机,1-4 
int VzSP_enemy_x[4]={0}; 
int VzSP_enemy_y[4]={-25, -25, -25, -25}; 
int VzSP_enemy_shell[4][18]={0}; 
int VzSP_enemy_shell_num[4]={0};//发射子弹数 
int VzSP_enemy_bullet[4]={0};//敌机中弹数 
int VzSP_enemy_die_num=0;//炸毁敌机总数 
int VzSP_enemy_speed[5]={2, 5, 8, 12, 15};//敌机速度 
int VzSP_enemy_bullet_sd[5]={3, 7, 11, 15, 20};//敌机炮弹速度 
int VzSP_enemy_bullet_st[2]={30, 20};//炮弹发射时间间隔 
int VzSP_enemy_flag=0; 
int VzSP_enshell_flag=1; 
int VzSP_enemy_is_hit[4]={0}; 
int VzSP_enemy_hit_time=0; 
int VzSP_enemy_rand=20;//每个轨道随机产生//2013-7-19 zoe 该值已停用 
int VzSP_enemy_rand_w=(int)CRLSCR_WIDTH/4;//每个轨道的宽度 
//////pic 
int VzSP_plane_w=23; 
int VzSP_plane_h=34; 
int VzSP_shell_w=4; 
int VzSP_shell_h=4; 
int VzSP_bomb_w=45; 
int VzSP_bomb_h=44; 
int VzSP_enemy_w=22; 
int VzSP_enemy_h=24; 
int VzSP_UI_w=162; 
int VzSP_UI_h=20; 
int VzSP_heart_w=11; 
int VzSP_heart_h=9; 
int VzSP_stop_w=18; 
int VzSP_stop_h=18; 
 
///////top 
int VzSP_top_heart_x=1; 
int VzSP_top_heart_y=2; 
int VzSP_top_heart_dx=12; 
int VzSP_top_score_x=88; 
int VzSP_top_score_y=1; 
int VzSP_top_stop_x=158; 
int VzSP_top_stop_y=0; 
int VzSP_top_stop_flag=0;//0为正常,1为按下 
 
//////////////// 
//SIZE已停用,不需设置SIZE 
int BOMB_SIZE=1801; 
int BUTTON_SIZE=251; 
int ENEMY_SIZE=334; 
int OVER_SIZSE=867; 
int PLANE_SIZE=370; 
int SHELL_SIZE=178; 
int UI_SIZE=285; 
int UI_HEART_SIZE=184; 
int UI_STOP_SIZE=478; 
/////////////////////////// 
 
int VzSP_tip_lr=10; //提示框左右 
int VzSP_tip_top=20;//顶部 
int VzSP_tip_bottom=30; 
int VzSP_tip_s_w = 40; 
int VzSP_tip_s_h = 23; 
#endif 
 
#ifdef __VZGAME_220X176__ 
/////over 
int VzSP_over_tck_x=0; 
int VzSP_over_tck_y=3; 
int VzSP_over_w=220; 
int VzSP_over_h=140; 
int VzSP_over_word_x=10; 
int VzSP_over_wordnum_x=82; 
int VzSP_over_score_dy=21; 
int VzSP_over_scorenum_dy = 0; 
int VzSP_over_score_y=42; 
int VzSP_over_re_btn_x=0; 
int VzSP_over_btn_x=160; 
int VzSP_over_btn_y=146; 
int VzSP_over_lx=6; 
int VzSP_over_rx=12; 
int VzSP_over_lry=6;//结束界面左右软件 
int VzSP_button_w=60; 
int VzSP_button_h=30; 
///////pause 
int VzSP_pause_word1_x=72; 
int VzSP_pause_word_y=45; 
int VzSP_pause_word_dy=30; 
int VzSP_pause_word_w = 85; 
int VzSP_pause_word_h = 23; 
 
//////plane 
int VzSP_plane_i=6; //战机位置标记0-13,随机产生 
#define VzSP_plane_dump 15 
#define VzSP_plane_start 2 
int VzSP_plane_x[]={VzSP_plane_start+VzSP_plane_dump*0, 
	VzSP_plane_start+VzSP_plane_dump*1,  
	VzSP_plane_start+VzSP_plane_dump*2,  
	VzSP_plane_start+VzSP_plane_dump*3,  
	VzSP_plane_start+VzSP_plane_dump*4,  
	VzSP_plane_start+VzSP_plane_dump*5,  
	VzSP_plane_start+VzSP_plane_dump*6,  
	VzSP_plane_start+VzSP_plane_dump*7,  
	VzSP_plane_start+VzSP_plane_dump*8,  
	VzSP_plane_start+VzSP_plane_dump*9,  
	VzSP_plane_start+VzSP_plane_dump*10,  
	VzSP_plane_start+VzSP_plane_dump*11,  
	VzSP_plane_start+VzSP_plane_dump*12,  
	VzSP_plane_start+VzSP_plane_dump*13}; 
int VzSP_plane_y=137; 
int VzSP_plane_shell[8][2]; 
int VzSP_plane_bullet=0; //战机中弹数 
int VzSP_plane_life=3; 
int VzSP_plane_speed=10;//子弹的速度 
int VzSP_plane_dy=15; 
int VzSP_plane_is_hit=0; //战机是否被撞击0没有 
int VzSP_plane_hit_flag=1;//为1时没中弹 
int VzSP_plane_flash_time=0; 
int VzSP_plane_shell_num=8; 
int VzSP_plane_num=0; 
 
//////enemy 
int VzSP_enemy_num=0;//记录每一波的敌机数 
int VzSP_enemy_pos[3]={0};//为0没有敌机,1-4 
int VzSP_enemy_x[4]={0}; 
int VzSP_enemy_y[4]={-24, -24, -24, -24}; 
int VzSP_enemy_shell[4][18]={0}; 
int VzSP_enemy_shell_num[4]={0};//发射子弹数 
int VzSP_enemy_bullet[4]={0};//敌机中弹数 
int VzSP_enemy_die_num=0;//炸毁敌机总数 
int VzSP_enemy_speed[5]={2, 5, 8, 12, 15};//敌机速度 
int VzSP_enemy_bullet_sd[5]={3, 7, 11, 15, 20};//敌机炮弹速度 
int VzSP_enemy_bullet_st[2]={30, 20};//炮弹发射时间间隔 
int VzSP_enemy_flag=0; 
int VzSP_enshell_flag=1; 
int VzSP_enemy_is_hit[4]={0}; 
int VzSP_enemy_hit_time=0; 
int VzSP_enemy_rand=30;//每个轨道随机产生//2013-7-19 zoe 该值已停用 
int VzSP_enemy_rand_w=(int)CRLSCR_WIDTH/4;//每个轨道的宽度 
//////pic 
int VzSP_plane_w=23; 
int VzSP_plane_h=34; 
int VzSP_shell_w=4; 
int VzSP_shell_h=4; 
int VzSP_bomb_w=45; 
int VzSP_bomb_h=44; 
int VzSP_enemy_w=23; 
int VzSP_enemy_h=24; 
int VzSP_UI_w=206; 
int VzSP_UI_h=20; 
int VzSP_heart_w=11; 
int VzSP_heart_h=9; 
int VzSP_stop_w=18; 
int VzSP_stop_h=18; 
 
///////top 
int VzSP_top_heart_x=1; 
int VzSP_top_heart_y=2; 
int VzSP_top_heart_dx=12; 
int VzSP_top_score_x=132; 
int VzSP_top_score_y=1; 
int VzSP_top_stop_x=202; 
int VzSP_top_stop_y=0; 
int VzSP_top_stop_flag=0;//0为正常,1为按下 
//////////////// 
//SIZE已停用,不需设置SIZE 
int BOMB_SIZE=1801; 
int BUTTON_SIZE=254; 
int ENEMY_SIZE=334; 
int OVER_SIZSE=811; 
int PLANE_SIZE=370; 
int SHELL_SIZE=178; 
int UI_SIZE=290; 
int UI_HEART_SIZE=184; 
int UI_STOP_SIZE=478; 
/////////////////////////////////// 
 
int VzSP_tip_lr=10; //提示框左右 
int VzSP_tip_top=20;//顶部 
int VzSP_tip_bottom=30; 
int VzSP_tip_s_w = 40; 
int VzSP_tip_s_h = 23; 
#endif 
#ifdef __VZGAME_128X160__ 
/////over 
int VzSP_over_tck_x=0; 
int VzSP_over_tck_y=3; 
int VzSP_over_w=220; 
int VzSP_over_h=140; 
int VzSP_over_word_x=3; 
int VzSP_over_wordnum_x=82; 
int VzSP_over_score_dy=28; 
int VzSP_over_scorenum_dy = 14; 
int VzSP_over_score_y=27; 
int VzSP_over_re_btn_x=0; 
int VzSP_over_btn_x=160; 
int VzSP_over_btn_y=146; 
int VzSP_over_lx=6; 
int VzSP_over_rx=12; 
int VzSP_over_lry=6;//结束界面左右软件 
int VzSP_button_w=60; 
int VzSP_button_h=30; 
///////pause 
int VzSP_pause_word1_x=25; 
int VzSP_pause_word_y=45; 
int VzSP_pause_word_dy=30; 
int VzSP_pause_word_w = 85; 
int VzSP_pause_word_h = 23; 
 
//////plane 
int VzSP_plane_i=6; //战机位置标记0-13,随机产生 
#define VzSP_plane_dump 9 
#define VzSP_plane_start -3 
int VzSP_plane_x[]={VzSP_plane_start+VzSP_plane_dump*0, 
	VzSP_plane_start+VzSP_plane_dump*1,  
	VzSP_plane_start+VzSP_plane_dump*2,  
	VzSP_plane_start+VzSP_plane_dump*3,  
	VzSP_plane_start+VzSP_plane_dump*4,  
	VzSP_plane_start+VzSP_plane_dump*5,  
	VzSP_plane_start+VzSP_plane_dump*6,  
	VzSP_plane_start+VzSP_plane_dump*7,  
	VzSP_plane_start+VzSP_plane_dump*8,  
	VzSP_plane_start+VzSP_plane_dump*9,  
	VzSP_plane_start+VzSP_plane_dump*10,  
	VzSP_plane_start+VzSP_plane_dump*11,  
	VzSP_plane_start+VzSP_plane_dump*12,  
	VzSP_plane_start+VzSP_plane_dump*13}; 
int VzSP_plane_y=137; 
int VzSP_plane_shell[8][2]; 
int VzSP_plane_bullet=0; //战机中弹数 
int VzSP_plane_life=3; 
int VzSP_plane_speed=10;//子弹的速度 
int VzSP_plane_dy=15; 
int VzSP_plane_is_hit=0; //战机是否被撞击0没有 
int VzSP_plane_hit_flag=1;//为1时没中弹 
int VzSP_plane_flash_time=0; 
int VzSP_plane_shell_num=8; 
int VzSP_plane_num=0; 
 
//////enemy 
int VzSP_enemy_num=0;//记录每一波的敌机数 
int VzSP_enemy_pos[3]={0};//为0没有敌机,1-4 
int VzSP_enemy_x[4]={0}; 
int VzSP_enemy_y[4]={-24, -24, -24, -24}; 
int VzSP_enemy_shell[4][18]={0}; 
int VzSP_enemy_shell_num[4]={0};//发射子弹数 
int VzSP_enemy_bullet[4]={0};//敌机中弹数 
int VzSP_enemy_die_num=0;//炸毁敌机总数 
int VzSP_enemy_speed[5]={2, 5, 8, 12, 15};//敌机速度 
int VzSP_enemy_bullet_sd[5]={3, 7, 11, 15, 20};//敌机炮弹速度 
int VzSP_enemy_bullet_st[2]={30, 20};//炮弹发射时间间隔 
int VzSP_enemy_flag=0; 
int VzSP_enshell_flag=1; 
int VzSP_enemy_is_hit[4]={0}; 
int VzSP_enemy_hit_time=0; 
int VzSP_enemy_rand=30;//每个轨道随机产生//2013-7-19 zoe 该值已停用 
int VzSP_enemy_rand_w=(int)CRLSCR_WIDTH/4;//每个轨道的宽度 
//////pic 
int VzSP_plane_w=17; 
int VzSP_plane_h=24; 
int VzSP_shell_w=4; 
int VzSP_shell_h=4; 
int VzSP_bomb_w=33; 
int VzSP_bomb_h=32; 
int VzSP_enemy_w=16; 
int VzSP_enemy_h=16; 
int VzSP_UI_w=114; 
int VzSP_UI_h=13; 
int VzSP_heart_w=11; 
int VzSP_heart_h=9; 
int VzSP_stop_w=18; 
int VzSP_stop_h=18; 
 
///////top 
int VzSP_top_heart_x=1; 
int VzSP_top_heart_y=2; 
int VzSP_top_heart_dx=12; 
int VzSP_top_score_x=72; 
int VzSP_top_score_y=2; 
int VzSP_top_stop_x=110; 
int VzSP_top_stop_y=0; 
int VzSP_top_stop_flag=0;//0为正常,1为按下 
//////////////// 
//SIZE已停用,不需设置SIZE 
int BOMB_SIZE=1801; 
int BUTTON_SIZE=254; 
int ENEMY_SIZE=334; 
int OVER_SIZSE=811; 
int PLANE_SIZE=370; 
int SHELL_SIZE=178; 
int UI_SIZE=290; 
int UI_HEART_SIZE=184; 
int UI_STOP_SIZE=478; 
///////////////// 
 
int VzSP_tip_lr=10; //提示框左右 
int VzSP_tip_top=20;//顶部 
int VzSP_tip_bottom=30; 
int VzSP_tip_s_w = 40; 
int VzSP_tip_s_h = 23; 
#endif 
 
//是否启用 
char vzf_sp_fee_open=1; 
 
U16 STR_VZ_String_baseID = STR_VZ_SP ; 
 
extern char vzf_game_type; 
///////////////////////////////////// 
//static variables 
///////////////////////////////////// 
static int vz_sp_Menu_index; 
 
 
///////////////////////////////////// 
//function Statement 
///////////////////////////////////// 
extern void VzSP_Enter(); 
 
 
///////////////////////////////////// 
//function 
///////////////////////////////////// 
void vz_sp_SetGameTips(WCHAR *str , WCHAR*des) 
{ 
	S8 sp[]={0x25,0x00,0x73,0x00,0x00,0x00}; 
	S8 free[]={0x30,0x00,0x00,0x00}; 
	if(vzf_sp_fee_open == 1) 
	{ 
#ifdef __VZGAME_EN__ 
		vz_pfnUnicodeStrcat((S8 *) str, sp); 
		Vzf_SetGameTips(str , des); 
#else 
		vz_pfnUnicodeStrcat((S8 *) str, free); 
#endif 
	} 
} 
int vz_sp_isActivation() 
{ 
	if(vzf_sp_fee_open == 1) 
	{ 
		vzf_game_type = Vzf_game_SP; 
#ifdef __VZGAME_EN__ 
		return Vzf_isActivation(); 
#else 
		return 0; 
#endif 
	} 
	else 
		return 0; 
} 
void vz_sp_GameActivation() 
{ 
	if(vzf_sp_fee_open == 1) 
	{ 
#ifdef __VZGAME_EN__ 
		Vzf_GameActivation(); 
#endif 
	} 
} 
MMI_BOOL vz_sp_SelectworkType() 
{ 
	if(vzf_sp_fee_open == 1) 
	{ 
#ifdef __VZGAME_EN__ 
		if(Vzf_SelectworkType()) 
		{ 
			return TRUE; 
		} 
		return FALSE; 
#else 
		return TRUE; 
#endif 
	} 
	else 
		return TRUE; 
} 
void VzSP_gdi_image_get_dimension(unsigned char* image_ptr, unsigned int *width, unsigned int *height, unsigned int *image_size) 
{ 
if (image_ptr == NULL) 
{ 
return; 
} 
 
 
if (width) 
*width = (( ((unsigned int)image_ptr[7])   <<4) | (((unsigned int)image_ptr[6]&0xF0)>>4)); 
 
if (height) 
*height = (((((unsigned int)image_ptr[6])&0xF)<<8) |  ((unsigned int)image_ptr[5])); 
 
if (image_size) 
*image_size = (image_ptr[2]) | (image_ptr[3] << 8) | (image_ptr[4] << 16); 
} 
void VzSP_gdi_DP_clip_Ext(int dx, int dy, int width, int height, int sx, int sy, const U8* img,int type,int size) 
{ 
	int image_size; 
	gdi_layer_push_clip(); 
	gdi_layer_set_clip(dx, dy, dx + width - 1, dy + height - 1); 
	 
	image_size = (img[2]) | (img[3] << 8) | (img[4] << 16); 
 
	//gdi_image_draw(dx - sx, dy - sy, (U8*)img); 
#ifdef __VLCZ_SUP_CCH__ 
	gdi_image_codec_draw( 
            GDI_IMAGE_SRC_FROM_MEMORY, 
            img+8, 
            type, 
            image_size, 
            dx - sx, 
            dy - sy, 
            0, 
            0, 
            0, 
            0); 
	//gdi_image_draw_resized_ext(dx - sx,dy - sy,0,0,img,type,size); 
#else 
	gdi_image_draw_mem(dx - sx, dy - sy, ((U8 *)img+8), type, image_size); 
#endif 
 
	gdi_layer_pop_clip(); 
} 
 
void VzSP_gdi_image_draw_id(int dx, int dy, int width, int height, int sx, int sy, U16 img_id) 
{ 
	gdi_layer_push_clip(); 
	gdi_layer_set_clip(dx, dy, dx + width - 1, dy + height - 1); 
 	gdi_image_draw(dx-sx, dy-sy, (U8*)GetImage(img_id)); 
	gdi_layer_pop_clip(); 
} 
 
void vz_sp_RegisterDynamicHilight (S32 hid) 
{ 
    if(vz_sp_Menu_index == hid) 
    { 
        SetLeftSoftkeyFunction(VzSP_Enter, KEY_EVENT_UP); 
        SetKeyHandler(VzSP_Enter, KEY_RIGHT_ARROW, KEY_EVENT_DOWN); 
    } 
} 
BOOL vz_sp_MenuStrAndImg(U8* oldMenuString[] , U16* oldMenuId ,  U16* oldMenuIcon ,  U8*  description[] , int begin , int valid) 
{ 
    vz_sp_Menu_index = valid; 
    if (oldMenuString)//the text is resource, or else ID 
    { 
        oldMenuString[begin + valid] = (U8*) GetString(STR_VZ_SP); 
    } 
    else 
    { 
        oldMenuId[begin + valid] = STR_VZ_SP ; 
    } 
    if (oldMenuIcon)  
        oldMenuIcon[begin + valid] = 0;//(U16)(IMG_VZ_SP ); 
     
    if (description)  
        description[begin + valid] = (U8*)GetString(STR_VZ_SP ); 
     
    return 1; 
} 
#endif