256 lines
5.6 KiB
C++
256 lines
5.6 KiB
C++
//-----------------------------------------------------------------------------------------------
|
|
//
|
|
// EditParameterDialog.h
|
|
// * 환경 값 편집 다이얼로그
|
|
//
|
|
//-----------------------------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifdef _EDIT_ENVIRONMENT_
|
|
|
|
//#include <vector>
|
|
#include <Commdlg.h>
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------------
|
|
class WinBitmap
|
|
{
|
|
public:
|
|
enum
|
|
{
|
|
COPY = 0,
|
|
STRECH,
|
|
MAX
|
|
};
|
|
|
|
struct SCreatePR
|
|
{
|
|
SCreatePR();
|
|
SCreatePR(int w_, int h_, BYTE bitCount_, BYTE r_, BYTE g_, BYTE b_);
|
|
|
|
int w;
|
|
int h;
|
|
BYTE bitCount;
|
|
BYTE r, g, b;
|
|
};
|
|
|
|
protected:
|
|
BITMAP m_bitmap; // Bitmap Header Definition
|
|
BYTE* m_pBuffer; // Bitmap total buffer ( Header + Image )
|
|
BOOL m_bLoadOK; // load flag
|
|
BYTE* m_pRaster; // image buffer
|
|
RGBQUAD* m_pPalette; // palette
|
|
BITMAPINFO m_sBmpInfo; //
|
|
BITMAPFILEHEADER m_sBmpFileHeader; //
|
|
BITMAPINFOHEADER m_sBmpInfoHeader; //
|
|
|
|
public:
|
|
RGBQUAD* get_Palette() { return m_pPalette; }
|
|
BITMAPINFO* get_BmpInfo() { return &m_sBmpInfo; }
|
|
BITMAPFILEHEADER* get_BmpFileHeader() { return &m_sBmpFileHeader; }
|
|
BITMAPINFOHEADER* get_BmpInfoHeader() { return &m_sBmpInfoHeader; }
|
|
|
|
// Laster 얻기
|
|
BYTE* getLaster() { return m_pRaster; }
|
|
// 로딩 플래그 얻기
|
|
BOOL getLoadFlag() { return m_bLoadOK; }
|
|
// 로딩 플래그 설정
|
|
void setLoadFlag(BOOL b) { m_bLoadOK = b; }
|
|
|
|
public:
|
|
// 생성
|
|
int create();
|
|
// 메모리 읽기
|
|
int loadMemory(BYTE* pMemBuf, int iSizeMemoryBuf);
|
|
// 파일 읽기
|
|
int loadFile(const char* pName);
|
|
// 파일 읽기
|
|
int load(const TCHAR* pName);
|
|
// 파괴
|
|
int destroy();
|
|
// 이미지 그리기
|
|
int draw(HDC hdc, HWND hWnd, int x, int y, int w, int h, UINT uType);
|
|
|
|
public:
|
|
// 이미지 색깔 바꾸기
|
|
bool changeColor(BYTE r, BYTE g, BYTE b);
|
|
// 아무 이미지가 안들어간 까만색 기본 텍스처 만들기
|
|
bool makeEmptyBitmap(SCreatePR* pPR);
|
|
|
|
public:
|
|
virtual ~WinBitmap();
|
|
WinBitmap();
|
|
};
|
|
|
|
struct SCheckParam
|
|
{
|
|
void set(int id_, HWND hWnd_)
|
|
{
|
|
id = id_; hWnd = hWnd_;
|
|
bCheck = FALSE;
|
|
}
|
|
int id;
|
|
HWND hWnd;
|
|
BOOL bCheck;
|
|
};
|
|
|
|
struct HWNDIDS
|
|
{
|
|
void set(int id_e, HWND hWnd_e, int id_p, HWND hWnd_p)
|
|
{
|
|
id_edit = id_e; hWnd_edit = hWnd_e; id_progress = id_p; hWnd_progress = hWnd_p;
|
|
cost = 0;
|
|
}
|
|
|
|
HWNDIDS();
|
|
HWNDIDS(int id_e, HWND hWnd_e, int id_p, HWND hWnd_p);
|
|
|
|
int id_edit;
|
|
HWND hWnd_edit;
|
|
int id_progress;
|
|
HWND hWnd_progress;
|
|
|
|
int cost;
|
|
};
|
|
|
|
struct SColorBar
|
|
{
|
|
SColorBar(HWND _hParent, int* pEditCtrID, int* pProgressCtrID, int nCheckCtrID, WinBitmap::SCreatePR* pPR);
|
|
~SColorBar();
|
|
|
|
void Paint(HDC hdc);
|
|
BOOL ColorBarMessageProc(HWND, UINT, WPARAM, LPARAM);
|
|
void UpdateColorEdit(int id);
|
|
void UpdateColorProgress(int id);
|
|
|
|
enum COLORID
|
|
{
|
|
R_COLORID = 0,
|
|
G_COLORID,
|
|
B_COLORID,
|
|
MAX_COLORID
|
|
};
|
|
enum CONTRLID
|
|
{
|
|
R_CONTROL = 0,
|
|
G_CONTROL,
|
|
B_CONTROL,
|
|
MAX_CONTROL
|
|
};
|
|
|
|
HWND hParent;
|
|
SCheckParam hCheck;
|
|
HWNDIDS hIDControl[ MAX_CONTROL ];
|
|
BYTE color[ MAX_COLORID ];
|
|
RECT rtColor;
|
|
WinBitmap colorBox;
|
|
|
|
CHOOSECOLOR COL;
|
|
};
|
|
|
|
class CEditParameterDialog
|
|
{
|
|
public:
|
|
CEditParameterDialog(void);
|
|
~CEditParameterDialog(void);
|
|
|
|
void GetGameEnvironmentParameter();
|
|
void SetGameEnvironmentParameter(int nType);
|
|
void CopyGameEnvironmentParameter();
|
|
|
|
void Show();
|
|
void End();
|
|
void SetParam(HINSTANCE hInst, HWND hWnd);
|
|
void Create(HWND hWnd);
|
|
void Destroy();
|
|
void Paint(HWND hWnd);
|
|
void Init(HWND hWnd);
|
|
|
|
void initCost(HWNDIDS* pIDSet, int min, int max);
|
|
void UpdateEdit(HWNDIDS* pIDSet);
|
|
void UpdateProgress(HWNDIDS* pIDSet);
|
|
|
|
public:
|
|
int LoadData();
|
|
int SaveData();
|
|
void ApplyDataTool(int nType);
|
|
void ApplyDataToolCore(int nType);
|
|
void GetFogInfo(HWNDIDS* pStart, HWNDIDS* pEnd, char* pBuffer);
|
|
void GetSound(HWNDIDS* pDry, HWNDIDS* pWet, char* pBuffer);
|
|
void GetPercent(HWNDIDS* pCtrl, char* pBuffer);
|
|
void GetRGB(SColorBar* pColorBar, char* pBuffer);
|
|
void GetOriginDataEditing();
|
|
void ShowFogModel(bool bShow, int nFogType);
|
|
|
|
public:
|
|
HWND GetEnvironmentEditHandle() { return m_hEnvironmentEdit; }
|
|
bool GetLoadedSataFlag() { return m_bInitData; }
|
|
bool GetApplyFlag();
|
|
void SetApplyFlag(bool b);
|
|
|
|
BOOL ColorBarMessageProc(HWND, UINT, WPARAM, LPARAM);
|
|
BOOL MessageProc(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
public:
|
|
enum APPLY_TYPE
|
|
{
|
|
APPLY_ORIGIN = 0,
|
|
APPLY_EDITING,
|
|
APPLY_BOTH,
|
|
APPLY_MAX
|
|
};
|
|
enum DATA_TYPE
|
|
{
|
|
DATA_ORIGIN = 0,
|
|
DATA_EDITING,
|
|
DATA_MAX
|
|
};
|
|
enum SLIDER_EDIT
|
|
{
|
|
SE_START_FOG = 0,
|
|
SE_END_FOG,
|
|
SE_DRY_SOUND_VLOUME,
|
|
SE_WET_SOUND_VLOUME,
|
|
SE_SKY_MID,
|
|
SE_MAX
|
|
};
|
|
|
|
enum COLORBAR
|
|
{
|
|
CB_SKY_START = 0,
|
|
CB_SKY_MID,
|
|
CB_SKY_END,
|
|
CB_FOG,
|
|
CB_CLOUD,
|
|
CB_LIGHT_DFF,
|
|
CB_LIGHT_SPC,
|
|
CB_LIGHT_AMB,
|
|
CB_MAX
|
|
};
|
|
|
|
struct SParam
|
|
{
|
|
std::vector<SColorBar*> vcColorCtrl;
|
|
std::vector<HWNDIDS*> vSilderEdit;
|
|
};
|
|
|
|
private:
|
|
HWND m_hEnvironmentEdit;
|
|
HINSTANCE m_hInst;
|
|
HWND m_hWnd;
|
|
HWND m_hWndDialog;
|
|
bool m_bInitData;
|
|
bool m_bApply;
|
|
SParam m_aParam[ DATA_MAX ];
|
|
};
|
|
|
|
extern CEditParameterDialog& GetEditParameterDialog();
|
|
|
|
|
|
INT_PTR CALLBACK EditParameterDialogProc(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
|
|
|
|
#endif _EDIT_ENVIRONMENT_ |