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

📄 cmainguimgr.cpp

📁 3D游戏疯狂的鸡蛋
💻 CPP
字号:
/*
	Crazy Eggs Remade By Kevin Lynx

	File : CMainGUIMgr.cpp
	Desc : manage the main menu
	Date : 2007.1.25
*/

#include	"../CGame.h"
#include	"CMainGUIMgr.h"
#include	"CHelpDlg.h"
#include	"COptionsDlg.h"
#include	"CInputDlg.h"
#include	"CHighscoreDlg.h"

#include	"../resourceGen/res.h"

#include	"../memleak.h"

//a tiny function ,... en..used just for fun. 
template < class Type>
void	SafeDelete( Type p )
{
	if( p!= 0 )
	{
		delete	p;
		p = 0;
	}
}

CMainGUIMgr::CMainGUIMgr( CGame *game )
{
	m_Game	=	game;

	m_btnPlay		=	NULL;
	m_btnHighScore	=	NULL;
	m_btnOptions	=	NULL;
	m_btnHelp		=	NULL;
	m_btnExit		=	NULL;

	m_highscoreMgr	=	NULL;
}

CMainGUIMgr::~CMainGUIMgr()
{
	Release();
}

bool	CMainGUIMgr::Init()
{
	//'play' button
	m_btnPlay	=	new	ButtonWidget( BTN_PLAY_ID, this );
	m_btnPlay->mButtonImage =	PLAY_BTN_OFF;
	m_btnPlay->mOverImage	=	PLAY_BTN_ON;
	m_btnPlay->mDownImage	=	PLAY_BTN_PUSH;
	m_btnPlay->Resize( 35, 200, PLAY_BTN_OFF->GetWidth(), PLAY_BTN_OFF->GetHeight() );

	//'high score' button
	m_btnHighScore	=	new	ButtonWidget( BTN_HIGHSCORE_ID, this );
	m_btnHighScore->mButtonImage =	HIGHSCORE_BTN_OFF;
	m_btnHighScore->mOverImage	=	HIGHSCORE_BTN_ON;
	m_btnHighScore->mDownImage	=	HIGHSCORE_BTN_PUSH;
	m_btnHighScore->Resize( 15, 265, HIGHSCORE_BTN_OFF->GetWidth(), HIGHSCORE_BTN_OFF->GetHeight() );

	//'options' button
	m_btnOptions	=	new	ButtonWidget( BTN_OPTIONS_ID, this );
	m_btnOptions->mButtonImage =	OPTIONS_BTN_OFF;
	m_btnOptions->mOverImage	=	OPTIONS_BTN_ON;
	m_btnOptions->mDownImage	=	OPTIONS_BTN_PUSH;
	m_btnOptions->Resize( 45, 340, OPTIONS_BTN_OFF->GetWidth(), OPTIONS_BTN_OFF->GetHeight() );


	//'help' button
	m_btnHelp	=	new	ButtonWidget( BTN_HELP_ID, this );
	m_btnHelp->mButtonImage =	HELP_BTN_OFF;
	m_btnHelp->mOverImage	=	HELP_BTN_ON;
	m_btnHelp->mDownImage	=	HELP_BTN_PUSH;
	m_btnHelp->Resize( 45, 400, HELP_BTN_OFF->GetWidth(), HELP_BTN_OFF->GetHeight() );

	//'exit' button
	m_btnExit	=	new	ButtonWidget( BTN_EXIT_ID, this );
	m_btnExit->mButtonImage =	EXIT_BTN_OFF;
	m_btnExit->mOverImage	=	EXIT_BTN_ON;
	m_btnExit->mDownImage	=	EXIT_BTN_PUSH;
	m_btnExit->Resize( 45, 470, EXIT_BTN_OFF->GetWidth(), EXIT_BTN_OFF->GetHeight() );

	//highscore manager
	m_highscoreMgr	=	new	CHighscoreMgr();

	return true;
}

void	CMainGUIMgr::Release()
{
	SafeDelete( m_btnPlay );
	SafeDelete( m_btnHighScore );
	SafeDelete( m_btnOptions );
	SafeDelete( m_btnHelp );
	SafeDelete( m_btnExit );

	SafeDelete( m_highscoreMgr );
}

void	CMainGUIMgr::Update()
{
	Widget::Update();

	MarkDirty();
}

void	CMainGUIMgr::Draw( Graphics *g )
{
	if( m_Game->Is3DAccelerated() )
	{
		g->DrawImageF( MAIN_BACK, 0, 0 );
		g->DrawImageF( BRUNCH, 58, 184 );
	}
	else
	{
		g->DrawImageF( MAIN_BACK, 0, 0 );
		g->DrawImageF( BRUNCH, 58, 184 );
	}

}

void	CMainGUIMgr::AddedToManager( WidgetManager *theWidgetManager )
{
	Widget::AddedToManager( theWidgetManager );

	theWidgetManager->AddWidget( m_btnPlay );
	theWidgetManager->AddWidget( m_btnHighScore );
	theWidgetManager->AddWidget( m_btnOptions );
	theWidgetManager->AddWidget( m_btnHelp );
	theWidgetManager->AddWidget( m_btnExit );

}

void	CMainGUIMgr::RemovedFromManager( WidgetManager *theWidgetManager )
{
	Widget::RemovedFromManager( theWidgetManager );

	theWidgetManager->RemoveWidget( m_btnPlay );
	theWidgetManager->RemoveWidget( m_btnHighScore );
	theWidgetManager->RemoveWidget( m_btnOptions );
	theWidgetManager->RemoveWidget( m_btnHelp );
	theWidgetManager->RemoveWidget( m_btnExit );


}

void	CMainGUIMgr::ButtonDepress( int theId )
{
	if( theId == BTN_PLAY_ID )
	{
		m_Game->SetGameState( CGame::GAME_STATE_LEAVE_MAIN_MENU );
	}

	if( theId == BTN_HIGHSCORE_ID )
	{
		m_highscoreMgr->ShowDlg();
	}

	if( theId == BTN_OPTIONS_ID )
	{
		//'options' dialog
		m_Game->AddDialog( new COptionsDlg() );
	}

	if( theId == BTN_HELP_ID )
	{
		//'help' dialog
		m_Game->AddDialog( new CHelpDlg() );
	}

	if( theId == BTN_EXIT_ID )
	{
		m_Game->Shutdown(); 
	}

}

void	CMainGUIMgr::DialogButtonDepress( int theDialogId, int theButtonId )
{
	

}

⌨️ 快捷键说明

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