105 lines
2.6 KiB
C++
105 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include "uibase.h"
|
|
#include "FTextParser.h"
|
|
#include "FTextSentence.h"
|
|
#include "FTextParam.h"
|
|
#include "FTextRender.h"
|
|
#include "MissionInfoParser.h"
|
|
|
|
#define MISSION_OBJECT_DELAY 5000
|
|
|
|
class uiMissionObject : public uiBase
|
|
{
|
|
enum eDIALOG_POS
|
|
{
|
|
eDIALOG_MISSION_OBJECT_LIST,
|
|
eDIALOG_EXIT,
|
|
eDIALOG_VSCROLL,
|
|
eDIALOG_TITTLE,
|
|
eDIALOG_ALL_BUTTON,
|
|
eDIALOG_PLAY_BUTTON,
|
|
eDIALOG_COMPLETE_BUTTON,
|
|
DLGPOS_MAX,
|
|
};
|
|
|
|
enum eDisplayType
|
|
{
|
|
TYPE_ALL,
|
|
TYPE_PLAYING,
|
|
TYPE_COMPLETE,
|
|
TYPE_BUTTON_MAX,
|
|
};
|
|
|
|
public:
|
|
uiMissionObject(InterfaceManager* ui_manager);
|
|
~uiMissionObject();
|
|
virtual void Init(CDrawBase* draw_base);
|
|
virtual void Release();
|
|
virtual void OnUpdateSolarDialog();
|
|
virtual void OnRenderSolarDialog();
|
|
virtual void Process(DWORD tick_count);
|
|
virtual void OnShowWindow(BOOL open_value);
|
|
virtual void MessageProc(SI_MESSAGE* message);
|
|
virtual void NetworkProc(MSG_BASE* message);
|
|
virtual void MouseOver_MsgProc(SI_MESSAGE* message);
|
|
virtual void UpdatePosition();
|
|
bool MissionObjectComplete(DWORD trigger_id);
|
|
void CheckMissionObjectShow(DWORD trigger_id);
|
|
void SetMissionObjectMapCode(DWORD map_code, DWORD field_code);
|
|
protected:
|
|
CControlWZ* get_control(POSTYPE AtPos);
|
|
POSTYPE get_control_id_to_pos(WzID wzID);
|
|
private:
|
|
void MissionDataReflash();
|
|
void InitMissionList();
|
|
bool AddFormatText(const TCHAR* message);
|
|
void updateMouseWheel();
|
|
void InitLineText();
|
|
void ResetButton();
|
|
void UpdateToolTip();
|
|
void MissionNotice();
|
|
|
|
static WzID wz_control_id_[DLGPOS_MAX];
|
|
|
|
MISSION_OBJECT_LIST mission_object_all_;
|
|
|
|
CCtrlListWZ* mission_object_list_;
|
|
CCtrlStaticWZ* mission_title_;
|
|
CCtrlVScrollWZ* vertical_scroll_;
|
|
CCtrlButtonWZ* type_button_[TYPE_BUTTON_MAX];
|
|
|
|
FTextRender ftext_render_;
|
|
FTextSentence ftext_sentence_;
|
|
FTextParser ftext_parser_;
|
|
FTextParam ftext_param_;
|
|
int display_type_;
|
|
DWORD map_code_;
|
|
DWORD field_code_;
|
|
DWORD name_code_;
|
|
|
|
TCHAR line_string_[INTERFACE_STRING_LENGTH];
|
|
TCHAR complete_string_[INTERFACE_STRING_LENGTH];
|
|
DWORD tooltip_string_code;
|
|
bool line_update_;
|
|
|
|
DWORD mission_delay_tick_count_;
|
|
bool reflash_line_convert_;
|
|
};
|
|
|
|
inline CControlWZ* uiMissionObject::get_control(POSTYPE AtPos)
|
|
{
|
|
assert(AtPos < DLGPOS_MAX);
|
|
return GetControlWZ(wz_control_id_[AtPos]);
|
|
}
|
|
|
|
inline POSTYPE uiMissionObject::get_control_id_to_pos(WzID wzID)
|
|
{
|
|
for ( int i = 0; i < DLGPOS_MAX ; ++i)
|
|
{
|
|
if ( wz_control_id_[i] == wzID)
|
|
return i;
|
|
}
|
|
return DLGPOS_MAX;
|
|
}
|