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

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

?? controller.h

?? 《SymbianOSC手機應用開發》源碼
?? H
字號:
// controller.h
//
// Copyright (c) 2003 Symbian Ltd.  All rights reserved.
//

#ifndef __CONTROLLER_H
#define __CONTROLLER_H

#include <coecntrl.h>
#include <coemain.h>

#include <eikappui.h>
#include <eikapp.h>
#include <eikdoc.h>
#include <eikenv.h>
#include <eikon.hrh>

#include <battleships.rsg>

#include <rgcp.h>

#include "battleships.hrh"
#include "battleships-uids.h"
#include "engine.h"
#include "view.h"

class CFleetView;

const TUid KUidExample = { 0x101FAD5D };

// RGCP opcodes

const TInt KGameOpcodeStart=1;
const TInt KGameOpcodeRestart=2;
const TInt KGameOpcodeNop=3;
const TInt KGameOpcodeAbandon=4;
const TInt KGameOpcodeHit=10;

// command handler
class MGameViewCmdHandler
	{
public:
	virtual void ViewCmdHitFleet(TInt aX, TInt aY)=0;
	};

// controller
class CGameController : public CBase, public MGameViewCmdHandler, public MRgcpHandler
	{
public:

	enum TState {
		EBlank, EListening, EInitiating, EStarting, EAccepting,
		EMyTurn, EOppTurn, EFinished, ERestarting, EGameOn
		};
	enum TFirstMovePref {
		EDontCare, EWantFirst, EWantSecond
		};

	// construct/destruct
	static CGameController* NewL();
	static CGameController* NewL(const CStreamStore& aStore, TStreamId aStreamId);
	void RestoreL(const CStreamStore& aStore, TStreamId aStreamId);
	void SetAppView(CFleetView* aAppView);
	~CGameController();
	// persistence
	TStreamId StoreL(CStreamStore& aStore) const;
	// state
	inline TState State() const;
	inline TBool IsBlank() const;
	inline TBool IsInitiating() const;
	inline TBool IsListening() const;
	inline TBool IsStarting() const;
	inline TBool IsAccepting() const;
	inline TBool IsMyTurn() const;
	inline TBool IsOppTurn() const;
	inline TBool IsFinished() const;
	inline TBool IsRestarting() const;
	void SetState(TState aState);
	TInt GetStateID();
	// comms
	inline const CRgcpSession* Rgcp() const;
	inline const RGsdpSession& Gsdp() const;
	inline TUid GetGdpProtocol() const;

	// game control
	void Reset();
	void SetGdpProtocolL(TUid aProtocol);
	void SetFirstMovePref(TFirstMovePref aFirstMovePref);
	void InitiateL(const TDesC& aOtherAddress);
	void Listen();
	void Abandon();
	void Resend();
	// query
	TBool HaveFirstMovePref() const;
	TFirstMovePref FirstMovePref() const;


	// zooming
	void ZoomInL();
	void ZoomOutL();
	// engine
	inline CGameEngine& Engine() const;

private:
	// construct/restore
	void ConstructL();
	// stream persistence
	void ExternalizeL(RWriteStream& aStream) const;
	void InternalizeL(RReadStream& aStream);
	// MRgcpHandler stuff
	void RgcpHandleResponse(TInt aOpcode, const TDesC8& aData);
	void RgcpHandleRequest(TInt aOpcode, const TDesC8& aData);
	void RgcpHandleTerminated(TBool aClientInitiated);
	void RgcpHandleBound();
	void RgcpStartRequesting();
	// from MGameViewCmdHandler
	void ViewCmdHitFleet(TInt aX, TInt aY);
		// sending requests
	void SendRestartRequest();
	void SendStartRequest();
	void SendAbandonRequest();
	void SendNopRequest();
	void SendHitRequest(TInt aX, TInt aY);
	// sending responses
	void SendStartResponse(TBool iMeFirst);
	void SendHitResponse(TInt aX, TInt aY, TShip::TShipType aShipType);
	// handling requests
	void HandleRestartRequest();
	void HandleStartRequest(const TDesC8& aData);
	void HandleAbandonRequest();
	void HandleHitRequest(const TDesC8& aData);
	// handling responses
	void HandleStartResponse(const TDesC8& aData);
	void HandleHitResponse(const TDesC8& aData);

	CFleetView& ActiveView() const;


private:
	CFleetView* iAppView;
	CGameEngine* iEngine;
	CRgcpSession* iRgcp;

private:
	// cached pointers and values
	CEikonEnv* iEnv;
	TUid iGdpProtocol;
	// private persistent state
	TState iState;
	TBool iHaveFirstMovePref;
	TFirstMovePref iFirstMovePref;

	// zoom for internalizing
	TInt iZoomFactor;
	};

// state inlines
inline CGameController::TState CGameController::State() const { return iState; }
inline TBool CGameController::IsBlank() const { return  iState==EBlank; }
inline TBool CGameController::IsInitiating() const { return  iState==EInitiating; }
inline TBool CGameController::IsListening() const { return  iState==EListening; }
inline TBool CGameController::IsStarting() const { return  iState==EStarting; }
inline TBool CGameController::IsAccepting() const { return  iState==EAccepting; }
inline TBool CGameController::IsMyTurn() const { return  iState==EMyTurn; }
inline TBool CGameController::IsOppTurn() const { return  iState==EOppTurn; }
inline TBool CGameController::IsFinished() const { return  iState==EFinished; }
inline TBool CGameController::IsRestarting() const { return  iState==ERestarting; }

// comms
inline const CRgcpSession* CGameController::Rgcp() const { return iRgcp; }
inline const RGsdpSession& CGameController::Gsdp() const { return iRgcp->Gsdp(); }
inline TUid CGameController::GetGdpProtocol() const { return iGdpProtocol; }

inline CGameEngine& CGameController::Engine() const	{ return *iEngine; }

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看免费视频 | 欧美tickle裸体挠脚心vk| 色诱视频网站一区| av成人动漫在线观看| 波波电影院一区二区三区| 国产成人av电影免费在线观看| 国产一区在线精品| 国产精品一品视频| av电影在线观看一区| 91首页免费视频| 欧美在线高清视频| 欧美日韩高清一区二区| 欧美另类变人与禽xxxxx| 欧美二区三区91| 欧美成人vr18sexvr| 国产天堂亚洲国产碰碰| 亚洲欧洲av另类| 亚洲成人午夜电影| 另类中文字幕网| 波多野结衣一区二区三区 | 午夜天堂影视香蕉久久| 蜜臀av一区二区在线免费观看| 国产一区福利在线| 成人高清视频在线观看| 欧美在线免费视屏| 91精品国产综合久久久久久漫画 | 亚洲成a人片在线不卡一二三区 | 精品剧情在线观看| 国产精品久久看| 日韩av成人高清| 成人av小说网| 欧美mv日韩mv国产网站| 中文字幕在线观看一区二区| 亚洲成人tv网| 不卡影院免费观看| 日韩一区二区在线观看视频播放| 中文欧美字幕免费| 日韩成人伦理电影在线观看| 成人午夜激情视频| 欧美一区二区三区四区五区| 中文字幕在线不卡视频| 美女视频黄 久久| 色哟哟精品一区| 久久久久久久久久久久久久久99| 亚洲国产人成综合网站| 成人免费视频一区二区| 国产精品免费看片| 美日韩一区二区| 欧美在线看片a免费观看| 中文在线一区二区| 韩国v欧美v日本v亚洲v| 欧美调教femdomvk| 国产精品视频麻豆| 国内成人精品2018免费看| 欧美日韩三级一区| 亚洲另类春色国产| 99综合电影在线视频| 国产亚洲精品超碰| 国产一区二区三区免费播放 | 精品国产91九色蝌蚪| 亚洲一区二区三区在线播放| 99精品黄色片免费大全| 国产亚洲欧美一区在线观看| 美女视频免费一区| 日韩一区二区三区av| 视频一区二区三区在线| 欧美人狂配大交3d怪物一区| 亚洲图片你懂的| 99久久婷婷国产综合精品电影| 久久麻豆一区二区| 国产一区二区精品久久99| 337p日本欧洲亚洲大胆色噜噜| 奇米色777欧美一区二区| 欧美色涩在线第一页| 亚洲123区在线观看| 欧美亚洲日本一区| 午夜精品久久久久久久99樱桃| 欧美日韩午夜在线| 午夜精品成人在线| 中文字幕免费不卡在线| av在线播放不卡| 亚洲免费伊人电影| 欧美日韩视频专区在线播放| 日韩精品国产欧美| 日韩欧美电影在线| 国产成人在线观看免费网站| 欧美国产日韩一二三区| 成人av在线播放网址| 亚洲综合999| 91精品欧美一区二区三区综合在| 激情深爱一区二区| 久久久另类综合| 91网站在线播放| 午夜精品成人在线视频| 欧美精品一区在线观看| www.日韩大片| 日韩专区中文字幕一区二区| 精品乱人伦小说| 99天天综合性| 日韩高清在线不卡| 久久综合狠狠综合久久综合88| 成人av小说网| 美女视频黄久久| 国产精品电影一区二区三区| 欧美日韩国产综合视频在线观看| 日本午夜一本久久久综合| 久久精品人人做人人爽97| 91电影在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕一区二区三区av| 欧美老年两性高潮| 床上的激情91.| 免费看精品久久片| 亚洲天堂福利av| 精品福利在线导航| 欧美视频你懂的| 懂色一区二区三区免费观看| 午夜久久久久久久久| 久久品道一品道久久精品| 91精品国产91久久综合桃花| 国产精品一区二区三区99| 午夜久久久影院| 亚洲欧美区自拍先锋| 久久久久国产精品麻豆ai换脸| 欧美日韩在线不卡| 成人白浆超碰人人人人| 久久精品av麻豆的观看方式| 亚洲一区二区三区免费视频| 国产午夜精品理论片a级大结局 | 97久久精品人人爽人人爽蜜臀| 亚洲电影你懂得| 亚洲码国产岛国毛片在线| 亚洲情趣在线观看| 国产欧美日韩久久| 欧美成人伊人久久综合网| 精品视频在线看| 欧美在线色视频| 91福利小视频| 91麻豆精品视频| av在线播放成人| 成年人国产精品| av亚洲精华国产精华精华| 国产一区二区电影| 狠狠色综合日日| 韩国av一区二区| 韩国成人在线视频| 久久精品国产一区二区三区免费看 | 亚洲欧美在线另类| 国产精品毛片高清在线完整版| 欧美精品一区二区三区在线 | 欧美大片在线观看| 91精品国产综合久久国产大片| 欧美日韩一级片在线观看| 欧美视频一区二区在线观看| 色成年激情久久综合| 色婷婷av一区二区三区软件| 91麻豆精品在线观看| 色系网站成人免费| 在线观看国产日韩| 欧美日韩一区二区三区四区五区| 欧美亚洲高清一区二区三区不卡| 欧洲另类一二三四区| 欧美日韩一本到| 日韩一区二区在线观看| 精品女同一区二区| 国产亚洲1区2区3区| 亚洲国产成人在线| 最新不卡av在线| 亚洲成人综合在线| 免费看日韩精品| 高清在线不卡av| 91麻豆精品秘密| 91精品国产91热久久久做人人| 精品日产卡一卡二卡麻豆| 国产色爱av资源综合区| 自拍偷拍亚洲综合| 日韩国产一区二| 国产福利一区二区三区视频在线| 成人激情小说乱人伦| 在线一区二区观看| 正在播放亚洲一区| 中文一区在线播放| 亚洲成人激情综合网| 韩国一区二区在线观看| a美女胸又www黄视频久久| 欧美精品粉嫩高潮一区二区| 2020国产精品自拍| 一区二区三区在线播放| 精品夜夜嗨av一区二区三区| 99精品热视频| 欧美xfplay| 国产精品白丝jk黑袜喷水| 91网站在线观看视频| 精品日韩一区二区三区免费视频| 亚洲欧洲一区二区在线播放| 日韩高清不卡一区二区| 成人av电影免费在线播放| 欧美一区二区美女| 一区二区三区在线播| 成人久久视频在线观看|