895 lines
36 KiB
C++
895 lines
36 KiB
C++
|
|
#pragma once
|
|
|
|
//#include <string>
|
|
//#include <vector>
|
|
//#include "SGameMessageUI.h"
|
|
|
|
namespace
|
|
{
|
|
const int DEFAULT_POS = -1;
|
|
}
|
|
|
|
namespace SGAME_OPT_DATA
|
|
{
|
|
enum APPLY_MODE
|
|
{
|
|
MODE_ENVIRONMENT = 0,
|
|
MODE_PLAY,
|
|
MODE_UI,
|
|
};
|
|
|
|
const int c_nMaxChannel = 5;
|
|
const int c_nMaxChatOption = 19;
|
|
|
|
//=============================================================================================================================================
|
|
/// 윈도우 위치를 디폴트로 쎄팅해야할 것들(알파처러 해야할 윈도우도 이것으로 같이 처리하자)
|
|
enum
|
|
{
|
|
Messanger,
|
|
Inventory,
|
|
Creature,
|
|
CreatureInfo,
|
|
CreatureSkill,
|
|
Quest,
|
|
Motion,
|
|
Char,
|
|
Skill,
|
|
Map,
|
|
ItemCombine,
|
|
Shop,
|
|
Store,
|
|
Storage,
|
|
Party,
|
|
Equipment, // 장비창. bintitle. 2010.10.07.
|
|
NONE_MOVE_WIN, ///< 이 위에는 움직이지 못하게 할 윈도우들 / or / 윈도우 위치 초기화시 초기화를 해줄 윈도우들
|
|
|
|
System,
|
|
SkillFund,
|
|
ShopKart,
|
|
StorageKart,
|
|
CraetureForm,
|
|
CratureDetail,
|
|
CratureSkill,
|
|
CreatureSkillFund,
|
|
QuestInfo,
|
|
QuestReward,
|
|
CashStorage,
|
|
DungeonStone,
|
|
DungeonUnit,
|
|
DungeonUnitMini,
|
|
DungeonUnitInvitation,
|
|
GuildList,
|
|
TitleMain,
|
|
TitleGainResult,
|
|
ADD_ALPHA_WIN, ///< NONE_MOVE_WIN 에서 ADD_ALPHA_WIN까지는 움직이는거와 함께 알파 처리해야할 것들(스킬창은 위로 되지만 스킬투자창은 따로)
|
|
|
|
SysMenu,
|
|
Option,
|
|
MAX ///< ADD_ALPHA_WIN 에서 MAX까지는 윈도우 위치를 Default로 쎄팅해줘야 하는 것들
|
|
};
|
|
|
|
const int c_nWindowOption[MAX][3]
|
|
={
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_COMMUNITY, 788, 217, ///< Messanger//임시주석
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_INVENTORY, 626, 108, ///< Inventory
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CREATURE, 3000, 540, ///< Creature (3000같은 어이없는 숫자를 넣은것은 화면 우측 끝에 붙이기 위해서 -N4-)
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CREATURE_PAGE, 50, 192, ///< CreatureInfo
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CREATURE_SKILL, 50, 192, ///< CratureSkill
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_QUEST_LIST, 13, 146, ///< Quest
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_MOTION, 366, 222, ///< Motion
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CHARINFO, 30, 140, ///< Char
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_SKILL, 40, 166, ///< Skill
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_WORLDMAP, 222, 34, ///< Map
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_ITEMCOMBINE, 412, 261, ///< ItemCombine
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_SHOP, 35, 135, ///< Shop
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_STORE_CLIENT, 35, 95, ///< Store
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_STORAGE, 518, 367, ///< Storage
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_PARTY, 0, 350, ///< Party
|
|
// SIMSG_TOGGLE_UIWINDOW::UIWINDOW_EQUIPMENT, 300, 108, ///< Equipment // 장비창. bintitle. 2010.10.07.
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_EQUIPMENT, 280, 108, ///< Equipment // 장비창. servantes. 2010.12.10.
|
|
-1, -1, -1, ///< NONE_MOVE_WIN
|
|
//---------------------------------------------------------------------------------------------- 윈도우 움직이는 설정관련 ↑
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_SYSTEM, -1, -1, ///< System
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_SKILLFUND, -1, -1, ///< SkillFund
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_SHOPKART, -1, -1, ///< ShopKart
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_STORAGEKART, -1, -1, ///< StorageKart
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CREATUREFORM, -1, -1, ///< CraetureForm
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CREATURE_DETAIL, -1, -1, ///< CratureDetail
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CREATURE_SKILLFUND, -1, -1, ///< CreatureSkillFund
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_QUEST_INFO, -1, -1, ///< QuestInfo
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_QUEST_REWARD, -1, -1, ///< QuestReward
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_CASH_STORAGE, -1, -1, ///< CashStorage
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_DUNGEON_STONE, -1, -1, ///< DungeonStone
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_DUNGEON_UNIT, -1, -1, ///< DungeonUnit
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_DUNGEON_UNIT_MINI, -1, -1, ///< DungeonUnitMini // 공대창 미니 2011. 10. 10 - marine
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_DUNGEON_UNIT_INVITATION, -1, -1, ///< DungeonUnitMini // 공대 초대창 2011. 10. 20 - marine
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_GUILD_MEMBER_LIST, -1, -1, ///< GuildMemberList // 2011. 10. 26 - marine
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_TITLE_MAIN, -1, -1, // Title // 2012. 4. 4 - marine 호칭
|
|
SIMSG_TOGGLE_UIWINDOW::UIWINDOW_TITLE_GAIN_RESULT, -1, -1, // 타이틀 획득 알림
|
|
-1, -1, -1, ///< ADD_ALPHA_WIN
|
|
//---------------------------------------------------------------------------------------------- 알파 처리 관련 ↑
|
|
0, -1, -1, ///< SysMenu
|
|
0, -1, -1, ///< Option
|
|
};
|
|
|
|
// 게임 환경 옵션 관련 ===================================================
|
|
const int MaxBrightPower = 5;
|
|
const int MaxBakGrondDis = 5;
|
|
const int MaxCharDis = 4;
|
|
const int MaxTextureQuality = 3;
|
|
const int MaxBackSound = 10;
|
|
const int MaxEffectSound = 10;
|
|
const int MaxEnvSound = 10;
|
|
|
|
// 배경 표시거리 세트
|
|
const int LandDis[5] = {1,1,2,3,4};
|
|
const int PropDis[5] = {1,2,3,4,4};
|
|
const int TreeDis[5] = {1,3,4,4,4};
|
|
const int GraseDis[5] = {0,1,2,3,3};
|
|
const int TreeQuality[5] = {1,3,3,4,4};
|
|
|
|
// 택스처 품질 세트에 따른 고급 리소스 옵션 / 셀프 쉐도우 품질
|
|
const int RscQuality[3] = {0,1,1};
|
|
const int SlfeShadowQuality[3] = {0,1,2};
|
|
//=========================================================================
|
|
|
|
|
|
//게임 플레이 옵션 관련 ===================================================
|
|
const int MaxTapCase = 2;
|
|
const int MaxWinAlpha = 5;
|
|
const int MaxWeatherQuality = 4;
|
|
const float AlphaLevel[5] = {1.0f, 0.9f, 0.7f , 0.5f ,0.4f};
|
|
//=========================================================================
|
|
|
|
};
|
|
|
|
struct _OPT_DATA
|
|
{
|
|
_OPT_DATA()
|
|
{
|
|
nPresetOption = nResolution_Width = nResolution_Height = nRefreshRate = nWinMode = nBright = nWinBright = -1;
|
|
nBackGrondDis = nTerrainDis = nPropDis = nSpeedDis = nGrassDis = nSpeedQual = nAvatarDis = nShadowDis = -1;
|
|
nMipBias = nResourceQual = nSelfShadowQual = nGlowQual = nWaterQual = nLowShadow = -1;
|
|
nTreeAlpha = nEnhance = nStateEffect = nStateEffectPlayer = nStateEffectParty = nStateEffectEnemy = nShadow = -1;
|
|
// nAllMute = nRepeat = nBGM_Volume = nSFX_Volume = nBGM_Mute = nSFX_Mute = nLightMap = nRenderGrass = nRenderGrass = -1;
|
|
nAllMute = nBGM_Volume = nSFX_Volume = nBGM_Mute = nSFX_Mute = nLightMap = nRenderGrass = nRenderGrass = -1;// 2011.11.29 - servantes : 옵션 nui에 해당 효과 없음 / nRepeat 삭제
|
|
nEffect = nEffectPlayer = nEffectParty = nEffectEnemy = -1;
|
|
nResolution_OldWidth = nResolution_OldHeight = -1; //servantes 2010.11.26
|
|
nFullWinMode = 0; // 전체 창 모드 kkr
|
|
|
|
nFaceAni = 0;
|
|
|
|
nWeatherQuality = 3; ///< [sonador] 2007.05.30 날씨 효과 옵션 초기화
|
|
nCameraCollision = 1;
|
|
|
|
nTABKey = nEnterChat = nChipAttack = nTrade = nPVP = nWheel = nChatHide = nMobFace = nChatBalloon = nTip = nAutoTarget = -1;
|
|
// 2010.05.20 - prodongi
|
|
/*nHelm = */nMantle = nHPGage = nPlayerGage = nMobGage = nTargetGage = nName = nPlayerName = nCreatureName = -1;
|
|
nMobName = nNPCName = ndamage = nPlayerDM = nCreatureDM = nPartyDM = nWinLock = nWinAlpha = -1;
|
|
|
|
nSelfBoothType = 1;
|
|
nTownLimit = 0;
|
|
|
|
nCriticalCamera = 1;
|
|
//nAvatarDeco = 1;
|
|
|
|
nLobby_Theme = -1;
|
|
|
|
nRenderOtherPlayer = 0;
|
|
|
|
nTitleShow = 0;
|
|
isShowSelectOutLine = 1;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// 게임 환경 관련 옵션
|
|
int nPresetOption; ///< 프리셋 모드 (0 이면 유저 세팅)
|
|
|
|
int nResolution_Width; ///< 해상도 가로
|
|
int nResolution_Height; ///< 해상도 세로
|
|
int nResolution_OldWidth; ///< 해상도 가로 servantes 2010.11.26
|
|
int nResolution_OldHeight; ///< 해상도 세로
|
|
|
|
int nRefreshRate; ///< 화면 재생 빈도
|
|
int nWinMode; ///< Full, Window
|
|
int nFullWinMode; ///< 전체창모드 kkr
|
|
|
|
int nBright; ///< 화면 밝기
|
|
int nWinBright; ///< 바탕화면 밝기 적용
|
|
|
|
int nBackGrondDis; ///< 배경 표시거리
|
|
int nTerrainDis; ///< 지면 표시거리
|
|
int nPropDis; ///< 구조물 표시거리
|
|
int nSpeedDis; ///< 나무 표시거리
|
|
int nGrassDis; ///< 풀 표시거리
|
|
int nSpeedQual; ///< 나무 품질
|
|
|
|
int nAvatarDis; ///< 캐릭터 표시거리
|
|
int nShadowDis; ///< 그림자 표시거리
|
|
|
|
int nMipBias; ///< 텍스쳐 밉바이어스
|
|
int nResourceQual; ///< 리소스 품질
|
|
int nSelfShadowQual; ///< 셀프 그림자 품질
|
|
|
|
int nGlowQual; ///< Glow 품질
|
|
|
|
int nWaterQual; ///< 물 반사 효과
|
|
|
|
int nLowShadow; ///< 저사양 그림자
|
|
|
|
int nTownLimit; ///< 마을에서 프랍거리 제한이 자동으로 설정
|
|
|
|
int nTreeAlpha; ///< 나무 알파처리(투명화)
|
|
|
|
int nEnhance; ///< 강화 효과 표시
|
|
|
|
int nStateEffect; ///< 지속효과 표시
|
|
int nStateEffectPlayer; ///< 지속효과 표시(자신과 크리처)
|
|
int nStateEffectParty; ///< 지속효과 표시(파티)
|
|
int nStateEffectEnemy; ///< 지속효과 표시(적)
|
|
|
|
int nShadow; ///< 그림자 표시
|
|
|
|
int nAllMute; ///< 전체 음소거
|
|
// int nRepeat; ///< 현재음 반복 // 2011.11.29 - servantes : 옵션 nui에 해당 효과 없음 / 주석처리
|
|
int nBGM_Volume; ///< 배경음 볼륨
|
|
int nSFX_Volume; ///< 효과음 볼륨
|
|
int nENVS_Volume; ///< 환경음 볼륨
|
|
int nMASTER_Volume; ///< 전체음 볼륨
|
|
|
|
int nBGM_Mute; ///< 배경음 소거
|
|
int nSFX_Mute; ///< 효과음 소거
|
|
int nENVS_Mute; ///< 환경음 소거
|
|
int nLightMap; ///< LightMap
|
|
|
|
int nRenderTree; ///< nRenderTree
|
|
int nRenderGrass; ///< nRenderGrass
|
|
|
|
int nEffect; ///< 이펙트 표시
|
|
int nEffectPlayer; ///< 이펙트 표시(자신과 크리처)
|
|
int nEffectParty; ///< 이펙트 표시(파티)
|
|
int nEffectEnemy; ///< 이펙트 표시(적)
|
|
|
|
int nFaceAni; ///< 눈 깜빡임 표시
|
|
|
|
int nRenderOtherPlayer; ///< 자신외 다른 플레이어 렌더 표시
|
|
int nWeatherQuality; ///< [sonador] 2007.05.30 날씨효과 품질
|
|
int nCameraCollision; ///< 카메라 충돌 옵션
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// 게임 플레이 관련 옵션
|
|
int nTABKey; ///< TAB키 설정
|
|
int nEnterChat; ///< 앤터체팅사용
|
|
int nChipAttack; ///< 포스칩 후 자동 공격
|
|
int nTrade; ///< 거래 및 초대 거절
|
|
int nPVP; ///< 대련신청_거부
|
|
int nWheel; ///< 휠방향_반전
|
|
int nChatHide; ///< 체팅창 자동숨김
|
|
int nMobFace; ///< 몬스터 페이스컷
|
|
int nSimpleRak; ///< 라크 랜더
|
|
int nChatBalloon; ///< 말풍선 표시
|
|
int nTip; ///< 게임팁 표시
|
|
// 2010.05.20 - prodongi
|
|
//int nHelm; ///< 투구 보이기
|
|
int nMantle; ///< 망토 보이기
|
|
int nHPGage; ///< 체력게이지 표시
|
|
int nPlayerGage; ///< 자신과 파티원
|
|
int nMobGage; ///< 몬스터
|
|
int nTargetGage; ///< 타겟
|
|
int nName; ///< 이름 표시
|
|
int nPlayerName; ///< 플레이어
|
|
int nCreatureName; ///< 크리처
|
|
int nMobName; ///< 몬스터
|
|
int nNPCName; ///< NPC
|
|
int ndamage; ///< 데미지 표시
|
|
int nPlayerDM; ///< 자신
|
|
int nCreatureDM; ///< 크리처
|
|
int nPartyDM; ///< 파티원
|
|
int nWinLock; ///< 현재윈도우장금
|
|
int nWinAlpha; ///< 윈도우 투명도 설정
|
|
int nSelfBoothType; ///< 상점 랜더링 관련
|
|
int nCriticalCamera; ///< 크리티칼 카메라 진동
|
|
//int nAvatarDeco; ///< 꾸미기 아이템 적용 // 2010.10.11. 게임플레이옵션에서 "꾸미기보이기" 제거.
|
|
int nAutoTarget;
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// 로비
|
|
int nLobby_Theme;
|
|
int nTitleShow;
|
|
int isShowSelectOutLine;
|
|
};
|
|
|
|
enum BOOTH_TYPE
|
|
{
|
|
RENDER_NONE_BOOTH = 0, ///< 상점모드 중일 때 랜더링을 전혀 안하겠다는 것
|
|
RENDER_SIMPLE_BOOTH, ///< 간단한 리소스 상점을 랜더
|
|
RENDER_DETAIL_BOOTH, ///< 기존의 상점 리소스로 랜더
|
|
RENDER_AVATAR_BOOTH, ///< 그냥 아바타로 랜더
|
|
};
|
|
|
|
struct DISP_MODE
|
|
{
|
|
UINT width;
|
|
UINT height;
|
|
std::vector< UINT > refreshrate_list;
|
|
};
|
|
|
|
class SINIManager
|
|
{
|
|
public:
|
|
SINIManager();
|
|
~SINIManager();
|
|
|
|
// attribute
|
|
public:
|
|
std::string m_strFile;
|
|
std::string m_strSection;
|
|
std::string m_strGlobalSection;
|
|
|
|
// operators
|
|
public:
|
|
bool IsLoading () { return ( m_strFile.size() > 0 ); };
|
|
bool LoadOptionFile ( const char* szFileName = "\\rappelz_v1.opt");
|
|
bool LoadOptionFilePath( const char* szFilePath );
|
|
void SetSection ( const char* szName ) { m_strSection = szName; };
|
|
|
|
bool SetValueInt ( std::string strkey, int nValue, bool bGlobal = false );
|
|
int GetValueInt ( std::string strKey, bool bGlobal = false );
|
|
|
|
bool SetValueString ( std::string strKey, std::string strValue, bool bGlobal = false );
|
|
void GetValueString ( std::string strKey, char* szBuf, bool bGlobal = false );
|
|
};
|
|
|
|
class SGameOption
|
|
{
|
|
public:
|
|
SGameOption();
|
|
~SGameOption();
|
|
|
|
public:
|
|
/// 캐릭별 저장 게임 월드에서 호출해 준다(캐릭이름) ======
|
|
void Load( const char* szName );
|
|
/// 각 모드별(그래픽/사운드/UI) 로 실시간 저장한다 =======
|
|
void Apply( int nMode );
|
|
void SetOptionData( int nMode );
|
|
/// 각 채팅 타입별 저장
|
|
void ChatOptionApply( int nTabType, std::string strValue );
|
|
void ChatOptionApply( int nTabType, bool * pCehck );
|
|
|
|
void InitChattinSet();
|
|
// attribute
|
|
public:
|
|
|
|
const _OPT_DATA & GetOptData() { return m_curData; }
|
|
const _OPT_DATA & GetDefOptData() { return m_defData; }
|
|
void GetDefPlayOptData(_OPT_DATA & data);
|
|
|
|
void SettingForMinimumSystem();
|
|
void SettingForMaximumSystem();
|
|
|
|
enum {
|
|
PRESET_LOWEST = 1,
|
|
PRESET_LOW,
|
|
PRESET_MID,
|
|
PRESET_HIGH,
|
|
PRESET_HIGHEST
|
|
};
|
|
bool GetPresetOptData( int level, _OPT_DATA& data );
|
|
|
|
void SetOptData( _OPT_DATA & optData ) { m_curData = optData; }
|
|
|
|
int GetResolution_Index( int nWidth, int nHeight );
|
|
|
|
bool CheckBoolValue( int nValue, bool bDefaultValue );
|
|
int CheckIntValue( int nValue, int bDefaultValue );
|
|
//Get-------------------------------------------
|
|
int GetPresetOption() const { return m_curData.nPresetOption; };
|
|
|
|
int GetResolution_Width() const { return m_curData.nResolution_Width; } ///< 해상도 가로
|
|
int GetResolution_Height() const { return m_curData.nResolution_Height; } ///< 해상도 세로
|
|
int GetResolution_OldWidth() const { return m_curData.nResolution_OldWidth; } ///< 해상도 가로 servantes 2010.11.26
|
|
int GetResolution_OldHeight() const { return m_curData.nResolution_OldHeight; } ///< 해상도 세로
|
|
|
|
int GetRefreshRate() const { return m_curData.nRefreshRate; }; ///< 화면 재생 빈도
|
|
int GetWinMode() const { return m_curData.nWinMode; }; ///< Full, Window
|
|
int GetFullWindowMode() const { return m_curData.nFullWinMode; }; ///< 전체 창 모드 kkr
|
|
|
|
int GetTerrainViewDistance() const { return m_curData.nTerrainDis; }; ///< 지면 표시거리
|
|
int GetPropViewDistance() const { return m_curData.nPropDis; }; ///< 구조물 표시거리
|
|
int GetSpeedTreeViewDistance() const { return m_curData.nSpeedDis; }; ///< 나무 표시거리
|
|
int GetGrassViewDistance() const { return m_curData.nGrassDis; }; ///< 풀 표시거리
|
|
int GetAvatarViewDistance() const { return m_curData.nAvatarDis; }; ///< 캐릭터 표시거리
|
|
int GetShadowViewDistance() const { return m_curData.nShadowDis; }; ///< 그림자 표시거리
|
|
|
|
int GetSpeedTreeQuality() const { return m_curData.nSpeedQual; }; ///< 나무 품질
|
|
int GetTextureMipBias() const { return m_curData.nMipBias; }; ///< 텍스쳐 밉 바이어스
|
|
int GetSelfShadowQuality() const { return m_curData.nSelfShadowQual; }; ///< 셀프 쉐도우 품질
|
|
int GetGlowQuality() const { return m_curData.nGlowQual; }; ///< Glow 품질
|
|
int GetLowShadow() const { return m_curData.nLowShadow; }; ///< 저사양 그림자
|
|
|
|
int GetWaterQuality() const { return m_curData.nWaterQual; }; ///< 물 반사 효과
|
|
int GetResourceQuality() const { return m_curData.nResourceQual; }; ///< 리소스 품질
|
|
|
|
int GetBright() const { return m_curData.nBright; }; ///< 화면 밝기
|
|
|
|
int IsStateEffectRender() const { return m_curData.nStateEffect; }; ///< 지속효과 이펙트 랜더
|
|
int IsStatePlayerEftRend() const { return m_curData.nStateEffectPlayer; }; ///< 자신과 크리처 지속효과 이펙트 랜더
|
|
int IsStatePartyEftRend() const { return m_curData.nStateEffectParty; }; ///< 파티원 이펙트 랜더
|
|
int IsStateEnemyEftRend() const { return m_curData.nStateEffectEnemy; }; ///< 적 이펙트 랜더
|
|
|
|
int IsEnhanceRende() const { return m_curData.nEnhance; }; ///< 인첸된 아이템 강화효과 이펙트 랜더
|
|
|
|
int GetRenderTree() const { return m_curData.nRenderTree; }; ///< 나무 표시
|
|
int GetRenderGrass() const { return m_curData.nRenderGrass; }; ///< 풀 표시
|
|
|
|
int IsEffectRender() const { return m_curData.nEffect; }; ///< 이펙트 랜더
|
|
int IsPlayerEftRend() const { return m_curData.nEffectPlayer; }; ///< 자신과 크리처 이펙트 랜더
|
|
int IsPartyEftRend() const { return m_curData.nEffectParty; }; ///< 파티원 이펙트 랜더
|
|
int IsEnemyEftRend() const { return m_curData.nEffectEnemy; }; ///< 적 이펙트 랜더
|
|
|
|
int GetFaceAni() const { return m_curData.nFaceAni; };
|
|
|
|
int GetRenderOtherPlayerType() { return m_curData.nRenderOtherPlayer; }
|
|
int GetWeatherQuality() const { return m_curData.nWeatherQuality; }
|
|
int GetCameraCollision() const { return m_curData.nCameraCollision; }
|
|
int GetTitleNameShow() const { return m_curData.nTitleShow; }
|
|
bool NotifyTitle(int changeOpt);
|
|
|
|
bool isShowSelectOutLine() const { return m_curData.isShowSelectOutLine == 1; }
|
|
//Set-------------------------------------------
|
|
void SetPresetOption( int nPresetLevel ) { m_curData.nPresetOption = nPresetLevel; };
|
|
|
|
void SetResolution_Width( int nWidth ) { m_curData.nResolution_Width = nWidth; } ///< 해상도 가로
|
|
void SetResolution_Height( int nHeight ) { m_curData.nResolution_Height = nHeight; } ///< 해상도 세로
|
|
void SetResolution_OldWidth( int nWidth ) { m_curData.nResolution_OldWidth = nWidth; } ///< 해상도 가로 servantes 2010.11.26
|
|
void SetResolution_OldHeight( int nHeight ) { m_curData.nResolution_OldHeight = nHeight; } ///< 해상도 세로
|
|
|
|
void SetRefreshRate( int nLevel ) { m_curData.nRefreshRate = nLevel; }; ///< 화면 재생 빈도
|
|
void SetWinMode( int nLevel ) { m_curData.nWinMode = nLevel; }; ///< Full, Window
|
|
void SetFullWinMode( int nLevel ) { m_curData.nFullWinMode = nLevel; }; ///< 전체 창 모드 kkr
|
|
|
|
void SetTerrainViewDistance( int nLevel ) { m_curData.nTerrainDis = nLevel; }; ///< 지면 표시거리
|
|
void SetPropViewDistance( int nLevel ) { m_curData.nPropDis = nLevel; }; ///< 구조물 표시거리
|
|
void SetSpeedTreeViewDistance( int nLevel ) { m_curData.nSpeedDis = nLevel; }; ///< 나무 표시거리
|
|
void SetGrassViewDistance( int nLevel ) { m_curData.nGrassDis = nLevel; }; ///< 풀 표시거리
|
|
void SetAvatarViewDistance( int nLevel ) { m_curData.nAvatarDis = nLevel; }; ///< 캐릭터 표시거리
|
|
void SetShadowViewDistance( int nLevel ) { m_curData.nShadowDis = nLevel; }; ///< 그림자 표시거리
|
|
|
|
void SetSpeedTreeQuality( int nLevel ) { m_curData.nSpeedQual = nLevel; }; ///< 나무 품질
|
|
void SetTextureMipBias( int nLevel ) { m_curData.nMipBias = nLevel; }; ///< 텍스쳐 밉 바이어스
|
|
void SetSelfShadowQuality( int nLevel ) { m_curData.nSelfShadowQual = nLevel; }; ///< 셀프 쉐도우 품질
|
|
void SetGlowQuality( int nLevel ) { m_curData.nGlowQual = nLevel; }; ///< Glow 품질
|
|
void SetLowShadow( int nLevel ) { m_curData.nLowShadow = nLevel; }; ///< 저사양 그림자
|
|
void SetShadow( int nLevel ) { m_curData.nShadow = nLevel; };
|
|
|
|
void SetWaterQuality( int nLevel ) { m_curData.nWaterQual = nLevel; }; ///< 물 반사 효과
|
|
void SetResourceQuality( int nLevel ) { m_curData.nResourceQual = nLevel; }; ///< 리소스 품질
|
|
|
|
void SetBright( int nLevel ) { m_curData.nBright = nLevel; }; ///< 화면 밝기
|
|
|
|
void SetRenderTree( int nOn ) { m_curData.nRenderTree = nOn; }; ///< 나무 표시
|
|
void SetRenderGrass( int nOn ) { m_curData.nRenderGrass = nOn; }; ///< 풀 표시
|
|
void SetLight( int nOn ) { m_curData.nLightMap = nOn; }; ///< 라이트멥
|
|
|
|
void SetFaceAni( int nLevel ) { m_curData.nFaceAni = nLevel; };
|
|
|
|
// 사운드 ===================================
|
|
int GetBGM_Volume() const { return m_curData.nBGM_Volume; };
|
|
int GetSFX_Volume() const { return m_curData.nSFX_Volume; };
|
|
int GetENVS_Volume() const { return m_curData.nENVS_Volume; };
|
|
int GetMASTER_Volume() const { return m_curData.nMASTER_Volume; };
|
|
bool GetAll_Mute() const { return (m_curData.nAllMute == 1) ? true : false; };
|
|
bool GetBGM_Mute() const { return (m_curData.nBGM_Mute == 1) ? true : false; };
|
|
bool GetSFX_Mute() const { return (m_curData.nSFX_Mute == 1) ? true : false; };
|
|
bool GetENVS_Mute() const { return (m_curData.nENVS_Mute == 1) ? true : false; };
|
|
|
|
void SetBGM_Volum( int nLevel ) { m_curData.nBGM_Volume = nLevel; };
|
|
void SetSFX_Volum( int nLevel ) { m_curData.nSFX_Volume = nLevel; };
|
|
void SetAll_Mute( int nLevel ) { m_curData.nAllMute = nLevel; };
|
|
void SetBGM_Mute( int nLevel ) { m_curData.nBGM_Mute = nLevel; };
|
|
void SetSFX_Mute( int nLevel ) { m_curData.nSFX_Mute = nLevel; };
|
|
void SetRenderOtherPlayer( int nRender ){ m_curData.nRenderOtherPlayer = nRender; };
|
|
|
|
// 게임플레이 관련 ===================================
|
|
bool IsWinLock() const { return (m_curData.nWinLock == 1) ? true : false; }; ///< 윈도우 장금
|
|
bool IsChatHide() const { return (m_curData.nChatHide == 1) ? true : false; }; ///< 쳇팅창 숨김
|
|
bool IsMobFace() const { return (m_curData.nMobFace == 1) ? true : false; }; ///< 쳇팅창 숨김
|
|
bool IsEnterChat() const { return (m_curData.nEnterChat == 1) ? true : false; }; ///< 엔터 체팅
|
|
int GetTapKeyType() const { return m_curData.nTABKey; }; ///< 탭키 설정
|
|
// 2010.05.20 정보를 서버에서 관리함 - prodongi
|
|
//bool IsShowHelm() const { return (m_curData.nHelm == 1) ? true : false; }; ///< 투구 보이기
|
|
bool IsShowMantle() const { return (m_curData.nMantle == 1) ? true : false; }; ///< 망토 보이기
|
|
bool IsRejectTrade() const { return (m_curData.nTrade == 1) ? true : false; }; ///< 거래 및 초대 거절
|
|
bool IsRejectPVP() const { return (m_curData.nPVP == 1 ) ? true : false; }; ///< 대련신청_거부
|
|
bool IsInverseWheel() const { return (m_curData.nWheel == 1 ) ? true : false; }; ///< 휠방향_반전
|
|
bool IsDemageRender() const { return (m_curData.ndamage == 1) ? true : false; }; ///< 데미지 렌더
|
|
bool IsPlayerDmgRend() const { return (m_curData.nPlayerDM == 1) ? true : false; }; ///< 플레이어 데미미지 렌더
|
|
bool IsCratureDmgRend() const { return (m_curData.nCreatureDM == 1) ? true : false; }; ///< 크리처 데미지 렌더
|
|
bool IsPartyDmgRend() const { return (m_curData.nPartyDM == 1) ? true : false; }; ///< 파티원 데미지 렌더
|
|
bool GetWindAlpha() const { return (m_curData.nWinAlpha == 1) ? true : false; }; ///< 파티원 데미지 렌더
|
|
bool IsTreeRender() const { return (m_curData.nRenderTree == 1) ? true : false; }; ///< 나무 랜더
|
|
bool IsGrassRender() const { return (m_curData.nRenderGrass == 1) ? true : false; }; ///< 풀 랜더
|
|
bool IsLightMap() const { return (m_curData.nLightMap == 1) ? true : false; }; ///< 라이트맵
|
|
|
|
void SetLobbyTheme( int nLevel ) { m_curData.nLobby_Theme = nLevel; };
|
|
int GetLobbyTheme() const { return m_curData.nLobby_Theme; };
|
|
|
|
int IsDetailRak() const { return !m_curData.nSimpleRak; };
|
|
|
|
int GetBoothType() const { return m_curData.nSelfBoothType; };
|
|
void SetBoothRendType(int nType) { m_curData.nSelfBoothType = nType; };
|
|
|
|
int GetCriticalCamera() const { return m_curData.nCriticalCamera; };
|
|
void SetCriticalCamera(int nType) { m_curData.nCriticalCamera = nType; };
|
|
|
|
bool IsAutoTarget() const { return (m_curData.nAutoTarget == 1) ? true : false; }; ///< AutoTarget
|
|
void InvertAutoTarget() { m_curData.nAutoTarget = !m_curData.nAutoTarget; };
|
|
// int GetAvatarDeco() const { return m_curData.nAvatarDeco; }; // 2010.10.11. 게임플레이옵션에서 "꾸미기보이기" 제거.
|
|
// void SetAvatarDeco(int nType) { m_curData.nAvatarDeco = nType; }; // 2010.10.11. 게임플레이옵션에서 "꾸미기보이기" 제거.
|
|
|
|
//Game Content
|
|
int GetTownLimit() const { return m_curData.nTownLimit; };
|
|
void SetTownLimit( int nLevel ) { m_curData.nTownLimit = nLevel;};
|
|
|
|
//servantes 2010.11.02
|
|
bool GetOpenEquipWnd() const { return m_bOpenEquipWnd; };
|
|
void SetOpenEquipWnd(bool nValue);
|
|
|
|
/// 2011.02.16 - prodongi
|
|
bool GetUseRechargeMsgBox() const { return m_useRechargeMsgBox == 1 ? true : false; }
|
|
void SetUseRechargeMsgBox(bool use);
|
|
|
|
// UI =======================================
|
|
int GetMinimapAlpha() const { return m_nMinimapAlpha; };
|
|
bool IsMinimapOpen() const { return ( m_nMinimapOpen == 1 ? true : false ); };
|
|
|
|
void SetMinimapAlpha( int nLevel ) { m_nMinimapAlpha = nLevel; };
|
|
void SetMinimapOpen( bool bOpen ) { m_nMinimapOpen = ( bOpen ) ? 1 : 0; };
|
|
|
|
int GetFaceCut() const { return m_nFaceCut; };
|
|
int GetMinimap() const { return m_nMinimap; };
|
|
int GetZoom() const { return m_nZoom; };
|
|
|
|
void SetFaceCut( int nLevel ) { m_nFaceCut = nLevel; };
|
|
void SetMinimap( int nLevel ) { m_nMinimap = nLevel; };
|
|
void SetZoom( int nLevel ) { m_nZoom = nLevel; };
|
|
|
|
// 인터페이스 옵션 ===========================
|
|
int GetQuickVerX() const { return m_nQuickVerX; };
|
|
int GetQuickVerY() const { return m_nQuickVerY; };
|
|
int GetQuickHozX() const { return m_nQuickHozX; };
|
|
int GetQuickHozY() const { return m_nQuickHozY; };
|
|
bool IsVerticalQuick() const { return ( m_nVerticalQuick == 1 ? true : false ); };
|
|
int GetStateVerX() const { return m_nStateVerX; };
|
|
int GetStateVerY() const { return m_nStateVerY; };
|
|
int GetStateHozX() const { return m_nStateHozX; };
|
|
int GetStateHozY() const { return m_nStateHozY; };
|
|
bool IsVerticalState() const { return ( m_nVerticalState == 1 ? true : false ); };
|
|
|
|
int GetMessangerX() const { return m_nMessangerX; };
|
|
int GetMessangerY() const { return m_nMessangerY; };
|
|
bool IsMessangerOpen() const { return ( m_nMessangerOpen == 1 ? true : false ); };
|
|
bool IsCreatureOpen() const { return ( m_nCreatureOpen == 1 ? true : false ); };
|
|
int GetSysMenuX() const { return m_nSysMenuX; };
|
|
int GetSysMenuY() const { return m_nSysMenuY; };
|
|
int GetInventoryX() const { return m_nInventoryX; };
|
|
int GetInventoryY() const { return m_nInventoryY; };
|
|
int GetChattingLine() const { return m_nChattingLine; };
|
|
int GetChattingHeight() const { return m_nChattingHeight; };
|
|
|
|
int GetEquipmentX() const { return m_nPosEquipment.x; };
|
|
int GetEquipmentY() const { return m_nPosEquipment.y; };
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
//추가 2006/3/10 이동표
|
|
int GetCreatureX() const { return m_nCreatureX; };
|
|
int GetCreatureY() const { return m_nCreatureY; };
|
|
int GetCreatureInfoX() const { return m_nCreatureInfoX; };
|
|
int GetCreatureInfoY() const { return m_nCreatureInfoY; };
|
|
int GetQuestX() const { return m_nQuestX; };
|
|
int GetQuestY() const { return m_nQuestY; };
|
|
int GetMotionX() const { return m_nMotionX; };
|
|
int GetMotionY() const { return m_nMotionY; };
|
|
int GetOptionX() const { return m_nOptionX; };
|
|
int GetOptionY() const { return m_nOptionY; };
|
|
int GetCharX() const { return m_nCharX; };
|
|
int GetCharY() const { return m_nCharY; };
|
|
int GetSkillX() const { return m_nSkillX; };
|
|
int GetSkillY() const { return m_nSkillY; };
|
|
int GetSystemX() const { return m_nSystemX; };
|
|
int GetSystemY() const { return m_nSystemY; };
|
|
int GetMapX() const { return m_nMapX; };
|
|
int GetMapY() const { return m_nMapY; };
|
|
int GetItemCombineX() const { return m_nItemCombineX; };
|
|
int GetItemCombineY() const { return m_nItemCombineY; };
|
|
int GetShopX() const { return m_nShopX; };
|
|
int GetShopY() const { return m_nShopY; };
|
|
int GetStoreX() const { return m_nStoreX; };
|
|
int GetStoreY() const { return m_nStoreY; };
|
|
int GetStorageX() const { return m_nStorageX; };
|
|
int GetStorageY() const { return m_nStorageY; };
|
|
int GetPartyX() const { return m_nPartyX; };
|
|
int GetPartyY() const { return m_nPartyY; };
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
int GetCreatureSkillX() const { return m_nCreatureSkillX; };
|
|
int GetCreatureSkillY() const { return m_nCreatureSkillY; };
|
|
|
|
// void SetQuickVerX( int nValue ) ;
|
|
//void SetQuickVerY( int nValue ) ;
|
|
void SetQuickHozX( int nValue ) ;
|
|
void SetQuickHozY( int nValue ) ;
|
|
void SetVerticalQuick( int nVertical ) ;
|
|
//void SetStateVerX( int nValue ) ;
|
|
//void SetStateVerY( int nValue ) ;
|
|
void SetStateHozX( int nValue ) ;
|
|
void SetStateHozY( int nValue ) ;
|
|
void SetVerticalStat( int nVertical ) ;
|
|
void SetMessangerX( int nValue ) ;
|
|
void SetMessangerY( int nValue ) ;
|
|
void SetPartyX( int nValue ) ;
|
|
void SetPartyY( int nValue ) ;
|
|
void SetMessangerOpep( int nOpen ) ;
|
|
void SetCreatureOpen( int nOpen ) ;
|
|
void SetSysMenuX( int nValue ) ;
|
|
void SetSysMenuY( int nValue ) ;
|
|
void SetInventoryX( int nValue ) ;
|
|
void SetInventoryY( int nValue ) ;
|
|
void SetChattingLine( int nValue ) ;
|
|
void SetChattingHeight( int nValue ) ;
|
|
|
|
void SetEquipmentWndPos( KPoint & point ); // 장비창 위치. bintitle. 2010.10.07.
|
|
void SetEquipmentX(int nValue) { m_nPosEquipment.x = nValue; }; //servantes 2010.12.09
|
|
void SetEquipmentY(int nValue) { m_nPosEquipment.y = nValue; }; //servantes 2010.12.09
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
//추가 2006/3/10 이동표
|
|
void SetCreatureX( int nValue );
|
|
void SetCreatureY( int nValue );
|
|
void SetCreatureInfoX( int nValue );
|
|
void SetCreatureInfoY( int nValue );
|
|
void SetQuestX( int nValue );
|
|
void SetQuestY( int nValue );
|
|
void SetMotionX( int nValue );
|
|
void SetMotionY( int nValue );
|
|
void SetOptionX( int nValue );
|
|
void SetOptionY( int nValue );
|
|
void SetCharX( int nValue );
|
|
void SetCharY( int nValue );
|
|
void SetSkillX( int nValue );
|
|
void SetSkillY( int nValue );
|
|
void SetSystemX( int nValue );
|
|
void SetSystemY( int nValue );
|
|
void SetMapX( int nValue );
|
|
void SetMapY( int nValue );
|
|
void SetItemCombineX( int nValue );
|
|
void SetItemCombineY( int nValue );
|
|
void SetShopX( int nValue );
|
|
void SetShopY( int nValue );
|
|
void SetStoreX( int nValue );
|
|
void SetStoreY( int nValue );
|
|
void SetStorageX( int nValue );
|
|
void SetStorageY( int nValue );
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
void SetCreatureSkillX( int nValue );
|
|
void SetCreatureSkillY( int nValue );
|
|
|
|
bool IsChatOptionCheck( int nTabMode, int nIndex );
|
|
|
|
bool IsChattingOpen() const { return m_bChatOpen; };
|
|
void SetChattingOpen( bool bOpen ) { m_bChatOpen = bOpen; };
|
|
|
|
/// 크리처 정보창 열려있나없다
|
|
bool IsCreatureInfoOpen() const { return m_bIsCreatureInfo; };
|
|
void SetCreautreInfoOpen( bool bOpen ) { m_bIsCreatureInfo = bOpen; };
|
|
|
|
/// 채널명
|
|
bool SetChatTabName( int nIndex, const char* szTabName );
|
|
const char* GetChatTabName( int nIndex );
|
|
|
|
/// 채널 마크
|
|
bool SGameOption::SetChatTabMark( int nIndex, const char* szTabMark );
|
|
const char* SGameOption::GetChatTabMark( int nIndex );
|
|
|
|
/// 파뤼/길드 선택 : 게임 내에서
|
|
void SetMessengerType( int nType );
|
|
int GetMessengerType() { return m_nMessengerType; };
|
|
|
|
/// Local System Info
|
|
void AddDispMode( UINT width, UINT height, UINT refreshrate );
|
|
const std::vector< DISP_MODE > & GetDispMode() { return m_distMode; }
|
|
void SetCurrentRefreshRate( UINT refreshrate ) { m_curRefreshRate = refreshrate; }
|
|
const unsigned int GetCurrentRefreshRate() { return m_curRefreshRate; }
|
|
|
|
void SetPhysicalMemSize( unsigned int nMemSize ) { m_MemSize = nMemSize; }
|
|
const unsigned int GetPhysicalMemSize() { return m_MemSize; }
|
|
|
|
void SetUIPosDefault();
|
|
|
|
|
|
protected:
|
|
void SetCheckStr( bool * pCehck, char * pStr );
|
|
|
|
void SetEnvironmenteDefault( _OPT_DATA& data ); ///< 기본값 설정(게임 환경)
|
|
void SetPlayDataDefault( _OPT_DATA& data ); ///< 기본값 설정(게임 플레이)
|
|
|
|
void Save();
|
|
/// 종료시에 모두 저장한다 =====================
|
|
void Destroy();
|
|
/// 캐릭별로 저장하지 않는 옵션(그래픽옵션) 은 생성자에서 로드 ===
|
|
void OptionDataBind();
|
|
void SetCrrOptionData();
|
|
void Init();
|
|
|
|
protected:
|
|
|
|
_OPT_DATA m_defData; ///< 기본 데이타
|
|
_OPT_DATA m_curData; ///< 현재 상태
|
|
|
|
std::vector< DISP_MODE > m_distMode;
|
|
|
|
unsigned int m_curRefreshRate;
|
|
unsigned int m_MemSize; ///< Physical Memory Size
|
|
|
|
// UI ============
|
|
int m_nMinimapAlpha;
|
|
int m_nMinimapOpen;
|
|
int m_nFaceCut;
|
|
int m_nMinimap;
|
|
int m_nZoom;
|
|
int m_nMessengerType;
|
|
bool m_bIsCreatureInfo;
|
|
|
|
// 인터페이스 위치 =======
|
|
int m_nQuickVerX;
|
|
int m_nQuickVerY;
|
|
int m_nQuickHozX;
|
|
int m_nQuickHozY;
|
|
int m_nVerticalQuick;
|
|
|
|
int m_nStateVerX;
|
|
int m_nStateVerY;
|
|
int m_nStateHozX;
|
|
int m_nStateHozY;
|
|
int m_nVerticalState;
|
|
|
|
int m_nMessangerX;
|
|
int m_nMessangerY;
|
|
int m_nMessangerOpen;
|
|
|
|
int m_nPartyX;
|
|
int m_nPartyY;
|
|
|
|
int m_nCreatureOpen;
|
|
|
|
int m_nSysMenuX;
|
|
int m_nSysMenuY;
|
|
|
|
int m_nInventoryX;
|
|
int m_nInventoryY;
|
|
|
|
int m_nChattingLine;
|
|
int m_nChattingHeight;
|
|
|
|
//추가 2006/3/10 이동표
|
|
int m_nCreatureX;
|
|
int m_nCreatureY;
|
|
|
|
int m_nCreatureInfoX;
|
|
int m_nCreatureInfoY;
|
|
|
|
int m_nQuestX;
|
|
int m_nQuestY;
|
|
|
|
int m_nMotionX;
|
|
int m_nMotionY;
|
|
|
|
int m_nOptionX;
|
|
int m_nOptionY;
|
|
|
|
int m_nCharX;
|
|
int m_nCharY;
|
|
|
|
int m_nSkillX;
|
|
int m_nSkillY;
|
|
|
|
int m_nSystemX;
|
|
int m_nSystemY;
|
|
|
|
int m_nMapX;
|
|
int m_nMapY;
|
|
|
|
int m_nItemCombineX;
|
|
int m_nItemCombineY;
|
|
|
|
int m_nShopX;
|
|
int m_nShopY;
|
|
|
|
int m_nStoreX;
|
|
int m_nStoreY;
|
|
|
|
int m_nStorageX;
|
|
int m_nStorageY;
|
|
|
|
KPoint m_nPosEquipment; // 장비창 위치. bintitle. 2010.10.07.
|
|
|
|
bool m_bChannelCheck[SGAME_OPT_DATA::c_nMaxChannel][SGAME_OPT_DATA::c_nMaxChatOption]; ///< 채팅 옵션
|
|
|
|
std::string m_strTabName[SGAME_OPT_DATA::c_nMaxChannel]; ///< 채팅 채널명
|
|
|
|
std::string m_strTabMark[SGAME_OPT_DATA::c_nMaxChannel];
|
|
|
|
bool m_bChatOpen;
|
|
|
|
//추가 2009.11.27. sfreer
|
|
int m_nCreatureSkillX;
|
|
int m_nCreatureSkillY;
|
|
|
|
bool m_bOpenEquipWnd; //servantes 2010.11.02
|
|
int m_useRechargeMsgBox; /// 2011.02.16 충전 확인창 사용 유무 - prodongi
|
|
|
|
private:
|
|
std::string m_strName; ///< 캐릭 이름
|
|
SINIManager m_OptionManager; ///< INI Manager
|
|
|
|
};
|
|
|
|
|
|
SGameOption & GetGameOption();
|
|
|
|
|
|
|
|
class SLocaleOption
|
|
{
|
|
public:
|
|
SLocaleOption();
|
|
~SLocaleOption();
|
|
|
|
bool LoadOptionFile(const char *filename);
|
|
// 2010.06.29 Parse data directly from the file in memory - prodongi
|
|
bool parsingOptionFile(const char* filename);
|
|
|
|
int GetValueInt ( std::string strKey,int bDefaultValue);
|
|
const char *GetValueString ( std::string strKey, const char *defaultstr);
|
|
|
|
private:
|
|
|
|
SINIManager m_OptionManager; ///< INI Manager
|
|
|
|
std::map<std::string, std::string> m_StrMap;
|
|
std::map<std::string, int> m_IntMap;
|
|
|
|
void LoadValueString(const char *key);
|
|
void LoadValueInt(const char *key);
|
|
|
|
// 2010.06.29 - prodongi
|
|
void parsingValueString(char const* key, char const* data, char* value);
|
|
void parsingValueInt(char const* key, char const* data, char* value);
|
|
bool parsingValue(char const* key, char const* data, char* value);
|
|
bool pickupValue(char const* data, char const* startToken, char endToken, char* value);
|
|
// 2010.09.01 - prodongi
|
|
void parsingBigSmallValueString(char const* bigKey, char const* smallKey, char const* data, char* value);
|
|
void parsingBigSmallValueInt(char const* bigKey, char const* smallKey, char const* data, char* value);
|
|
// 2010.08.26 - prodongi
|
|
template <class T> bool isValue(T const& keyList, std::string const& key)
|
|
{
|
|
return keyList.find(key) != keyList.end();
|
|
}
|
|
template <class T, class KEY> void copyValue(T& keyList, KEY const& src, KEY const& dest)
|
|
{
|
|
if (!isValue(keyList, src))
|
|
return ;
|
|
keyList[dest] = keyList[src];
|
|
}
|
|
|
|
void SetExceptionalCodePage();
|
|
};
|
|
|
|
|
|
SLocaleOption &GetLocaleOption(); |