📄 missionmanager.cpp
字号:
#include "StdAfx.h"
#include ".\missionmanager.h"
MissionManager::MissionManager(void)
{
m_bModified = FALSE;
m_bEnableWindowOpen = FALSE;
}
MissionManager::~MissionManager(void)
{
}
VOID MissionManager::SerializeStream( BYTE * pStream, WORD wSize, eSERIALIZE eType )
{
ASSERT( wSize == MAX_MISSIONSTREAM_SIZE );
ASSERT( MAX_MISSION_NUM*sizeof(MISSIONPART) == MAX_MISSIONSTREAM_SIZE );
// 荐沥登瘤 臼疽促肺 檬扁拳!!
m_bModified = FALSE;
if( eType == SERIALIZE_STORE )
{
m_bEnableWindowOpen = FALSE;
memcpy( m_pMission, pStream, wSize );
// m_bEnableWindowOpen 眉农
CheckEnableWindowOpen();
}
else if( eType == SERIALIZE_LOAD )
{
ASSERT( eType == SERIALIZE_LOAD );
memcpy( pStream, m_pMission, wSize );
}
}
VOID MissionManager::CheckEnableWindowOpen()
{
for(INT i = 0 ; i < MAX_MISSION_NUM ; ++i )
{
if( GetMissionState(i) == MISSION_REWARD )
{
m_bEnableWindowOpen = TRUE;
m_ReservedMissionNum = i;
break;
}
}
}
eMISSION_STATE MissionManager::GetMissionState( BYTE MissionNumber )
{
ASSERT( MissionNumber < MAX_MISSION_NUM );
return (eMISSION_STATE)(m_pMission[MissionNumber].State);
}
WORD MissionManager::GetMissionPoint( BYTE MissionNumber )
{
ASSERT( MissionNumber < MAX_MISSION_NUM );
ASSERT( m_pMission[MissionNumber].Point < 512 );
return (WORD)(m_pMission[MissionNumber].Point);
}
VOID MissionManager::SetMissionState( BYTE MissionNumber, eMISSION_STATE state )
{
ASSERT( m_pMission[MissionNumber].State != state );
m_pMission[MissionNumber].State = state;
if( MISSION_REWARD == state )
{
m_bEnableWindowOpen = TRUE;
m_ReservedMissionNum = MissionNumber;
}
else if( m_bEnableWindowOpen && m_ReservedMissionNum == MissionNumber )
{
m_bEnableWindowOpen = FALSE;
}
m_bModified = TRUE;
}
VOID MissionManager::SetMissionPoint( BYTE MissionNumber, WORD Point )
{
ASSERT( MissionNumber < MAX_MISSION_NUM );
ASSERT( Point < 512 );
ASSERT( m_pMission[MissionNumber].Point != Point );
if( Point > 511 ) Point = 511;
m_pMission[MissionNumber].Point = Point;
m_bModified = TRUE;
}
BOOL MissionManager::IsClearHiddenMission( BYTE MissionNumber, BYTE HiddenMissionNumber )
{
ASSERT( MissionNumber < MAX_MISSION_NUM );
ASSERT( HiddenMissionNumber < MAX_HIDDEN_MISSION_NUM );
return ( m_pMission[MissionNumber].Hidden & (1<<HiddenMissionNumber) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -