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

📄 pacconfigdlg.cpp

📁 吃豆子游戏源码
💻 CPP
字号:
/**
 * File    : PacConfigDlg.cpp
 * Author  : Kevin Lynx
 * Date    : 2007.8.4
 */
#include "stdafx.h"
#include "PacConfig.h"
#include "PacConfigDlg.h"

BEGIN_MESSAGE_MAP(CPacConfigDlg, CDialog)

END_MESSAGE_MAP()

CPacConfigDlg::CPacConfigDlg( CWnd* pParent )
	: CDialog( CPacConfigDlg::IDD, pParent )
{
	mhIcon = AfxGetApp()->LoadIcon( IDI_ICON1 );
}

CPacConfigDlg::~CPacConfigDlg()
{
}

void CPacConfigDlg::DoDataExchange( CDataExchange* pDX )
{
	CDialog::DoDataExchange( pDX );

	/// 获取对话框数据
	DDX_Check( pDX, IDC_FULLSCR, mbFullScreen );
	DDX_Check( pDX, IDC_LIGHT, mbEnableLight );

	DDX_Control( pDX, IDC_BITS, mCtlBits);
	DDX_Control( pDX, IDC_DEVICE, mCtlDevice );
	DDX_Control( pDX, IDC_VOLUME, mCtlVolume );

	/// update the variables
	if( mCtlBits.GetCurSel() == 0 )
	{
		mBits = 32;
	}
	else if( mCtlBits.GetCurSel() == 1 )
	{
		mBits = 16;
	}
	if( mCtlDevice.GetCurSel() == 0 )
	{
		mDeviceType = DT_OPENGL;
	}
	else if( mCtlDevice.GetCurSel() == 1 )
	{
		mDeviceType = DT_D3D8;
	}
	else if( mCtlDevice.GetCurSel() == 2 )
	{
		mDeviceType = DT_D3D9 ;
	}

	mVolume = mCtlVolume.GetPos() / 100.0f;
}

BOOL CPacConfigDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	SetIcon( mhIcon, TRUE);			
	SetIcon( mhIcon, FALSE);		

	InitControl();

	if( !LoadConfig() )
	{
		SetDefault();
		SaveConfig();
	}

	return TRUE;  
}

BOOL CPacConfigDlg::LoadConfig()
{
	FILE *fp = fopen( "data/config.ini", "r" );
	if( fp == 0 )
	{
		return FALSE;
	}
	int full_screen = 1;
	int enable_light = 1;

	fscanf( fp, "full_screen=%d\n", &full_screen );
	fscanf( fp, "bits=%d\n", &mBits );
	fscanf( fp, "device_type=%d\n", &mDeviceType );
	fscanf( fp, "enable_light=%d\n", &enable_light );
	fscanf( fp, "global_volume=%f\n", &mVolume );
	
	fclose( fp );

	mbFullScreen = full_screen != 0 ? true : false;
	mbEnableLight = enable_light != 0 ? true : false;

	/// update the control
	if( mBits == 16 )
	{
		mCtlBits.SetCurSel( 1 );
	}
	else if( mBits == 32 )
	{
		mCtlBits.SetCurSel( 0 );
	}
	if( mDeviceType == DT_D3D8 )
	{
		mCtlDevice.SetCurSel( 1 );
	}
	else if( mDeviceType == DT_D3D9 )
	{
		mCtlDevice.SetCurSel( 2 );
	}
	else if( mDeviceType == DT_OPENGL )
	{
		mCtlDevice.SetCurSel( 0 );
	}

	mCtlVolume.SetPos( int( mVolume * 100 ) );

	this->UpdateData( false );

	return TRUE;
}

void CPacConfigDlg::InitControl()
{
	mCtlBits.AddString( "32位" );
	mCtlBits.AddString( "16位" );
	
	mCtlDevice.AddString( "OpenGL" );
	mCtlDevice.AddString( "DirectX 8.1" );
	mCtlDevice.AddString( "DirectX 9.0" );

	mCtlVolume.SetRange( 0, 100 );
}	

void CPacConfigDlg::SetDefault()
{
	mbFullScreen = true;
	mbEnableLight = true;
	mDeviceType = DT_D3D9;
	mBits = 32;
	mVolume = 0.5f;
}

void CPacConfigDlg::SaveConfig()
{
	FILE *fp = fopen( "data/config.ini", "w" );
	if( fp == 0 )
	{
		return ;
	}

	fprintf( fp, "full_screen=%d\n", mbFullScreen ? 1 : 0 );
	fprintf( fp, "bits=%d\n", mBits );
	fprintf( fp, "device_type=%d\n", mDeviceType );
	fprintf( fp, "enable_light=%d\n", mbEnableLight ? 1 : 0 );
	fprintf( fp, "global_volume=%f\n", mVolume );
	
	fclose( fp );

}

⌨️ 快捷键说明

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