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

📄 menucharacter.h

📁 Blood 2全套源码
💻 H
字号:
//*************************************************************************
//*************************************************************************
//***** MODULE  : MenuCharacter.h
//***** PURPOSE : Blood 2 Character Creation Screen
//***** CREATED : 10/11/98
//*************************************************************************
//*************************************************************************

#if !defined(AFX_MENUCHARACTER_H__D7668B32_57D4_11D2_BDA0_0060971BDC6D__INCLUDED_)
#define AFX_MENUCHARACTER_H__D7668B32_57D4_11D2_BDA0_0060971BDC6D__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

//*************************************************************************

#include "MenuBase.h"
#include "SharedDefs.h"

//*************************************************************************

#ifdef _ADDON
#define		MAX_CHARACTER_INFO		28
#else
#define		MAX_CHARACTER_INFO		20
#endif

#define		MAX_ATTRIBUTE			5

#define		ARROW_CTRLS				0

#define		MIN_STAT_INDEX			1
#define		MAX_STAT_INDEX			4

#define		MIN_WEAPON_INDEX		5
#define		MAX_WEAPON_INDEX		13

//*************************************************************************

typedef struct CharacterMenuInfo
{
	char	*szFile;
	DDWORD	nCharacter;
	DDWORD	nColor;
}	CharacterMenuInfo;

//*************************************************************************

class CMenuCharacter : public CMenuBase  
{
	public:
		CMenuCharacter();
		virtual ~CMenuCharacter();	

		// Build the menu
		void	Build();		

		// Override the left and right controls
		void	OnLeft();
		void	OnRight();

		// Renders the menu to a surface
		void	Render(HSURFACE hDestSurf);

		// This is called to determine whether we should ask the user if they wish to switch
		// resolutions back to the previous resolution if it had been changed to 640x480.
		void	SetResolutionSwitch(DBOOL bAsk, int nOldWidth, int nOldHeight);

		// This is called when the menu gets or loses focus
		void	OnFocus(DBOOL bFocus);

		// Extra member functions for file control
		DBOOL	SaveB2CFile(char *szFile);
		DBOOL	LoadB2CFile(char *szFile);
		DBOOL	DeleteB2CFile(char *szFile);

		void	UpdateScreenFromStruct();

	protected:
		DDWORD	OnCommand(DDWORD dwCommand, DDWORD dwParam1, DDWORD dwParam2);

		void	BuildExtraCtrls();

		void	CheckSelectedLinks();

		void	ChangeCharacterPic(int index);
		void	UpdateCharacterStruct();
		void	SetPlayerIndexFromStruct();

		DBOOL	IsWeaponADupe(int index);

		// Custom control setup functions
		CLTGUIFadeItemCtrl* InitFadeItemCtrl(char *lpszOptionSurfPrefix, int nSurfaces, char *lpszOptionText, DWORD dwCommandID, int x, int y);
		CLTGUITextItemCtrl* InitNumberCtrl(int low, int high, int index, DWORD dwCommandID, int x, int y);
		CLTGUITextItemCtrl* InitWeaponCtrl(int index, DWORD dwCommandID, int x, int y, DBOOL enable);
		CLTGUITextItemCtrl* InitWeaponNumCtrl(int index, DWORD dwCommandID, int x, int y, DBOOL enable);

		// Extra member variables
		HSURFACE	m_hCharacterPic;
		HDECOLOR	m_hTransColor;

		int			m_PlayerIndex;
		DDWORD		m_ExtraPoints;

		B2C			m_Player;

		CLTGUIFadeItemCtrl		*m_hRightArrow;

		CLTGUITextItemCtrl		*m_hStats[4];

		CLTGUIFadeItemCtrl		*m_hExtraCtrl;
		CLTGUITextItemCtrl		*m_hExtraNumCtrl;

		CLTGUIFadeItemCtrl		*m_hWeaponsCtrl;
		CLTGUITextItemCtrl		*m_hWeaponNums[10];
		CLTGUITextItemCtrl		*m_hWeapons[10];

		DBOOL		m_bSwitchResolutions;
		DBOOL		m_bGoingToFilesMenu;

		int			m_nOldScreenWidth;
		int			m_nOldScreenHeight;
};

//*************************************************************************

#endif // !defined(AFX_MENUCHARACTER_H__D7668B32_57D4_11D2_BDA0_0060971BDC6D__INCLUDED_)

⌨️ 快捷键说明

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