Files
2022-10-26 12:25:11 +08:00

137 lines
3.1 KiB
C++

#pragma once
#include "uibase.h"
#include "uiDominationZoneMarkDlg/ZoneMarkRewardInfo.h"
class uiTargetZoneMarkDialog: public uiBase
{
#ifdef _NA_000000_20130114_RENEWER_UI
public:
struct CalculatedOption
{
DWORD OptionKind;
int OptionValue;
int OptionRatio;
DWORD OptionNC;
CalculatedOption()
{
OptionKind = 0;
OptionValue = 0;
OptionRatio = 0;
OptionNC = 0;
}
};
struct OptionStringMark
{
TCHAR option_name_[INTERFACE_STRING_LENGTH];
OptionStringMark()
{
memset(option_name_,0,sizeof(TCHAR)*INTERFACE_STRING_LENGTH);
}
void SetOptionMark(const TCHAR* option_string)
{
memcpy(option_name_,option_string,sizeof(TCHAR)*strlen(option_string));
}
};
typedef STLX_MAP<DWORD, CalculatedOption> CalculatedOptionMap;
#endif
public:
typedef std::vector<REWARD_OPTION> REWARD_OPTION_VECTOR;
typedef std::vector<REWARD_OPTION>::iterator REWARD_OPTION_VECTOR_ITR;
private:
enum eDIALOG_POS
{
#ifdef _NA_000000_20130114_RENEWER_UI
DLGPOS_ZONEMARK_PICl00,
DLGPOS_ZONEMARK_PIC000,
DLGPOS_ZONEMARK_PIC001,
#ifdef _NA_008334_20150608_SONNENSCHEIN
DLGPOS_ZONEMARK_PIC002,
DLGPOS_ZONEMARK_PIC003,
#endif //_NA_008334_20150608_SONNENSCHEIN
#else
DLGPOS_ZONEMARK_PIC1,
DLGPOS_ZONEMARK_PIC2,
DLGPOS_ZONEMARK_PIC3,
DLGPOS_ZONEMARK_PIC4,
DLGPOS_ZONEMARK_PIC5,
DLGPOS_ZONEMARK_PIC6,
DLGPOS_ZONEMARK_PIC7,
DLGPOS_ZONEMARK_PIC8,
DLGPOS_ZONEMARK_PIC9,
DLGPOS_ZONEMARK_PIC10,
DLGPOS_ZONEMARK_PIC11,
DLGPOS_ZONEMARK_PIC12,
DLGPOS_ZONEMARK_PIC13,
DLGPOS_ZONEMARK_PIC14,
DLGPOS_ZONEMARK_PIC15,
DLGPOS_ZONEMARK_PIC16,
#endif
DIALOG_MAX,
};
enum
{
#ifdef _NA_000000_20130114_RENEWER_UI
MAX_ZONEMARK = 16,
#else
MAX_ZONEMARK = (DLGPOS_ZONEMARK_PIC16 - DLGPOS_ZONEMARK_PIC1) + 1,
#endif
};
public:
uiTargetZoneMarkDialog(InterfaceManager *pUIMan);
virtual ~uiTargetZoneMarkDialog();
public:
virtual void Init(CDrawBase* pDrawBase);
virtual void OnShowWindow(BOOL val);
virtual void OnRenderSolarDialog();
void Clear();
void SetZoneMarkInfo(STLX_VECTOR<MAPCODE>& domination_state_info
#ifdef _NA_008334_20150608_SONNENSCHEIN
, BYTE sonnenschein_level
#endif //_NA_008334_20150608_SONNENSCHEIN
);
#ifdef _NA_000000_20130114_RENEWER_UI
virtual VOID Release();
void returnImageIndextoRect(int mark_count,int* score_index);
int CheckModifyReturnValue(int mark_count,int* array_count);
void render_mark_count_Image();
void option_domination_calu();
virtual void OnUpdateSolarDialog();
CalculatedOptionMap& calculated_option_map() { return calculated_option_map_; }
#endif
private:
private:
static WzID constols_id_[DIALOG_MAX];
#ifdef _NA_000000_20130114_RENEWER_UI
HANDLE handle_text_Texture_;
int size_zone_marker_;
CalculatedOptionMap calculated_option_map_;
std::vector<OptionStringMark> calculate_option_list_;
#else
CCtrlPictureWZ* zonemark_picture_[MAX_ZONEMARK];
#endif
DWORD max_count_zonemark_;
ZoneMarkRewardInfo player_zonemark_reward_info_;
#ifdef _NA_008334_20150608_SONNENSCHEIN
BYTE sonnenschein_level_;
#endif //_NA_008334_20150608_SONNENSCHEIN
};