亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eros.c

?? 基于QUALCOMM BREW平臺實現俄羅斯方塊游戲功能
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*===========================================================================
 
FILE: eros.c
===========================================================================*/


/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "target.h"
#include "AEE.h"
#include "AEEModGen.h"          // Module interface definitions
#include "AEEAppGen.h"          // Applet interface definitions
#include "AEEShell.h"           // Shell interface definitions
#include "AEEFile.h"   // File interface definitions
#include "AEEDB.h"    // Database interface definitions
#include "AEENet.h"    // Socket interface definitions
#include "AEESound.h"   // Sound Interface definitions
#include "AEETapi.h"   // TAPI Interface definitions

#include "AEEStdLib.h"

#ifdef AEE_SIMULATOR
#include "Controls.h"
#else
#include "OEMClassIDs.h"
#endif
#include "AEETabCtrl.h"
#include "hs_comfunc.h"
#include "hs_comdefine.h"
#include "AEEWindow.h"
#include "HS_NotifyWin.h"
#include "HS_CommonWins.h"

#include "AEEText.h"
#include "AEEImage.h"
 #include "CoreApp.h"
//added by wuhaoyong
#include "eros.bid"
#include "eros.brh"
#include "commonres.brh"
#include "AEEDisp.h"
#ifndef AEE_SIMULATOR
#include "msg.h"
#endif
#include "AEEAnnunciator.h"


#define MAP_WIDTH  11
#define MAP_HEIGHT 20

#ifndef COLOR_DISPLAY
#define COLOR_DISPLAY
#endif

#ifdef COLOR_DISPLAY
#define RED_COLOR MAKE_RGB(0xC0, 0x00, 0x00)
#define BLUE_COLOR MAKE_RGB(0, 0, 255)
#define GREEN_COLOR MAKE_RGB(0x00, 0x60, 0x00)
#define LIGHT_RED_COLOR MAKE_RGB(255, 0, 0)
#define LIGHT_BLUE_COLOR MAKE_RGB(128, 255, 255)
#define DARK_GREEN_COLOR MAKE_RGB(0, 128, 64)
#define ORANGE_COLOR MAKE_RGB(255, 128, 0)
#define PURPLE_COLOR MAKE_RGB(179, 21, 206)
#define YELLOW_GREEN_COLOR MAKE_RGB(158, 152, 69)
#define GREY_COLOR MAKE_RGB(80, 80, 80)
#endif
#define noblack FALSE
#define black TRUE


//add by wuhaoyong
#define STATE_NULL  0
#define STATE_MAINMENU  1
#define STATE_RUNGAME 2
#define STATE_GAMEOVER 3
#define STATE_QUIT  4
#define STATE_OPTION 5
#define STATE_RECORD 6
#define STATE_HELP 7
#define STATE_GAMEPASS 8

#define LEVEL_EASY  0//簡單
#define LEVEL_MODERATE  1//適中
#define LEVEL_DIFFICULT 2//難
#define LEVEL_HELLUVA 3//很難

#define EROSMAINMENU_ITEMBASE                1000
#define EROSMAINMENU_ITEM1              (EROSMAINMENU_ITEMBASE +1)//開始有喜
#define EROSMAINMENU_ITEM2              (EROSMAINMENU_ITEMBASE +2)//游戲設置
#define EROSMAINMENU_ITEM3              (EROSMAINMENU_ITEMBASE +3)//最高分
#define EROSMAINMENU_ITEM4              (EROSMAINMENU_ITEMBASE +4)//幫助
#define EROSMAINMENU_ITEM5              (EROSMAINMENU_ITEMBASE +5)//退出游戲
#define EROSMAINMENU_ITEM6              (EROSMAINMENU_ITEMBASE +6)
#define EROSMAINMENU_ITEM7              (EROSMAINMENU_ITEMBASE +7)
#define EROSMAINMENU_ITEM8              (EROSMAINMENU_ITEMBASE +8)
#define EROSMAINMENU_ITEM9              (EROSMAINMENU_ITEMBASE +9)
#define EROSMAINMENU_ITEM10              (EROSMAINMENU_ITEMBASE +10)

#define IBUTTON_CONFIRM         3100
#define IBUTTON_RETURN            3101
#define IBUTTON_CLEAR            3102

#define NOTIFY_YES                       3105
#define NOTIFY_NO                         3106
#define NOTIFY_CONFIRM                      3517

#define ITEMTEXT_LEN                   16
#define MAX_EROS_NUM  5
#define MAX_EROS_OPTION_NUM  4
#define EROS_LEVEL_FILE "eros_level.dat"
#define EROS_SCORE_FILE "eros_score.dat"
#define EROS_MAP_FILE "eros_map.dat"
#define EROS_PARA_FILE "eros_para.dat"

//#define FEATURE_EROS_CG005
#ifndef AEE_SIMULATOR
char *gsErosResFile = AEE_RES_LANGDIR EROS_RES_FILE;
#else
char *gsErosResFile = EROS_RES_FILE;
#endif

/*-------------------------------------------------------------------
Applet structure. All variables in here are reference via "pMe->"
-------------------------------------------------------------------*/
// create an applet structure that's passed around. All variables in
// here will be able to be referenced as static.
typedef struct _eros
{
    AEEApplet      a ;        // First element of this structure must be AEEApplet
    AEEDeviceInfo  DeviceInfo; // always have access to the hardware device information

    // add your own variables here...
    AEERect   m_Rect;
    unsigned char block_width;
    unsigned char block_height;
    RGBVAL frame_color;
    int difficult_level;
    int a0;
    int dels;
    int next_block;
    int block[4][4];
    int map[MAP_WIDTH][MAP_HEIGHT];
    int map_line;
    int map_col;
    int x_size;
    int y_size;
    int block_x;
    int block_y;
    int current_block;
    int gameover;
    uint64 score;
    boolean pause;
    RGBVAL color_table[10];
    int32 r_color;
    int32 g_color;
    int32 b_color;
    //add by wuhaoyong
    uint8 m_nState;
    int m_continue;//是否顯示繼續游戲的菜單,1顯示,0不顯示
    uint8 m_nLevel;
    uint16 m_nTimer;
    uint16             m_MenuSel;//added by wuhaoyong
    IMenuCtl* m_pIMenu; //for all menu,added by wuhaoyong
    IWindow*          m_pNotifyWin;
    IButtonCtl*       m_pReturn;//返回軟鍵
    IButtonCtl*       m_pConfirm;//確定軟鍵
    IButtonCtl*       m_pClear;//確定軟鍵
    AEETabCtl*      m_pTabCtl;
    IBitmap  *m_pSuspendBitmap;//wuhaoyongadd
    uint16  m_nScrWidth;
    uint16  m_nScrHeight;
    IAnnunciator*  m_pIAnnu;  //icon area


} eros;

typedef struct
{
    uint16  wItemID;                            //--菜單項ID
    uint16  wItemIconID;                                          //--菜單項圖標ID
    AECHAR wItemText[ITEMTEXT_LEN+1];          //--菜單項文本
}EROSMenuItem;


/*  全局變量定義 */
EROSMenuItem ErosMainMenuTBL[] =
    {
        {EROSMAINMENU_ITEM1, IDI_NUMBER_01, NULL},
        {EROSMAINMENU_ITEM2, IDI_NUMBER_02, NULL},
        {EROSMAINMENU_ITEM3, IDI_NUMBER_03, NULL},
        {EROSMAINMENU_ITEM4, IDI_NUMBER_04, NULL},
        {EROSMAINMENU_ITEM5, IDI_NUMBER_05, NULL},
        {EROSMAINMENU_ITEM10, IDI_NUMBER_06, NULL},
    };

EROSMenuItem ErosOptionMenuTBL[] =
    {
        {EROSMAINMENU_ITEM6, IDI_RADIO_OFF, NULL},
        {EROSMAINMENU_ITEM7, IDI_RADIO_OFF, NULL},
        {EROSMAINMENU_ITEM8, IDI_RADIO_OFF, NULL},
        {EROSMAINMENU_ITEM9, IDI_RADIO_OFF, NULL},
    };
/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/
//added by wuhaoyong
#ifdef AEE_SIMULATOR
extern void AEE_SetShell(IShell *pIShell);
#endif

static  boolean eros_HandleEvent(eros* pMe, AEEEvent eCode,
                                 uint16 wParam, uint32 dwParam);
boolean eros_InitAppData(eros* pMe);
static void    Eros_ReleaseObj(void ** ppObj);
void    eros_FreeAppData(eros* pMe);
uint64 up_Itoa(AECHAR * buffer, uint64 eger);
void ClearBlock(eros * pMe);
void write_video(eros * pMe,int x,int y,RGBVAL color,unsigned char full);
void GenerateBlock(eros * pMe,int kind);   /*generate a block*/
void initialmemory(eros * pMe);
void restorememory(eros * pMe);
void GenerateNew(eros * pMe) ;      /*generate a new block*/
void PutBlock(eros * pMe);
void RotateBlock(eros * pMe);
int CanPut(eros * pMe);
void DrawMap(eros * pMe) ; /*draw map*/
void DeleteRow(eros * pMe);
boolean Gameover(eros * pMe,uint32 r_color,uint32 g_color, uint32 b_color) ; /*draw map*/
boolean GamePass(eros * pMe,uint32 r_color,uint32 g_color, uint32 b_color) ;
static void update_map(eros * pMe);
static void Eros_IControlInit(eros* pMe);
static boolean Eros_Start(eros * pMe);
boolean Eros_SetForeImg(IShell* pIShell, IButtonCtl *pButton, uint16 wID);
static boolean Eros_DisplayMainMenu(eros * pMe);
void Eros_DrawMainMenu_CB(void* pi, AEEODCBData* is);
static void Eros_BuildMenuItemTBL(eros* pMe);
static void Eros_MainMenuDisplay(eros* pMe);
static void Eros_DrawTitleText(eros* pMe, uint16 resID);
static void Eros_DrawLevel(eros* pMe);
void Eros_DrawMenuItem(void *pUser,  AEEODCBData* is , boolean bIconFlg);
static boolean Eros_IControlHandEvt(eros* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam);
static boolean Eros_HandleCommand(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean Eros_GameRestart(eros * pMe);
static boolean Eros_GameStart(eros * pMe);
static boolean Eros_MainMenuHandleCommand(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean Eros_Stop(eros * pMe);
static boolean Eros_HandleKey(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean Eros_MainMenuHandleKey(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean Eros_GameHandleKey(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean Eros_DisplayOptionMenu(eros * pMe);
void Eros_DrawOptionMenu_CB(void* pi, AEEODCBData* is);
void Eros_DrawOptionMenuItem(void *pUser,  AEEODCBData* is , boolean bIconFlg);
static void Eros_BuildOptionMenuItemTBL(eros* pMe);
static void Eros_OptionMenuDisplay(eros* pMe);
static boolean Eros_OptionMenuHandleCommand(eros * pMe,uint16 wParam, uint32 dwParam);
void Eros_Set_MenuIcon(IMenuCtl  *pCtrl, uint16  listId);
void Eros_SetMenuIcon(IMenuCtl   *pm,uint16      listId,boolean     bSel);
void Eros_ReadLevelFile(eros * pMe);
void Eros_WriteLevelFile(eros * pMe);
void Eros_TestLevelFile(eros * pMe);
void Eros_TestScoreFile(eros * pMe);
static boolean Eros_WriteScoreFile(eros * pMe);
void Eros_ClearScoreFile(eros * pMe);
static boolean Eros_ScoreHandleCommand(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean  Eros_RecordHandleCommand(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean  Eros_HelpHandleCommand(eros * pMe,uint16 wParam, uint32 dwParam);
static boolean Eros_CreatNotifyWin(eros* pMe, HSNotifyWinType type, uint16 nResID);
static boolean eros_SaveScene(eros* pMe);
static boolean eros_ResumeScene(eros* pMe);
static boolean Eros_DisplayHelpMenu(eros * pMe,uint16 wParam, uint32 dwParam);
static void Eros_SetBackLightAlwaysOn(boolean onoff);
extern void HandleBacklights (  boolean onoff, int time);//zhangwei 04/12/29
extern void CoreTask_Set_Backlight(boolean value);
/*===============================================================================
FUNCTION DEFINITIONS
=============================================================================== */
/*=========================================
static application,向serv版本移植才需要這些內容
=====================================*/
#if defined(BREW_STATIC_APP)
int   Eros_CreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj);
int  Eros_Load(IShell *ps, void * pHelpers, IModule ** pMod);

// Constant Data...
//static const AEEAppInfo    gaiQCam = {AEECLSID_QCAMERA,QCAMERA_RES_FILE, IDS_TITLE, 0,0,0,0,AFLAG_TOOL};
static const AEEAppInfo    gaiEros =
    {
        AEECLSID_EROS,EROS_RES_FILE, IDS_GAME_TITLE, 0,0,0,0,AFLAG_TOOL
    };


PFNMODENTRY Eros_GetModInfo(IShell * ps, AEECLSID ** ppClasses, AEEAppInfo ** pApps, uint16 * pnApps,uint16 * pwMinPriv)
{
    *pApps = (AEEAppInfo *)&gaiEros;
    *pnApps = 1;
    return((PFNMODENTRY)Eros_Load);
}

int Eros_Load(IShell *ps, void * pHelpers, IModule ** pMod)
{
    return(AEEStaticMod_New((int16)(sizeof(AEEMod)),ps,pHelpers,pMod,Eros_CreateInstance,NULL));
}

#endif  //BREW_STATIC_APP

/*===========================================================================
FUNCTION: AEEClsCreateInstance
 
DESCRIPTION
 This function is invoked while the app is being loaded. All Modules must provide this 
 function. Ensure to retain the same name and parameters for this function.
 In here, the module must verify the ClassID and then invoke the AEEApplet_New() function
 that has been provided in AEEAppGen.c. 
 
   After invoking AEEApplet_New(), this function can do app specific initialization. In this
   example, a generic structure is provided so that app developers need not change app specific
   initialization section every time except for a call to IDisplay_InitAppData(). 
   This is done as follows: InitAppData() is called to initialize AppletData 
   instance. It is app developers responsibility to fill-in app data initialization 
   code of InitAppData(). App developer is also responsible to release memory 
   allocated for data contained in AppletData -- this can be done in 
   IDisplay_FreeAppData().
 
PROTOTYPE:
   int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
 
PARAMETERS:
 clsID: [in]: Specifies the ClassID of the applet which is being loaded
 
 pIShell: [in]: Contains pointer to the IShell object. 
 
 pIModule: pin]: Contains pointer to the IModule object to the current module to which
 this app belongs
 
 ppObj: [out]: On return, *ppObj must point to a valid IApplet structure. Allocation
 of memory for this structure and initializing the base data members is done by AEEApplet_New().
 
DEPENDENCIES
  none
 
RETURN VALUE
  AEE_SUCCESS: If the app needs to be loaded and if AEEApplet_New() invocation was
     successful
  EFAILED: If the app does not need to be loaded or if errors occurred in 
     AEEApplet_New(). If this function returns FALSE, the app will not be loaded.
 
SIDE EFFECTS
  none
===========================================================================*/
#if defined(BREW_STATIC_APP) //向serv版本移植的標準寫法
int Eros_CreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
#else
int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
#endif
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩免费观看一区三区| 国产成人精品免费网站| 日韩中文字幕一区二区三区| 秋霞电影一区二区| 成人午夜电影网站| 欧美一区二区久久| 最新国产の精品合集bt伙计| 精品一区二区三区日韩| 欧美日韩三级一区| 亚洲精品五月天| 国产米奇在线777精品观看| 欧美日韩不卡一区二区| 中文字幕亚洲区| 国产精品538一区二区在线| 欧美日韩不卡在线| 亚洲一区二区三区小说| 94色蜜桃网一区二区三区| 精品av久久707| 蜜臀精品一区二区三区在线观看 | 国产欧美一区视频| 日本网站在线观看一区二区三区| 国产成人99久久亚洲综合精品| 91精品国产综合久久福利| 亚洲乱码国产乱码精品精可以看 | 免费人成精品欧美精品| 91黄色激情网站| 亚洲欧洲成人精品av97| 国产成人精品亚洲午夜麻豆| wwwwww.欧美系列| 九色porny丨国产精品| 欧美一级片在线看| 麻豆国产欧美日韩综合精品二区| 6080日韩午夜伦伦午夜伦| 亚洲成人免费在线| 亚洲欧洲av一区二区三区久久| 日本高清视频一区二区| 91麻豆精品91久久久久同性| 成人av免费网站| 国产精品99久久久久久宅男| 日韩经典一区二区| 亚洲一区在线视频| 久久久久一区二区三区四区| 欧美欧美欧美欧美首页| 色一情一伦一子一伦一区| 精品久久国产字幕高潮| 欧美草草影院在线视频| 精品一区二区三区蜜桃| 欧美mv和日韩mv国产网站| 国产又粗又猛又爽又黄91精品| 精品99999| 99国产精品久久久久| 亚洲一区二区在线免费看| 精品视频在线免费| 精品亚洲成a人| 日本一区二区在线不卡| 91免费版pro下载短视频| 亚洲一二三级电影| 日韩免费电影网站| 成人精品国产免费网站| 一区av在线播放| 欧美一级爆毛片| 99久久99久久精品免费观看 | 久久99精品国产.久久久久| 精品国内二区三区| 不卡一区在线观看| 五月天激情小说综合| 久久久久亚洲蜜桃| 色一情一乱一乱一91av| 奇米一区二区三区av| 国产精品理论片| 欧美一区二区播放| 成人av在线一区二区三区| 亚洲午夜av在线| 久久综合99re88久久爱| 91麻豆福利精品推荐| 日韩高清一级片| 最新国产成人在线观看| 日韩一卡二卡三卡| 99re热视频精品| 久久国产尿小便嘘嘘尿| 一区二区三区四区亚洲| 日韩精品一区在线| 欧美在线高清视频| 国产精品2024| 日韩福利视频导航| 国产精品乱人伦| 一区二区三区精品在线观看| 另类小说综合欧美亚洲| 夜夜嗨av一区二区三区| 色婷婷综合久久久中文字幕| 久久久久久99久久久精品网站| 亚洲一区欧美一区| 色婷婷av一区二区三区之一色屋| 日韩精品一区二区三区视频| 肉丝袜脚交视频一区二区| 欧美视频一区二区三区四区 | 国产亚洲1区2区3区| 一本大道av伊人久久综合| 蜜臀91精品一区二区三区 | 亚洲午夜精品网| 国产精品嫩草99a| 久久久久97国产精华液好用吗| 欧美日本视频在线| 色综合久久久久久久久| 成人黄色小视频在线观看| 国产一区二区美女| 国精品**一区二区三区在线蜜桃| 亚洲一区二区黄色| 伊人性伊人情综合网| 《视频一区视频二区| 亚洲国产高清不卡| 国产亚洲一二三区| 久久亚洲二区三区| 精品欧美一区二区在线观看| 日韩欧美亚洲另类制服综合在线| 在线成人高清不卡| 欧美日韩亚洲综合在线| 欧日韩精品视频| 欧美三级韩国三级日本三斤| 欧美最猛性xxxxx直播| 欧美亚洲一区二区在线| 欧美三级中文字幕| 欧美日韩第一区日日骚| 91精品啪在线观看国产60岁| 91麻豆精品国产| 日韩精品一区二区三区在线| 亚洲欧美一区二区三区久本道91 | 国产精品一区二区久久精品爱涩| 激情伊人五月天久久综合| 国产综合一区二区| 国产mv日韩mv欧美| 色综合久久中文综合久久牛| 色av成人天堂桃色av| 91久久精品一区二区二区| 欧美视频在线一区二区三区| 欧美色窝79yyyycom| 宅男在线国产精品| 国产精品一级片在线观看| 丝袜亚洲另类丝袜在线| 国产一区视频导航| 91小视频免费观看| kk眼镜猥琐国模调教系列一区二区| 天天综合网 天天综合色| 亚洲影院理伦片| 亚洲国产成人tv| 蜜桃精品视频在线观看| 亚洲国产精品一区二区www| 亚洲国产精品视频| 精品一区二区影视| 911精品产国品一二三产区| 国产精品一区二区视频| 成人精品在线视频观看| 色先锋资源久久综合| 欧美日韩激情一区二区三区| 日韩一级二级三级精品视频| 日韩中文字幕不卡| 韩国精品主播一区二区在线观看 | 欧美三级日本三级少妇99| 欧美伦理影视网| 国产欧美一区二区三区在线看蜜臀| 国产精品无码永久免费888| 亚洲一区二区在线观看视频| 男女激情视频一区| 99久久婷婷国产综合精品| 欧美老年两性高潮| 国产精品麻豆99久久久久久| 舔着乳尖日韩一区| 99麻豆久久久国产精品免费| 91精品国产色综合久久ai换脸| 国产精品二三区| 精品亚洲成a人| 欧美体内she精视频| 中文字幕av一区二区三区高| 秋霞av亚洲一区二区三| 91蜜桃在线观看| 国产农村妇女毛片精品久久麻豆 | 欧美精品色综合| 亚洲免费成人av| caoporn国产精品| 久久夜色精品一区| 美国三级日本三级久久99| 欧美偷拍一区二区| 日韩理论电影院| 盗摄精品av一区二区三区| 精品电影一区二区| 日韩电影网1区2区| 在线视频中文字幕一区二区| 中文字幕欧美激情| 国内一区二区在线| 欧美v亚洲v综合ⅴ国产v| 性做久久久久久免费观看欧美| av高清不卡在线| 国产精品麻豆久久久| 高清久久久久久| 国产女人18毛片水真多成人如厕 | 色综合久久中文字幕综合网 | 婷婷中文字幕一区三区| 国产精品久久久久久亚洲伦| 欧美日本韩国一区| 国产精品亚洲第一|