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

📄 l_save.cpp

📁 网页游戏赤壁
💻 CPP
字号:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <windef.h>
//#include "stdafx.h"
#include "l_save.h"

/* *********************************************************************** */
//功能:
//		游戏存储函数;
//参数:
//		filename   : 文件的名字;
//		buf_length : 结构的长度;
//		buf_point  : 结构的引用;
//例子:
//		Lgame_save ( fp ,size (test) ,(char *)&test );
/* *********************************************************************** */
void Lgame_save ( FILE * fp ,DWORD buf_length ,char * buf_point )
{
	char	compress_backup;
	COMPRESS_PLAN	compress_save;
	UNCOMPRESS_BYTE		uncompress_byte;		//没有压缩前的字节数;
	int		i=0;

	compress_save.compress_count = 1;
	uncompress_byte.uncompress_byte = buf_length;
	fwrite( &uncompress_byte, sizeof( uncompress_byte ), 1, fp );
	while ( buf_length )
	{
		compress_save.compress_string=*buf_point;
		buf_point++;
		compress_backup=*buf_point;
		if (compress_save.compress_string != 0 )
		{
			fwrite (&compress_save.compress_string,1,1,fp);
		}
		else
		{
			if ( compress_save.compress_string == compress_backup &&buf_length!=1)
			{
				compress_save.compress_count++;
			}
			else 
			{
				fwrite( &compress_save, sizeof( compress_save ), 1, fp );
				compress_save.compress_count=1;
			}
		}
		buf_length -=1;
	}
}

/*
void Lgame_save ( FILE * fp ,DWORD buf_length ,char * buf_point )
{
	char	compress_backup;
	COMPRESS_PLAN	compress_save;
	UNCOMPRESS_BYTE		uncompress_byte;		//没有压缩前的字节数;

	compress_save.compress_count = 1;
	uncompress_byte.uncompress_byte = buf_length;
	fwrite( &uncompress_byte, sizeof( uncompress_byte ), 1, fp );
	while ( buf_length )
	{
		compress_save.compress_string=*buf_point;
		buf_point+=1;

		compress_backup=*buf_point;

		if ( compress_save.compress_string == compress_backup &&buf_length!=1)
		{
			compress_save.compress_count++;
		}
		else 
		{
			fwrite( &compress_save, sizeof( compress_save ), 1, fp );
			compress_save.compress_count=1;
		}
		buf_length -=1;
	}
//	if ( compress_save.compress_count > 1 )
//		fwrite( &compress_save, sizeof( compress_save ), 1, fp );

}*/
/*
void Lgame_load ( FILE *fp ,DWORD buf_length ,char * buf_point )
{
	UNCOMPRESS_BYTE	uncompress_byte;	//没有压缩前的字节数;
	COMPRESS_PLAN	compress_Load;
	
	fread ( &uncompress_byte ,sizeof ( uncompress_byte ) ,1 ,fp );
	
	while ( uncompress_byte.uncompress_byte )
	{
		fread ( &compress_Load ,sizeof (compress_Load) ,1 ,fp );
		uncompress_byte.uncompress_byte -= compress_Load.compress_count;
		memset ( buf_point ,compress_Load.compress_string ,compress_Load.compress_count );
		buf_point += compress_Load.compress_count;
	}
}
*/

void Lgame_load ( FILE *fp ,DWORD buf_length ,char * buf_point )
{
	UNCOMPRESS_BYTE	uncompress_byte;	//没有压缩前的字节数;
	COMPRESS_PLAN	compress_Load;
	
	fread ( &uncompress_byte ,sizeof ( uncompress_byte ) ,1 ,fp );
	
	while ( uncompress_byte.uncompress_byte )
	{	
		fread ( &compress_Load.compress_string,1,1,fp);
		if ( compress_Load.compress_string == 0 )
		{
			fread (&compress_Load.compress_count,4,1,fp);
			uncompress_byte.uncompress_byte -= compress_Load.compress_count;
			memset ( buf_point ,compress_Load.compress_string ,compress_Load.compress_count );
			buf_point += compress_Load.compress_count;
		}
		else
		{
			*buf_point = compress_Load.compress_string;
			buf_point ++;
			uncompress_byte.uncompress_byte --;
		}
	}
}

short test (char * test_buf ,DWORD buf_length ,char *buf_point )
{
	memcpy ( test_buf ,buf_point ,buf_length );
	return ( 1 );
}

short testcmp (char * test_buf ,DWORD buf_length ,char *buf_point )
{
	DWORD i;
	for (i = 0; i<buf_length; i++ )
	{
		if ( *test_buf != *buf_point)
		{
			return ( 0 );
		}
		test_buf++;
		buf_point++;
	}
	return ( 1 );
}

⌨️ 快捷键说明

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