97 lines
3.1 KiB
C++
97 lines
3.1 KiB
C++
#pragma once
|
|
#include "..\Media\xuiscene_ingame_player_options.h"
|
|
|
|
class CScene_InGamePlayerOptions : public CXuiSceneImpl
|
|
{
|
|
private:
|
|
enum EControls
|
|
{
|
|
// Checkboxes
|
|
eControl_BuildAndMine,
|
|
eControl_UseDoorsAndSwitches,
|
|
eControl_UseContainers,
|
|
eControl_AttackPlayers,
|
|
eControl_AttackAnimals,
|
|
eControl_Op,
|
|
eControl_CheatTeleport,
|
|
eControl_HostFly,
|
|
eControl_HostHunger,
|
|
eControl_HostInvisible,
|
|
|
|
eControl_CHECKBOXES_COUNT,
|
|
|
|
// Others
|
|
eControl_Kick = eControl_CHECKBOXES_COUNT,
|
|
};
|
|
|
|
protected:
|
|
HXUIOBJ m_focusElement; // Only used for the remove control process
|
|
|
|
CXuiControl m_Icon;
|
|
CXuiControl m_Gamertag;
|
|
CXuiScene m_TeleportGroup;
|
|
CXuiControl m_buttonKick;
|
|
CXuiCheckbox m_checkboxes[eControl_CHECKBOXES_COUNT];
|
|
|
|
XUI_BEGIN_MSG_MAP()
|
|
XUI_ON_XM_INIT( OnInit )
|
|
XUI_ON_XM_DESTROY( OnDestroy )
|
|
XUI_ON_XM_KEYDOWN(OnKeyDown)
|
|
XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx)
|
|
XUI_ON_XM_CONTROL_NAVIGATE( OnControlNavigate )
|
|
XUI_ON_XM_TRANSITION_START( OnTransitionStart )
|
|
XUI_END_MSG_MAP()
|
|
|
|
BEGIN_CONTROL_MAP()
|
|
MAP_CONTROL(IDC_Icon, m_Icon)
|
|
MAP_CONTROL(IDC_Gamertag, m_Gamertag)
|
|
|
|
MAP_CONTROL(IDC_CheckboxBuildAndMine, m_checkboxes[eControl_BuildAndMine])
|
|
MAP_CONTROL(IDC_CheckboxAttackPlayers, m_checkboxes[eControl_AttackPlayers])
|
|
MAP_CONTROL(IDC_CheckboxAttackAnimals, m_checkboxes[eControl_AttackAnimals])
|
|
MAP_CONTROL(IDC_CheckboxUseContainers, m_checkboxes[eControl_UseContainers])
|
|
MAP_CONTROL(IDC_CheckboxUseDoorsAndSwitches, m_checkboxes[eControl_UseDoorsAndSwitches])
|
|
MAP_CONTROL(IDC_CheckboxOp, m_checkboxes[eControl_Op])
|
|
MAP_CONTROL(IDC_CheckboxTeleport, m_checkboxes[eControl_CheatTeleport])
|
|
MAP_CONTROL(IDC_CheckboxHostInvisible, m_checkboxes[eControl_HostInvisible])
|
|
MAP_CONTROL(IDC_CheckboxHostFly, m_checkboxes[eControl_HostFly])
|
|
MAP_CONTROL(IDC_CheckboxHostHunger, m_checkboxes[eControl_HostHunger])
|
|
|
|
MAP_CONTROL(IDC_ButtonKick, m_buttonKick)
|
|
END_CONTROL_MAP()
|
|
|
|
|
|
HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled );
|
|
HRESULT OnDestroy();
|
|
HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled);
|
|
HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled);
|
|
HRESULT OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled);
|
|
HRESULT OnTransitionStart( XUIMessageTransition *pTransition, BOOL& bHandled );
|
|
|
|
public:
|
|
|
|
// Define the class. The class name must match the ClassOverride property
|
|
// set for the scene in the UI Authoring tool.
|
|
XUI_IMPLEMENT_CLASS( CScene_InGamePlayerOptions, L"CScene_InGamePlayerOptions", XUI_CLASS_SCENE )
|
|
|
|
static void OnPlayerChanged(void *callbackParam, INetworkPlayer *pPlayer, bool leaving);
|
|
|
|
private:
|
|
bool m_editingSelf;
|
|
int m_iPad;
|
|
BYTE m_networkSmallId;
|
|
unsigned int m_playerPrivileges;
|
|
D3DXVECTOR3 m_OriginalPosition;
|
|
|
|
void removeControl(HXUIOBJ hObjToRemove, bool center);
|
|
|
|
/** 4J-JEV:
|
|
For enabling/disabling 'Can Fly', 'Can Teleport', 'Can Disable Hunger' etc
|
|
used after changing the moderator checkbox.
|
|
*/
|
|
void resetCheatCheckboxes();
|
|
|
|
public:
|
|
static int KickPlayerReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
|
|
};
|