⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 palette.cpp

📁 RPG单机游戏圣剑英雄传的源代码(声音、图片、剧情等)希望给对于想制作游戏的人有一定帮助。
💻 CPP
字号:
//==================调色板模块==================

//*******************
LPPALETTEENTRY MainPal=NULL,NullPal=NULL,TitlePal=NULL;

void InitPalette(LPPALETTEENTRY &Pal)
{
	Pal = (LPPALETTEENTRY) LocalAlloc( LPTR, sizeof( PALETTEENTRY ) * 256 );
	lpDDPal->GetEntries(0,0,256,Pal);
	if( NullPal == NULL ) 
	{
		NullPal = (LPPALETTEENTRY) LocalAlloc( LPTR, sizeof( PALETTEENTRY ) * 256 );
		for(int i=0; i<256; i++)
		{
			NullPal[i].peRed=NullPal[i].peGreen=NullPal[i].peBlue=0;
			NullPal[i].peFlags=NULL;
		}
	}
}

//读调色板
LPPALETTEENTRY LoadPalette(char *filename)
{
	LPPALETTEENTRY Pe;
	Pe = (LPPALETTEENTRY) LocalAlloc( LPTR, sizeof( PALETTEENTRY ) * 256 );
	FILE *fp;
	if( (fp=fopen(filename,"rb"))==NULL )
	{
		MessageBox(hWnd, "error load palette file!","error",MB_OK);
		return NULL;
	}
	for(int i=0; i<256; i++)
	{
		fread(&Pe[i].peRed,1,1,fp);
		fread(&Pe[i].peGreen,1,1,fp);
		fread(&Pe[i].peBlue,1,1,fp);
		//Pe[i].peFlags=TitlePal[i].peFlags;		
	}
	fclose(fp);
	return Pe;
}

//存调色板
void SavePalette(LPPALETTEENTRY Pe, char *filename)
{
	FILE *fp;
	if( (fp=fopen(filename,"wb"))==NULL )
	{
		MessageBox(hWnd, "error save palette file!","error",MB_OK);
		return;
	}
	for(int i=0; i<256; i++)
	{
		fwrite(&Pe[i].peRed,1,1,fp);
		fwrite(&Pe[i].peGreen,1,1,fp);
		fwrite(&Pe[i].peBlue,1,1,fp);
		//Pe[i].peFlags=TitlePal[i].peFlags;		
	}
	fclose(fp);
}

void ChangePalette(LPPALETTEENTRY pal1,LPPALETTEENTRY pal2,int count)
{
	LPPALETTEENTRY Pe;
	Pe = (LPPALETTEENTRY) LocalAlloc( LPTR, sizeof( PALETTEENTRY ) * 256 );
	memcpy( Pe, pal1, sizeof(PALETTEENTRY)*256);

	for( int n=0; n<256/abs(count); n++)
	{
		for(int i=0; i<256; i++)
		{
			if( Pe[i].peRed != pal2[i].peRed )
				Pe[i].peRed += count;

			if( Pe[i].peGreen != pal2[i].peGreen )
				Pe[i].peGreen += count;

			if( Pe[i].peBlue != pal2[i].peBlue )
				Pe[i].peBlue += count;
		}
	lpDDPal->SetEntries(0,0,256,Pe);
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -