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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cbshadow.cpp

?? 赤壁之戰(zhàn)的游戲源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
			}
		}
		//lwc舊的透明陰影
		////////////////////////////////////////////////////////
	}// End of for(i)

}

/////////////////////
/////////////////////
// 顯示更新一個(gè)區(qū)域的陰影
// nX, nY	:	中心位置,以格子為單位
// nXLast, nYLast:	上一次的坐標(biāo)
// nRange	:	單元的視野大小,以格子為單位
void SHADOW_Draw( int nX, int nY, int nXLast, int nYLast, int nRange )
{
	int i,j;
	WORD codeR;
	struct MAP_REGION_CODE_STRUCT stctR;
	int bOdd;
	int nDrawX, nDrawY;
	int nDrawXLast, nDrawYLast;

	// draw current position
	nDrawX = nX, nDrawY = nY;
	codeR = MAP_GetRegionData( nDrawX, nDrawY );
	MAP_RegionDeCode( codeR, &stctR );

	if( stctR.nShadow != 0 )
	{	
		stctR.nShadow = 0 ;///nVal;//lwc
		SHADOW_DrawItem( nDrawX, nDrawY,0, &DRAW_rcClient );//lwc

		// 縮略圖
		MINI_SetGroundData( nDrawX, nDrawY, 0 );
	}
	//lwc新的陰影
	if( cMap_shadowEx[nDrawX][nDrawY]==0 );
	{
		stctR.nShadowEx = 0 ;///nVal;//lwc
		SHADOW_DrawItem( nDrawX, nDrawY,0, &DRAW_rcClient );//lwc
	}
	Assert( cMap_shadowEx[nDrawX][nDrawY]>=0 );
	cMap_shadowEx[nDrawX][nDrawY]++;

	codeR = MAP_RegionEnCode( stctR );
	MAP_SetRegionData( nDrawX, nDrawY, codeR );
	
	bOdd = nY&1;
	for( i=0; i< nRange; i++ )//lwc < 改==
	for( j=0; j< ((i+1)<<3); j++ )
	{
		nDrawX = nX + MAP_ptSenser[bOdd][i][j].x;
		nDrawY = nY + MAP_ptSenser[bOdd][i][j].y;
		if( nDrawX < 0 || nDrawX >= MAP_Lib.szNum.cx)	continue;
		if( nDrawY < 0 || nDrawY >= MAP_Lib.szNum.cy)	continue;
		codeR = MAP_GetRegionData( nDrawX, nDrawY );
		MAP_RegionDeCode( codeR, &stctR );  
		if( stctR.nShadow != 0 )
		{//打開全黑的一層;
			stctR.nShadow = 0;
			SHADOW_DrawItem( nDrawX, nDrawY, stctR.nShadow, &DRAW_rcClient );

			// 縮略圖
			MINI_SetGroundData( nDrawX, nDrawY, 0 );
		}

		////////////////////////////////////////////////////////
		//lwc新的透明陰影
        if( i != nRange-1)
        {//貼透明陰影
			if( cMap_shadowEx[nDrawX][nDrawY]==0 );
			{
				stctR.nShadowEx = 0 ;///nVal;//lwc
				SHADOW_DrawItem( nDrawX, nDrawY,0, &DRAW_rcClient );//lwc

				// 縮略圖
//				MINI_SetGroundData( nDrawX, nDrawY, 0 );
			}
			Assert( cMap_shadowEx[nDrawX][nDrawY]>=0 );
			cMap_shadowEx[nDrawX][nDrawY]++;
		}
		else
		{   
            if (cMap_shadowEx[nDrawX][nDrawY]==0)
            {
                stctR.nShadowEx = 1;//lwc
                SHADOW_DrawItem( nDrawX, nDrawY, stctR.nShadowEx, &DRAW_rcClient ); //lwc

				// 縮略圖
				MINI_SetGroundData( nDrawX, nDrawY, 0 );
            }
		}
		//lwc新的透明陰影
		////////////////////////////////////////////////////////
				
		codeR = MAP_RegionEnCode( stctR );
		MAP_SetRegionData( nDrawX, nDrawY, codeR );   //lwc
	}// End of for(i)

	//lwc老的陰影
	nDrawXLast = nXLast, nDrawYLast = nYLast;
	cMap_shadowEx[nDrawXLast][nDrawYLast]--;//
	Assert( cMap_shadowEx[nDrawXLast][nDrawYLast]>=0 );
	if (cMap_shadowEx[nDrawXLast][nDrawYLast]==0)
	{
		codeR = MAP_GetRegionData( nDrawXLast, nDrawYLast );
		MAP_RegionDeCode( codeR, &stctR );

		stctR.nShadowEx = 1 ;///nVal;//lwc
		SHADOW_DrawItem( nDrawXLast, nDrawYLast,1, &DRAW_rcClient );//lwc

		codeR = MAP_RegionEnCode( stctR );
		MAP_SetRegionData( nDrawXLast, nDrawYLast, codeR );
	}
	
	bOdd = nYLast&1;
	for( i=0; i< nRange; i++ )
	for( j=0; j< ((i+1)<<3); j++ )
	{
		nDrawXLast = nXLast + MAP_ptSenser[bOdd][i][j].x;//相對于
		nDrawYLast = nYLast + MAP_ptSenser[bOdd][i][j].y;
		if( nDrawXLast < 0 || nDrawXLast >= MAP_Lib.szNum.cx)	continue;
		if( nDrawYLast < 0 || nDrawYLast >= MAP_Lib.szNum.cy)	continue;

		////////////////////////////////////////////////////////
		//lwc舊的透明陰影
		if( i != nRange-1)
		{
			cMap_shadowEx[nDrawXLast][nDrawYLast]--;
			Assert( cMap_shadowEx[nDrawXLast][nDrawYLast]>=0 );
			if (cMap_shadowEx[nDrawXLast][nDrawYLast]==0)
			{
				codeR = MAP_GetRegionData( nDrawXLast, nDrawYLast );
				MAP_RegionDeCode( codeR, &stctR );  

				stctR.nShadowEx = 1;//lwc
				SHADOW_DrawItem( nDrawXLast, nDrawYLast, 1, &DRAW_rcClient ); //lwc

				codeR = MAP_RegionEnCode( stctR );
				MAP_SetRegionData( nDrawXLast, nDrawYLast, codeR );   //lwc
			}
		}
		//lwc舊的透明陰影
		////////////////////////////////////////////////////////
	}// End of for(i)
}


/////////////////////
// 顯示更新一個(gè)區(qū)域的陰影,只顯示第一層
// nX, nY	:	中心位置,以格子為單位
// nXLast, nYLast:	上一次的坐標(biāo)
// nRange	:	單元的視野大小,以格子為單位
void SHADOW_Draw0( int nX, int nY, int nXLast, int nYLast, int nRange )
{
	int i,j;
	WORD codeR;
	struct MAP_REGION_CODE_STRUCT stctR;
	int bOdd;
	int nDrawX, nDrawY;

	// draw current position
	nDrawX = nX, nDrawY = nY;
	codeR = MAP_GetRegionData( nDrawX, nDrawY );
	MAP_RegionDeCode( codeR, &stctR );

	if( stctR.nShadow != 0 )
	{	
		stctR.nShadow = 0 ;///nVal;//lwc
		SHADOW_DrawItem( nDrawX, nDrawY,0, &DRAW_rcClient );//lwc

		// 縮略圖
		MINI_SetGroundData( nDrawX, nDrawY, 0 );
	}

	codeR = MAP_RegionEnCode( stctR );
	MAP_SetRegionData( nDrawX, nDrawY, codeR );
	
	bOdd = nY&1;
	for( i=0; i< nRange; i++ )//lwc < 改==
	for( j=0; j< ((i+1)<<3); j++ )
	{
		nDrawX = nX + MAP_ptSenser[bOdd][i][j].x;
		nDrawY = nY + MAP_ptSenser[bOdd][i][j].y;
		if( nDrawX < 0 || nDrawX >= MAP_Lib.szNum.cx)	continue;
		if( nDrawY < 0 || nDrawY >= MAP_Lib.szNum.cy)	continue;
		codeR = MAP_GetRegionData( nDrawX, nDrawY );
		MAP_RegionDeCode( codeR, &stctR );  
		if( stctR.nShadow != 0 )
		{//打開全黑的一層;
			stctR.nShadow = 0;
			SHADOW_DrawItem( nDrawX, nDrawY, stctR.nShadow, &DRAW_rcClient );

			// 縮略圖
			MINI_SetGroundData( nDrawX, nDrawY, 0 );
		}
				
		codeR = MAP_RegionEnCode( stctR );
		MAP_SetRegionData( nDrawX, nDrawY, codeR );   //lwc
	}// End of for(i)
}
/////////////////////

/////////////////////
void SHADOW_Update2Back( CONST RECT *prcCut /*=NULL*/, BOOL bFront /*=FALSE*/ )
{
	if( SHADOW_bEnable == FALSE )	return;	// if disable shadow, do nothing

	POINT ptDest;
	RECT rcSrc;
	if( prcCut == NULL )
	{
		ptDest.x = DRAW_rcClient.left, 
		ptDest.y = DRAW_rcClient.top;
		rcSrc.left = rcSrc.top = 0;
		rcSrc.right = DRAW_rcClient.right - DRAW_rcClient.left;
		rcSrc.bottom = DRAW_rcClient.bottom - DRAW_rcClient.top;
	}
	
	// draw from shadow back surface to back buffer
	SHADOW_sBack.BltToBack( ptDest, &rcSrc );

	// draw from back buffer to front buffer
	if( bFront )
		DDC_UpdateScreen( &DRAW_rcClient );
}

// redraw all the shadows in client area
void SHADOW_DrawAll( LPRECT prcCut/*=NULL*/ )
{
	if( SHADOW_bEnable == FALSE )	return;	// if disable shadow, do nothing

	int i,j;
	if( prcCut == NULL )
		prcCut = &DRAW_rcClient;	// 缺省時(shí)為客戶區(qū)

	// 用黑色填充背景面
	RECT rect;
	SetRect( &rect, prcCut->left, prcCut->top, prcCut->right, prcCut->bottom );
	OffsetRect( &rect, -DRAW_rcClient.left, -DRAW_rcClient.top );
	if( !SHADOW_sBack.Erase( 0, &rect ) )// red, RGB(255,0,0)//lwc
		OutputDebugString( "Erase error!\n" );

	// 畫亮部
	int nShadow=0;
	for( j=DRAW_rcScreen.top; j<DRAW_rcScreen.bottom; j++ )
	for( i=DRAW_rcScreen.left; i<DRAW_rcScreen.right; i++ )
	{
		WORD codeR = MAP_GetRegionData( i, j );
		struct MAP_REGION_CODE_STRUCT stctR;
		MAP_RegionDeCode( codeR, &stctR );
		//
		if( stctR.nShadow != MAP_SHADOW_NONE 
			&& stctR.nShadowEx == 0 )
			SHADOW_DrawItem( i, j, stctR.nShadow, prcCut );
	}
	for( j=DRAW_rcScreen.top; j<DRAW_rcScreen.bottom; j++ )
	for( i=DRAW_rcScreen.left; i<DRAW_rcScreen.right; i++ )
	{
		WORD codeR = MAP_GetRegionData( i, j );
		struct MAP_REGION_CODE_STRUCT stctR;
		MAP_RegionDeCode( codeR, &stctR );
		if( stctR.nShadowEx == 1 )
			SHADOW_DrawItem( i, j,stctR.nShadowEx, prcCut );
	}
}

// 拷貝陰影背景面上保留的區(qū)域到新的位置
inline void SHADOW_MoveBack( POINT ptDest, LPRECT prcSrc )
{
	ptDest.x -= DRAW_rcClient.left,
	ptDest.y -= DRAW_rcClient.top;
	RECT rect;
	rect.left = prcSrc->left - DRAW_rcClient.left,
	rect.top = prcSrc->top - DRAW_rcClient.top,
	rect.right = prcSrc->right - DRAW_rcClient.left,
	rect.bottom = prcSrc->bottom - DRAW_rcClient.top;
	SHADOW_sBack.BltSurface( ptDest.x, ptDest.y, 
		SHADOW_sBack.GetSurface(), &rect, DDBLTFAST_NOCOLORKEY );
}
/////////////////////

/////////////////////
// enable or disable shadow
// bEnable	:	enable or disable shadow
void SHADOW_Enable( BOOL bEnable/* = TRUE*/ )
{
	SHADOW_bEnable = bEnable;
	MINI_DrawAll( 1-bEnable );
	SHADOW_DrawAll();
}

// test if shadow is enabled
// return :	TRUE if enabled
BOOL SHADOW_IfEnabled()
{
	return SHADOW_bEnable;
}

// test if this point is under the shadow
// nX, nY	:	point to test
// return	:	MAP_SHADOW_NONE if it is blanked
//				else returns the content of stctR.nShadow
inline int SHADOW_IfBlanked( int nX, int nY )
{
	WORD codeR = MAP_GetRegionData( nX, nY );
	struct MAP_REGION_CODE_STRUCT stctR;
	MAP_RegionDeCode( codeR, &stctR );
	if( SHADOW_bEnable == FALSE )
		return 0;	// 陰影全部打開
	if( stctR.nShadow == MAP_SHADOW_NONE )
		return MAP_SHADOW_NONE;	// 被全黑的影子遮擋
//	if( cMap_shadowEx[nX][nY] != 0 )
//		return 1;	// 被半透明陰影遮擋
	if( stctR.nShadowEx == 1 )
		return 1;
	return 0;	// 沒有被遮擋
}
/////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人一级视频| 亚洲国产精品av| 懂色av一区二区在线播放| 亚洲欧洲日韩女同| 777欧美精品| 成人av网址在线观看| 五月激情综合婷婷| 国产日韩欧美一区二区三区乱码 | 亚洲婷婷国产精品电影人久久| 欧美精品一级二级三级| 波多野结衣在线一区| 美腿丝袜亚洲一区| 一区二区三区国产精华| 国产欧美日韩精品a在线观看| 精品视频在线免费看| 成人黄色在线视频| 麻豆视频观看网址久久| 一区二区不卡在线播放 | 99久久综合狠狠综合久久| 天堂av在线一区| 国产精品人成在线观看免费| 日韩亚洲欧美综合| 色婷婷久久一区二区三区麻豆| 韩国成人在线视频| 日韩电影一区二区三区四区| 亚洲精品中文在线影院| 国产视频一区在线观看 | 色老汉av一区二区三区| 国产成人aaa| 久久66热re国产| 香蕉久久一区二区不卡无毒影院| 国产精品人妖ts系列视频| 久久久国际精品| 精品少妇一区二区三区在线播放| 欧美精品v日韩精品v韩国精品v| 在线免费av一区| 在线看一区二区| 在线精品亚洲一区二区不卡| 99亚偷拍自图区亚洲| 成人av在线影院| 成人黄页毛片网站| 99视频在线精品| 色婷婷国产精品综合在线观看| 99在线精品免费| 色呦呦日韩精品| 欧美视频你懂的| 欧美精品高清视频| 欧美大片在线观看一区二区| 日韩精品最新网址| 久久综合999| 2021中文字幕一区亚洲| 久久综合色播五月| 亚洲五月六月丁香激情| 亚洲国产高清在线观看视频| 久久精品一区二区| 国产色产综合产在线视频| 国产无遮挡一区二区三区毛片日本| 精品少妇一区二区三区在线视频| 欧美精品一区二区三区蜜桃| 久久久精品国产99久久精品芒果 | 国产欧美日韩激情| 亚洲三级在线看| 香蕉成人啪国产精品视频综合网| 日韩高清不卡一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 免费成人结看片| 国产成人免费网站| 色香蕉成人二区免费| 欧美日本在线播放| 精品久久久久久久久久久久久久久| 久久免费电影网| 亚洲人快播电影网| 国产成人亚洲精品青草天美| 一本久道中文字幕精品亚洲嫩| 欧美日韩亚洲高清一区二区| 欧美成人a在线| 国产精品久久午夜夜伦鲁鲁| 亚洲一区二区三区中文字幕| 蜜臀av一区二区在线免费观看 | 欧美最新大片在线看 | 欧美午夜片在线观看| 91精品国产高清一区二区三区| 久久久影院官网| 亚洲一区二区三区影院| 国产在线视频不卡二| 色婷婷综合久久久久中文| 日韩欧美中文字幕精品| 亚洲日本一区二区三区| 日本成人在线看| av成人免费在线观看| 欧美电影免费观看高清完整版| 国产精品美女久久久久aⅴ国产馆| 天天综合天天做天天综合| 国产成人亚洲综合a∨猫咪| 欧美精品乱码久久久久久按摩| 欧美激情中文字幕| 青椒成人免费视频| 色狠狠桃花综合| 久久在线观看免费| 亚洲成人av在线电影| 波多野结衣一区二区三区| 欧美一级艳片视频免费观看| 中文字幕一区二区三区色视频| 免费精品视频最新在线| 色哟哟一区二区| 久久精品视频网| 日韩精品电影在线观看| 91在线观看高清| 国产午夜精品一区二区三区四区| 天堂成人国产精品一区| 色8久久精品久久久久久蜜| 久久久久久久久久美女| 强制捆绑调教一区二区| 欧美性大战久久久久久久蜜臀| 国产精品人妖ts系列视频| 国产一区二区视频在线| 欧美一级二级三级乱码| 亚洲成国产人片在线观看| 91浏览器打开| 国产精品久久久久一区二区三区| 狠狠色综合播放一区二区| 制服丝袜在线91| 亚洲图片欧美综合| 91麻豆国产在线观看| 日本亚洲一区二区| 欧美人与z0zoxxxx视频| 亚洲午夜国产一区99re久久| 91在线观看免费视频| 国产精品乱码一区二区三区软件| 国产麻豆视频一区二区| 日韩欧美视频一区| 日韩电影在线一区二区| 欧美一卡2卡3卡4卡| 午夜久久电影网| 欧美四级电影网| 亚洲图片欧美一区| 欧美日韩国产免费一区二区| 亚洲影院免费观看| 欧美网站一区二区| 香蕉加勒比综合久久| 欧美精品乱码久久久久久| 日韩精品一区第一页| 日韩欧美国产综合一区| 久久av资源网| 久久久久久久久久久电影| 国产成人午夜99999| 国产精品美女www爽爽爽| 成人av免费网站| 亚洲精品少妇30p| 欧美日韩不卡一区二区| 麻豆成人在线观看| 久久久久久综合| 不卡视频在线观看| 亚洲亚洲精品在线观看| 欧美一级日韩一级| 国产剧情一区二区| 亚洲欧洲色图综合| 欧美老人xxxx18| 久久黄色级2电影| 中文字幕国产一区二区| 91社区在线播放| 午夜成人在线视频| 精品日韩成人av| av网站一区二区三区| 亚洲综合小说图片| 欧美白人最猛性xxxxx69交| 国产成人精品影视| 一区二区三区在线不卡| 日韩视频一区二区三区| 国产盗摄一区二区| 亚洲国产婷婷综合在线精品| 欧美一级久久久| 成人国产电影网| 偷窥国产亚洲免费视频| 久久综合999| 欧洲中文字幕精品| 久久99国产精品久久99| 亚洲啪啪综合av一区二区三区| 5月丁香婷婷综合| 国v精品久久久网| 天天影视色香欲综合网老头| 国产日韩一级二级三级| 欧美最猛性xxxxx直播| 麻豆精品视频在线观看视频| 综合自拍亚洲综合图不卡区| 91精品国产欧美一区二区18| 成人激情动漫在线观看| 青青草精品视频| 中文字幕中文字幕中文字幕亚洲无线| 欧美日韩一区在线| 国产黄色91视频| 日本午夜精品视频在线观看| 国产精品无码永久免费888| 51精品秘密在线观看| 99视频有精品| 看片网站欧美日韩| 亚洲国产毛片aaaaa无费看 | 国产精品私人影院| 91精品国产一区二区三区| 91视频观看视频|