convert comments in cpp files to utf8
This commit is contained in:
@ -61,7 +61,7 @@ bool CAttributeData::OnLoad(int /*iSize*/, const void * c_pvBuf)
|
||||
{
|
||||
if (!c_pvBuf)
|
||||
{
|
||||
// NOTE: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>浹 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ.
|
||||
// NOTE: 파일이 존재하지 않으면 다른곳에서 그래픽 모델을 기반으로 충돌 데이터를 생성하니 리소스를 파괴하지 않고 유지시킴.
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -438,7 +438,7 @@ void CCamera::RotateEyeAroundTarget(float fPitchDegree, float fRollDegree)
|
||||
|
||||
D3DXMATRIX matRot, matRotPitch, matRotRoll;
|
||||
|
||||
// <EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD>...
|
||||
// 머리위로 넘어가기 막기...
|
||||
if (m_fPitch + fPitchDegree > 80.0f)
|
||||
{
|
||||
fPitchDegree = 80.0f - m_fPitch;
|
||||
@ -593,7 +593,7 @@ bool CCameraManager::isCurrentCamera(unsigned char ucCameraNum)
|
||||
return false;
|
||||
}
|
||||
|
||||
// <EFBFBD>⽺<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD>...
|
||||
// 잡스러운 함수들...
|
||||
bool CCameraManager::AddCamera(unsigned char ucCameraNum)
|
||||
{
|
||||
if(m_CameraMap.end() != m_CameraMap.find(ucCameraNum))
|
||||
|
@ -230,7 +230,7 @@ bool CSphereCollisionInstance::OnMovementCollisionDynamicSphere(const CDynamicSp
|
||||
{
|
||||
if (square_distance_between_linesegment_and_point(s.v3LastPosition,s.v3Position,m_attribute.v3Position) < (m_attribute.fRadius+s.fRadius)*(m_attribute.fRadius+s.fRadius))
|
||||
{
|
||||
// NOTE : <EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.. - [levites]
|
||||
// NOTE : 거리가 가까워 졌을때만.. - [levites]
|
||||
if (GetVector3Distance(s.v3Position, m_attribute.v3Position) <
|
||||
GetVector3Distance(s.v3LastPosition, m_attribute.v3Position))
|
||||
return true;
|
||||
@ -321,7 +321,7 @@ bool CPlaneCollisionInstance::OnMovementCollisionDynamicSphere(const CDynamicSph
|
||||
if (D3DXVec3Dot(&v3QuadPosition2, &m_attribute.v3InsideVector[2]) > - s.fRadius/*0.0f*/)
|
||||
if (D3DXVec3Dot(&v3QuadPosition2, &m_attribute.v3InsideVector[3]) > - s.fRadius/*0.0f*/)
|
||||
{
|
||||
// NOTE : <EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.. - [levites]
|
||||
// NOTE : 거리가 가까워 졌을때만.. - [levites]
|
||||
if (fabs(D3DXVec3Dot(&(s.v3Position - m_attribute.v3Position), &m_attribute.v3Normal)) <
|
||||
fabs(D3DXVec3Dot(&(s.v3LastPosition - m_attribute.v3Position), &m_attribute.v3Normal)))
|
||||
return true;
|
||||
@ -471,14 +471,14 @@ bool CCylinderCollisionInstance::OnMovementCollisionDynamicSphere(const CDynamic
|
||||
{
|
||||
if (CollideCylinderVSDynamicSphere(m_attribute, s))
|
||||
{
|
||||
// NOTE : <EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.. - [levites]
|
||||
// NOTE : 거리가 가까워 졌을때만.. - [levites]
|
||||
if (GetVector3Distance(s.v3Position, m_attribute.v3Position) <
|
||||
GetVector3Distance(s.v3LastPosition, m_attribute.v3Position))
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// NOTE : <EFBFBD>̵<EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> Ŭ <20><><EFBFBD><EFBFBD> <20><>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD> (<28><> ũ<><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20>̵<EFBFBD><CCB5>ϸ鼭 <20><><EFBFBD><EFBFBD> üũ <20><> <20><><EFBFBD><EFBFBD> - [levites]
|
||||
// NOTE : 이동 거리가 클 경우 빈틈없이 (원 크기 단위로) 이동하면서 전부 체크 해 본다 - [levites]
|
||||
D3DXVECTOR3 v3Distance = s.v3Position - s.v3LastPosition;
|
||||
float fDistance = D3DXVec3Length(&v3Distance);
|
||||
if (s.fRadius<=0.0001f)
|
||||
|
@ -93,7 +93,7 @@ void CCullingManager::Reset()
|
||||
void CCullingManager::Update()
|
||||
{
|
||||
// TODO : update each object
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϰ<EFBFBD> <20>غ<EFBFBD><D8BA><EFBFBD>
|
||||
// 하지말고 각자 하게 해보자
|
||||
|
||||
//DWORD time = ELTimer_GetMSec();
|
||||
//Reset();
|
||||
|
@ -79,7 +79,7 @@ void CFileLoaderThread::Shutdown()
|
||||
}
|
||||
while (!bRet);
|
||||
|
||||
WaitForSingleObject(m_hThread, 10000); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>尡 <20><><EFBFBD><EFBFBD> <20>DZ⸦ 10<31><30> <20><><EFBFBD>ٸ<EFBFBD>
|
||||
WaitForSingleObject(m_hThread, 10000); // 쓰레드가 종료 되기를 10초 기다림
|
||||
}
|
||||
|
||||
UINT CFileLoaderThread::Execute(void * /*pvArg*/)
|
||||
|
@ -75,13 +75,13 @@ int CGraphicBase::ms_iWavingPower;
|
||||
DWORD CGraphicBase::ms_dwFlashingEndTime;
|
||||
D3DXCOLOR CGraphicBase::ms_FlashingColor;
|
||||
|
||||
// Terrain picking<EFBFBD><EFBFBD> Ray... CCamera <EFBFBD>̿<EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>.. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ray<61><79> <20><><EFBFBD><EFBFBD> <20>ʿ<EFBFBD>...
|
||||
// Terrain picking용 Ray... CCamera 이용하는 버전.. 기존의 Ray와 통합 필요...
|
||||
CRay CGraphicBase::ms_Ray;
|
||||
bool CGraphicBase::ms_bSupportDXT = true;
|
||||
bool CGraphicBase::ms_isLowTextureMemory = false;
|
||||
bool CGraphicBase::ms_isHighTextureMemory = false;
|
||||
|
||||
// 2004.11.18.myevan.DynamicVertexBuffer<EFBFBD><EFBFBD> <20><>ü
|
||||
// 2004.11.18.myevan.DynamicVertexBuffer로 교체
|
||||
/*
|
||||
std::vector<TIndex> CGraphicBase::ms_lineIdxVector;
|
||||
std::vector<TIndex> CGraphicBase::ms_lineTriIdxVector;
|
||||
|
@ -183,7 +183,7 @@ static DWORD s_MaxTextureWidth, s_MaxTextureHeight;
|
||||
|
||||
BOOL EL3D_ConfirmDevice(D3DCAPS9& rkD3DCaps, UINT uBehavior, D3DFORMAT /*eD3DFmt*/)
|
||||
{
|
||||
// PUREDEVICE<EFBFBD><EFBFBD> GetTransform / GetViewport <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
||||
// PUREDEVICE는 GetTransform / GetViewport 등이 되지 않는다.
|
||||
if (uBehavior & D3DCREATE_PUREDEVICE)
|
||||
return FALSE;
|
||||
|
||||
@ -369,7 +369,7 @@ RETRY:
|
||||
ms_iD3DAdapterInfo,
|
||||
D3DDEVTYPE_HAL,
|
||||
hWnd,
|
||||
// 2004. 1. 9 myevan <EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD>
|
||||
// 2004. 1. 9 myevan 버텍스 프로세싱 방식 자동 선택 추가
|
||||
pkD3DModeInfo->m_dwD3DBehavior,
|
||||
&ms_d3dPresentParameter,
|
||||
&ms_lpd3dDevice)))
|
||||
@ -393,7 +393,7 @@ RETRY:
|
||||
if (ErrorCorrection)
|
||||
return CREATE_DEVICE;
|
||||
|
||||
// 2004. 1. 9 myevan ū<EFBFBD>ǹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD><DAB5>ε<EFBFBD>.. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 2004. 1. 9 myevan 큰의미 없는 코드인듯.. 에러나면 표시하고 종료하자
|
||||
iReflashRate = 0;
|
||||
++ErrorCorrection;
|
||||
iRet = CREATE_REFRESHRATE;
|
||||
|
@ -116,7 +116,7 @@ void CGraphicExpandedImageInstance::OnRender()
|
||||
break;
|
||||
}
|
||||
|
||||
// 2004.11.18.myevan.ctrl+alt+del <EFBFBD>ݺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ƨ<><C6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 2004.11.18.myevan.ctrl+alt+del 반복 사용시 튕기는 문제
|
||||
if (CGraphicBase::SetPDTStream(vertices, 4))
|
||||
{
|
||||
CGraphicBase::SetDefaultIndexBuffer(CGraphicBase::DEFAULT_IB_FILL_RECT);
|
||||
|
@ -213,7 +213,7 @@ CGraphicFontTexture::TCharacterInfomation* CGraphicFontTexture::UpdateCharacterI
|
||||
wchar_t keyValue = code.second;
|
||||
|
||||
if (keyValue == 0x08)
|
||||
keyValue = L' '; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ۴<D9B2> (<28>ƶ<EFBFBD> <20><><EFBFBD>½<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>: NAME:\tTEXT -> TEXT\t:NAME <EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF> )
|
||||
keyValue = L' '; // 탭은 공백으로 바꾼다 (아랍 출력시 탭 사용: NAME:\tTEXT -> TEXT\t:NAME 로 전환됨 )
|
||||
|
||||
ABCFLOAT stABC;
|
||||
SIZE size;
|
||||
|
@ -68,7 +68,7 @@ bool CGraphicImage::OnLoad(int iSize, const void * c_pvBuf)
|
||||
|
||||
m_imageTexture.SetFileName(CResource::GetFileName());
|
||||
|
||||
// Ư<EFBFBD><EFBFBD> <20><>ǻ<EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD> Unknown<77><6E><EFBFBD><EFBFBD> '<27><>'<27>ϸ<EFBFBD> ƨ<><C6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-_-; -<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 특정 컴퓨터에서 Unknown으로 '안'하면 튕기는 현상이 있음-_-; -비엽
|
||||
if (!m_imageTexture.CreateFromMemoryFile(iSize, c_pvBuf, D3DFMT_UNKNOWN, m_dwFilter))
|
||||
return false;
|
||||
|
||||
|
@ -83,7 +83,7 @@ void CGraphicImageInstance::OnRender()
|
||||
vertices[3].texCoord = TTextureCoordinate(eu, ev);
|
||||
vertices[3].diffuse = m_DiffuseColor;
|
||||
|
||||
// 2004.11.18.myevan.ctrl+alt+del <EFBFBD>ݺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ƨ<><C6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 2004.11.18.myevan.ctrl+alt+del 반복 사용시 튕기는 문제
|
||||
if (CGraphicBase::SetPDTStream(vertices, 4))
|
||||
{
|
||||
CGraphicBase::SetDefaultIndexBuffer(CGraphicBase::DEFAULT_IB_FILL_RECT);
|
||||
@ -207,7 +207,7 @@ void CGraphicImageInstance::Initialize()
|
||||
|
||||
void CGraphicImageInstance::Destroy()
|
||||
{
|
||||
m_roImage.SetPointer(NULL); // CRef <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۷<EFBFBD><DBB7><EFBFBD> ī<><C4AB>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>.
|
||||
m_roImage.SetPointer(NULL); // CRef 에서 레퍼런스 카운트가 떨어져야 함.
|
||||
Initialize();
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ bool CGraphicImageTexture::CreateDeviceObjects()
|
||||
|
||||
if (m_stFileName.empty())
|
||||
{
|
||||
// <EFBFBD><EFBFBD>Ʈ <20>ؽ<EFBFBD><D8BD><EFBFBD>
|
||||
// 폰트 텍스쳐
|
||||
if (FAILED(ms_lpd3dDevice->CreateTexture(m_width, m_height, 1, 0, m_d3dFmt, D3DPOOL_MANAGED, &m_lpd3dTexture, NULL)))
|
||||
return false;
|
||||
}
|
||||
|
@ -97,18 +97,18 @@ struct LightComp
|
||||
}
|
||||
};
|
||||
|
||||
// NOTE : FlushLight<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD> <20><> <20>ݵ<EFBFBD><DDB5><EFBFBD> RestoreLight<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߸<EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
// NOTE : FlushLight후 렌더링
|
||||
// 그 후 반드시 RestoreLight를 해줘야만 한다.
|
||||
void CLightManager::FlushLight()
|
||||
{
|
||||
Update();
|
||||
|
||||
m_LightSortVector.clear();
|
||||
|
||||
// NOTE: Dynamic<EFBFBD><EFBFBD> Static<EFBFBD><EFBFBD> <20>и<EFBFBD> <20><>Ű<EFBFBD><C5B0> CenterPosition<EFBFBD><EFBFBD> <20>ٲ<D9B2><F0B6A7B8><EFBFBD> Static<EFBFBD><EFBFBD>
|
||||
// <EFBFBD>ٽ<EFBFBD> Flush <EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȭ <20><> <20><> <20>ִ<EFBFBD>. - [levites]
|
||||
// NOTE: Dynamic과 Static을 분리 시키고 CenterPosition이 바뀔때마다 Static만
|
||||
// 다시 Flush 하는 식으로 최적화 할 수 있다. - [levites]
|
||||
|
||||
// light<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// light들의 거리를 추출해 정렬한다.
|
||||
TLightMap::iterator itor = m_LightMap.begin();
|
||||
|
||||
for (; itor != m_LightMap.end(); ++itor)
|
||||
@ -124,7 +124,7 @@ void CLightManager::FlushLight()
|
||||
// quick sort lights
|
||||
std::sort(m_LightSortVector.begin(), m_LightSortVector.end(), LightComp());
|
||||
|
||||
// NOTE - <EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ĵ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Limit <20><><EFBFBD><EFBFBD> <20><>ŭ <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD>ش<EFBFBD>.
|
||||
// NOTE - 거리로 정렬된 라이트를 Limit 갯수 만큼 제한해서 켜준다.
|
||||
STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, TRUE);
|
||||
|
||||
for (DWORD k = 0; k < min(m_dwLimitLightCount, m_LightSortVector.size()); ++k)
|
||||
|
@ -241,7 +241,7 @@ void CGraphicMarkInstance::Initialize()
|
||||
|
||||
void CGraphicMarkInstance::Destroy()
|
||||
{
|
||||
m_roImage.SetPointer(NULL); // CRef <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۷<EFBFBD><DBB7><EFBFBD> ī<><C4AB>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>.
|
||||
m_roImage.SetPointer(NULL); // CRef 에서 레퍼런스 카운트가 떨어져야 함.
|
||||
Initialize();
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ void CScreen::RenderBox3d(float sx, float sy, float sz, float ex, float ey, floa
|
||||
{ ex, ey, ez, ms_diffuseColor, 0.0f, 0.0f }, // 3
|
||||
|
||||
{ sx, ey, ez, ms_diffuseColor, 0.0f, 0.0f }, // 2
|
||||
{ ex+1.0f, ey, ez, ms_diffuseColor, 0.0f, 0.0f } // 3, (x<EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3)
|
||||
{ ex+1.0f, ey, ez, ms_diffuseColor, 0.0f, 0.0f } // 3, (x가 1증가된 3)
|
||||
};
|
||||
|
||||
// 2004.11.18.myevan.DrawIndexPrimitiveUP -> DynamicVertexBuffer
|
||||
@ -510,11 +510,11 @@ void CScreen::SetCursorPosition(int x, int y, int hres, int vres)
|
||||
ms_vtPickRayOrig.y = matViewInverse._42;
|
||||
ms_vtPickRayOrig.z = matViewInverse._43;
|
||||
|
||||
// // 2003. 9. 9 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
|
||||
// // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> picking<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>... <20>Ѥ<EFBFBD>; <20><><EFBFBD><EFBFBD> <20>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʿ<EFBFBD>...
|
||||
// // 2003. 9. 9 동현 추가
|
||||
// // 지형 picking을 위한 뻘짓... ㅡㅡ; 위에 것과 통합 필요...
|
||||
ms_Ray.SetStartPoint(ms_vtPickRayOrig);
|
||||
ms_Ray.SetDirection(-ms_vtPickRayDir, 51200.0f);
|
||||
// // 2003. 9. 9 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
|
||||
// // 2003. 9. 9 동현 추가
|
||||
}
|
||||
|
||||
bool CScreen::GetCursorPosition(float* px, float* py, float* pz)
|
||||
|
@ -38,9 +38,9 @@ bool CGraphicText::OnLoad(int /*iSize*/, const void* /*c_pvBuf*/)
|
||||
bool bItalic = false;
|
||||
|
||||
// format
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.fnt "\xB1\xBC\xB8\xB2" <EFBFBD><EFBFBD>Ʈ <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 12 <20><> <20>ε<EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:18.fnt "\xB1\xBC\xB8\xB2" <EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 18 <20><> <20>ε<EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:14i.fnt "\xB1\xBC\xB8\xB2" <EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 14 & <20><><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD>
|
||||
// 굴림.fnt "\xB1\xBC\xB8\xB2" 폰트 기본 사이즈 12 로 로딩
|
||||
// 굴림:18.fnt "\xB1\xBC\xB8\xB2" 폰트 사이즈 18 로 로딩
|
||||
// 굴림:14i.fnt "\xB1\xBC\xB8\xB2" 폰트 사이즈 14 & 이탤릭으로 로딩
|
||||
const char * p = strrchr(GetFileName(), ':');
|
||||
|
||||
if (p)
|
||||
|
@ -121,7 +121,7 @@ int ReadToken(const char* token)
|
||||
|
||||
void CGraphicTextInstance::Update()
|
||||
{
|
||||
if (m_isUpdate) // <EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20>Ѵ<EFBFBD>.
|
||||
if (m_isUpdate) // 문자열이 바뀌었을 때만 업데이트 한다.
|
||||
return;
|
||||
|
||||
if (m_roText.IsNull())
|
||||
@ -139,7 +139,7 @@ void CGraphicTextInstance::Update()
|
||||
|
||||
UINT defCodePage = GetDefaultCodePage();
|
||||
|
||||
UINT dataCodePage = defCodePage; // <EFBFBD>ƶ<EFBFBD> <20><> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UTF8 <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
UINT dataCodePage = defCodePage; // 아랍 및 베트남 내부 데이터를 UTF8 을 사용하려 했으나 실패
|
||||
|
||||
CGraphicFontTexture::TCharacterInfomation* pSpaceInfo = pFontTexture->GetCharacterInfomation(dataCodePage, ' ');
|
||||
|
||||
@ -185,7 +185,7 @@ void CGraphicTextInstance::Update()
|
||||
bool isEnglish = true;
|
||||
int nEnglishBase = wArabicTextLen - 1;
|
||||
|
||||
//<<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ>>
|
||||
//<<하이퍼 링크>>
|
||||
int x = 0;
|
||||
|
||||
int len;
|
||||
@ -194,7 +194,7 @@ void CGraphicTextInstance::Update()
|
||||
std::wstring hyperlinkBuffer;
|
||||
int no_hyperlink = 0;
|
||||
|
||||
// <EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE>Ѵ<EFBFBD>
|
||||
// 심볼로 끝나면 아랍어 모드로 시작해야한다
|
||||
if (Arabic_IsInSymbol(wArabicText[wArabicTextLen - 1]))
|
||||
{
|
||||
isEnglish = false;
|
||||
@ -208,24 +208,24 @@ void CGraphicTextInstance::Update()
|
||||
if (isEnglish)
|
||||
{
|
||||
|
||||
// <<<EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (ex. <20><>ȣ, <20><><EFBFBD><EFBFBD>)>> -> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
// <<(<EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20>͵<EFBFBD> : <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>, <20>ƶ<EFBFBD><C6B6><EFBFBD>)>>
|
||||
// (1) <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ɺ<EFBFBD> or
|
||||
// <<심볼의 경우 (ex. 기호, 공백)>> -> 영어 모드 유지.
|
||||
// <<(심볼이 아닌 것들 : 숫자, 영어, 아랍어)>>
|
||||
// (1) 맨 앞의 심볼 or
|
||||
// (2)
|
||||
// 1) <EFBFBD><EFBFBD> <20><><EFBFBD>ڰ<EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD> <20>ƴ<EFBFBD> &&
|
||||
// 2) <EFBFBD><EFBFBD> <20><><EFBFBD>ڰ<EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD> <20>ƴ<EFBFBD> &&
|
||||
// 3) <EFBFBD><EFBFBD> <20><><EFBFBD>ڰ<EFBFBD> <20>ɺ<EFBFBD>'|'<27><> <20>ƴ<EFBFBD> &&
|
||||
// 1) 앞 글자가 아랍어 아님 &&
|
||||
// 2) 뒷 글자가 아랍어 아님 &&
|
||||
// 3) 뒷 글자가 심볼'|'이 아님 &&
|
||||
// or
|
||||
// (3) <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɺ<EFBFBD><C9BA><EFBFBD> '|'
|
||||
// <<<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD> : <20>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD>.>>
|
||||
// 1) <EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD>
|
||||
// 2) <EFBFBD>ޱ<EFBFBD><EFBFBD><EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD>
|
||||
// (3) 현재 심볼이 '|'
|
||||
// <<아랍어 모드로 넘어가는 경우 : 심볼에서.>>
|
||||
// 1) 앞글자 아랍어
|
||||
// 2) 뒷글자 아랍어
|
||||
//
|
||||
//
|
||||
if (Arabic_IsInSymbol(wArabicChar) && (
|
||||
(i == 0) ||
|
||||
(i > 0 &&
|
||||
!(Arabic_HasPresentation(wArabicText, i - 1) || Arabic_IsInPresentation(wArabicText[i + 1])) && //<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD>, <20>ޱ<EFBFBD><DEB1>ڰ<EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD> <20>ƴ<EFBFBD>.
|
||||
!(Arabic_HasPresentation(wArabicText, i - 1) || Arabic_IsInPresentation(wArabicText[i + 1])) && //앞글자, 뒷글자가 아랍어 아님.
|
||||
wArabicText[i+1] != '|'
|
||||
) ||
|
||||
wArabicText[i] == '|'
|
||||
@ -234,10 +234,10 @@ void CGraphicTextInstance::Update()
|
||||
// pass
|
||||
int temptest = 1;
|
||||
}
|
||||
// (1)<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰ų<EFBFBD> (2)<29>ƶ<EFBFBD><C6B6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɺ<EFBFBD><C9BA>̶<EFBFBD><CCB6><EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȯ
|
||||
// (1)아랍어이거나 (2)아랍어 다음의 심볼이라면 아랍어 모드 전환
|
||||
else if (Arabic_IsInPresentation(wArabicChar) || Arabic_IsInSymbol(wArabicChar))
|
||||
{
|
||||
//<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><D7B8><EFBFBD>.
|
||||
//그 전까지의 영어를 그린다.
|
||||
for (int e = i + 1; e <= nEnglishBase;) {
|
||||
int ret = GetTextTag(&wArabicText[e], wArabicTextLen - e, len, hyperlinkBuffer);
|
||||
|
||||
@ -251,7 +251,7 @@ void CGraphicTextInstance::Update()
|
||||
kHyperlink.ex += charWidth;
|
||||
//x += charWidth;
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>ũ<EFBFBD><C5A9> <20><>ǥ <20><><EFBFBD><EFBFBD>.
|
||||
//기존 추가한 하이퍼링크의 좌표 수정.
|
||||
for (int j = 1; j <= no_hyperlink; j++)
|
||||
{
|
||||
if(m_hyperlinkVector.size() < j)
|
||||
@ -279,7 +279,7 @@ void CGraphicTextInstance::Update()
|
||||
if (hyperlinkStep == 1)
|
||||
{
|
||||
++hyperlinkStep;
|
||||
kHyperlink.ex = kHyperlink.sx = 0; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ؽ<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>۵Ǵ<DBB5> <20><>ġ
|
||||
kHyperlink.ex = kHyperlink.sx = 0; // 실제 텍스트가 시작되는 위치
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -299,7 +299,7 @@ void CGraphicTextInstance::Update()
|
||||
int charWidth = __DrawCharacter(pFontTexture, dataCodePage, Arabic_ConvSymbol(wArabicText[i]), dwColor);
|
||||
kHyperlink.ex += charWidth;
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>ũ<EFBFBD><C5A9> <20><>ǥ <20><><EFBFBD><EFBFBD>.
|
||||
//기존 추가한 하이퍼링크의 좌표 수정.
|
||||
for (int j = 1; j <= no_hyperlink; j++)
|
||||
{
|
||||
if(m_hyperlinkVector.size() < j)
|
||||
@ -313,16 +313,16 @@ void CGraphicTextInstance::Update()
|
||||
isEnglish = false;
|
||||
}
|
||||
}
|
||||
else //[[[<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>]]]
|
||||
else //[[[아랍어 모드]]]
|
||||
{
|
||||
// <EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰ų<EFBFBD> <20>ƶ<EFBFBD><C6B6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɺ<EFBFBD><C9BA>̶<EFBFBD><CCB6><EFBFBD>
|
||||
// 아랍어이거나 아랍어 출력중 나오는 심볼이라면
|
||||
if (Arabic_IsInPresentation(wArabicChar) || Arabic_IsInSymbol(wArabicChar))
|
||||
{
|
||||
int charWidth = __DrawCharacter(pFontTexture, dataCodePage, Arabic_ConvSymbol(wArabicText[i]), dwColor);
|
||||
kHyperlink.ex += charWidth;
|
||||
x += charWidth;
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>ũ<EFBFBD><C5A9> <20><>ǥ <20><><EFBFBD><EFBFBD>.
|
||||
//기존 추가한 하이퍼링크의 좌표 수정.
|
||||
for (int j = 1; j <= no_hyperlink; j++)
|
||||
{
|
||||
if(m_hyperlinkVector.size() < j)
|
||||
@ -333,7 +333,7 @@ void CGraphicTextInstance::Update()
|
||||
tempLink.sx += charWidth;
|
||||
}
|
||||
}
|
||||
else //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰ų<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɺ<EFBFBD><C9BA>̶<EFBFBD><CCB6><EFBFBD>,
|
||||
else //영어이거나, 영어 다음에 나오는 심볼이라면,
|
||||
{
|
||||
nEnglishBase = i;
|
||||
isEnglish = true;
|
||||
@ -355,7 +355,7 @@ void CGraphicTextInstance::Update()
|
||||
int charWidth = __DrawCharacter(pFontTexture, dataCodePage, wArabicText[e], dwColor);
|
||||
kHyperlink.ex += charWidth;
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>ũ<EFBFBD><C5A9> <20><>ǥ <20><><EFBFBD><EFBFBD>.
|
||||
//기존 추가한 하이퍼링크의 좌표 수정.
|
||||
for (int j = 1; j <= no_hyperlink; j++)
|
||||
{
|
||||
if(m_hyperlinkVector.size() < j)
|
||||
@ -383,7 +383,7 @@ void CGraphicTextInstance::Update()
|
||||
if (hyperlinkStep == 1)
|
||||
{
|
||||
++hyperlinkStep;
|
||||
kHyperlink.ex = kHyperlink.sx = 0; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ؽ<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>۵Ǵ<DBB5> <20><>ġ
|
||||
kHyperlink.ex = kHyperlink.sx = 0; // 실제 텍스트가 시작되는 위치
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -401,7 +401,7 @@ void CGraphicTextInstance::Update()
|
||||
|
||||
}
|
||||
}
|
||||
else // <EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
else // 아랍외 다른 지역.
|
||||
{
|
||||
int x = 0;
|
||||
int len;
|
||||
@ -440,7 +440,7 @@ void CGraphicTextInstance::Update()
|
||||
if (hyperlinkStep == 1)
|
||||
{
|
||||
++hyperlinkStep;
|
||||
kHyperlink.ex = kHyperlink.sx = x; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ؽ<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>۵Ǵ<DBB5> <20><>ġ
|
||||
kHyperlink.ex = kHyperlink.sx = x; // 실제 텍스트가 시작되는 위치
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -460,7 +460,7 @@ void CGraphicTextInstance::Update()
|
||||
if (token < end)
|
||||
{
|
||||
int newCodePage = ReadToken(token);
|
||||
dataCodePage = newCodePage; // <EFBFBD>ƶ<EFBFBD> <20><> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UTF8 <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dataCodePage = newCodePage; // 아랍 및 베트남 내부 데이터를 UTF8 을 사용하려 했으나 실패
|
||||
begin = token + 5;
|
||||
}
|
||||
else
|
||||
@ -570,7 +570,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
|
||||
CGraphicFontTexture::TCharacterInfomation* pCurCharInfo;
|
||||
|
||||
// <EFBFBD>θ<EFBFBD>
|
||||
// 테두리
|
||||
if (m_isOutline)
|
||||
{
|
||||
fCurX=fStanX;
|
||||
@ -586,7 +586,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
fFontHeight=float(pCurCharInfo->height);
|
||||
fFontAdvance=float(pCurCharInfo->advance);
|
||||
|
||||
// NOTE : <EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>¿<EFBFBD> Width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ӵϴ<D3B4>. - [levites]
|
||||
// NOTE : 폰트 출력에 Width 제한을 둡니다. - [levites]
|
||||
if ((fCurX+fFontWidth)-m_v3Position.x > m_fLimitWidth)
|
||||
{
|
||||
if (m_isMultiLine)
|
||||
@ -636,7 +636,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
akVertex[2].y=fFontSy-feather;
|
||||
akVertex[3].y=fFontEy+feather;
|
||||
|
||||
// <EFBFBD><EFBFBD>
|
||||
// 왼
|
||||
akVertex[0].x=fFontSx-fFontHalfWeight-feather;
|
||||
akVertex[1].x=fFontSx-fFontHalfWeight-feather;
|
||||
akVertex[2].x=fFontEx-fFontHalfWeight+feather;
|
||||
@ -646,7 +646,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
STATEMANAGER.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
|
||||
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 오른
|
||||
akVertex[0].x=fFontSx+fFontHalfWeight-feather;
|
||||
akVertex[1].x=fFontSx+fFontHalfWeight-feather;
|
||||
akVertex[2].x=fFontEx+fFontHalfWeight+feather;
|
||||
@ -660,7 +660,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
akVertex[2].x=fFontEx+feather;
|
||||
akVertex[3].x=fFontEx+feather;
|
||||
|
||||
// <EFBFBD><EFBFBD>
|
||||
// 위
|
||||
akVertex[0].y=fFontSy-fFontHalfWeight-feather;
|
||||
akVertex[1].y=fFontEy-fFontHalfWeight+feather;
|
||||
akVertex[2].y=fFontSy-fFontHalfWeight-feather;
|
||||
@ -670,7 +670,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
if (CGraphicBase::SetPDTStream((SPDTVertex*)akVertex, 4))
|
||||
STATEMANAGER.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
|
||||
|
||||
// <EFBFBD>Ʒ<EFBFBD>
|
||||
// 아래
|
||||
akVertex[0].y=fFontSy+fFontHalfWeight-feather;
|
||||
akVertex[1].y=fFontEy+fFontHalfWeight+feather;
|
||||
akVertex[2].y=fFontSy+fFontHalfWeight-feather;
|
||||
@ -684,7 +684,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
}
|
||||
}
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ʈ
|
||||
// 메인 폰트
|
||||
fCurX=fStanX;
|
||||
fCurY=fStanY;
|
||||
fFontMaxHeight=0.0f;
|
||||
@ -698,7 +698,7 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
fFontMaxHeight=max(fFontHeight, pCurCharInfo->height);
|
||||
fFontAdvance=float(pCurCharInfo->advance);
|
||||
|
||||
// NOTE : <EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>¿<EFBFBD> Width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ӵϴ<D3B4>. - [levites]
|
||||
// NOTE : 폰트 출력에 Width 제한을 둡니다. - [levites]
|
||||
if ((fCurX+fFontWidth)-m_v3Position.x > m_fLimitWidth)
|
||||
{
|
||||
if (m_isMultiLine)
|
||||
@ -811,9 +811,9 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
sy -= float(m_textHeight) / 2.0f;
|
||||
break;
|
||||
}
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ <20><><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><EFBFBD>ĸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵٸ<D1B4>... STRIP<49><50> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>, <20>ؽ<EFBFBD><D8BD>İ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǰų<C7B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DrawPrimitive<EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD>
|
||||
// <EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
// 최적화 사항
|
||||
// 같은텍스쳐를 사용한다면... STRIP을 구성하고, 텍스쳐가 변경되거나 끝나면 DrawPrimitive를 호출해
|
||||
// 최대한 숫자를 줄이도록하자!
|
||||
|
||||
TPDTVertex vertices[4];
|
||||
vertices[0].diffuse = diffuse;
|
||||
@ -865,13 +865,13 @@ void CGraphicTextInstance::Render(RECT * pClipRect)
|
||||
STATEMANAGER.SetRenderState(D3DRS_FOGENABLE, dwFogEnable);
|
||||
STATEMANAGER.SetRenderState(D3DRS_LIGHTING, dwLighting);
|
||||
|
||||
//<EFBFBD>ݰ<EFBFBD><EFBFBD><EFBFBD> <20><>ũ <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20>κ<EFBFBD>.
|
||||
//금강경 링크 띄워주는 부분.
|
||||
if (m_hyperlinkVector.size() != 0)
|
||||
{
|
||||
int lx = gs_mx - m_v3Position.x;
|
||||
int ly = gs_my - m_v3Position.y;
|
||||
|
||||
//<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD> <20><>ǥ <20><>ȣ<EFBFBD><C8A3> <20>ٲ<EFBFBD><D9B2>ش<EFBFBD>.
|
||||
//아랍은 좌표 부호를 바꿔준다.
|
||||
if (GetDefaultCodePage() == CP_ARABIC) {
|
||||
lx = -lx;
|
||||
ly = -ly + m_textHeight;
|
||||
@ -1063,7 +1063,7 @@ WORD CGraphicTextInstance::GetTextLineCount()
|
||||
float fFontAdvance=float(pCurCharInfo->advance);
|
||||
//float fFontHeight=float(pCurCharInfo->height);
|
||||
|
||||
// NOTE : <EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>¿<EFBFBD> Width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ӵϴ<D3B4>. - [levites]
|
||||
// NOTE : 폰트 출력에 Width 제한을 둡니다. - [levites]
|
||||
if (fx+fFontWidth > m_fLimitWidth)
|
||||
{
|
||||
fx = 0.0f;
|
||||
@ -1110,7 +1110,7 @@ void CGraphicTextInstance::__Initialize()
|
||||
m_vAlign = VERTICAL_ALIGN_TOP;
|
||||
|
||||
m_iMax = 0;
|
||||
m_fLimitWidth = 1600.0f; // NOTE : <EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD>ġ. <20>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? - [levites]
|
||||
m_fLimitWidth = 1600.0f; // NOTE : 해상도의 최대치. 이보다 길게 쓸 일이 있을까? - [levites]
|
||||
|
||||
m_isCursor = false;
|
||||
m_isSecret = false;
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
bool CStaticVertexBuffer::Create(int vtxCount, DWORD fvf, bool /*isManaged*/)
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MANAGED <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 무조건 MANAGED 모드
|
||||
return CGraphicVertexBuffer::Create(vtxCount, fvf, D3DUSAGE_WRITEONLY, D3DPOOL_MANAGED);
|
||||
}
|
||||
|
||||
|
@ -819,7 +819,7 @@ void CIME::SetCurPos(int offset)
|
||||
}
|
||||
else
|
||||
{
|
||||
// offset<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ؽ<EFBFBD>Ʈ<EFBFBD><C6AE> <20><>ġ<EFBFBD><C4A1> <20>´<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>.
|
||||
// offset은 보여지는 텍스트의 위치로 온다. 따라서 새로 계산해야함.
|
||||
//ms_curpos = min(ms_lastpos, offset);
|
||||
ms_curpos = min(ms_lastpos, GetTextTagInternalPosFromRenderPos(m_wText, ms_lastpos, offset));
|
||||
}
|
||||
@ -1503,8 +1503,8 @@ void CIME::CheckInputLocale()
|
||||
ms_wszCurrentIndicator[1] = towlower(szLang[1]);
|
||||
}
|
||||
|
||||
// <EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD> <20>ʴ´<CAB4>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>뵵 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
||||
// 아랍어에서 영어로 변경시 코드 페이지를 바꾸지 않는다
|
||||
// 내용도 지우지 않는다.
|
||||
if(ms_uOutputCodePage != 1256) {
|
||||
ms_uOutputCodePage = ms_uInputCodePage;
|
||||
Clear();
|
||||
@ -2147,7 +2147,7 @@ LRESULT CIME::WMComposition(HWND hWnd, UINT /*uiMsg*/, WPARAM /*wParam*/, LPARAM
|
||||
AttributeProcess(hImc);
|
||||
if(lParam&GCS_COMPSTR)
|
||||
{
|
||||
if (ms_uOutputCodePage == 950) // <EFBFBD>븸 <20><><EFBFBD><EFBFBD> <20>Է<EFBFBD> ó<><C3B3>
|
||||
if (ms_uOutputCodePage == 950) // 대만 주음 입력 처리
|
||||
{
|
||||
if (lParam&GCS_COMPATTR)
|
||||
CompositionProcessBuilding(hImc);
|
||||
|
@ -72,7 +72,7 @@ bool CInputKeyboard::InitializeKeyboard(HWND hWnd)
|
||||
if (FAILED(hr = ms_lpKeyboard->SetDataFormat(&c_dfDIKeyboard)))
|
||||
return false;
|
||||
|
||||
// Alt + F4<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - [levites]
|
||||
// Alt + F4를 위해 비독점 모드로 - [levites]
|
||||
// DWORD dwCoopFlags = DISCL_FOREGROUND | DISCL_EXCLUSIVE;
|
||||
// DWORD dwCoopFlags = DISCL_NONEXCLUSIVE | DISCL_BACKGROUND;
|
||||
DWORD dwCoopFlags = DISCL_FOREGROUND | DISCL_NONEXCLUSIVE;
|
||||
@ -99,7 +99,7 @@ void CInputKeyboard::UpdateKeyboard()
|
||||
{
|
||||
hr = ms_lpKeyboard->Acquire();
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>̼<EFBFBD><CCBC><EFBFBD> <20><>Ȱ<EFBFBD><C8B0>ȭ <20>Ǿ<EFBFBD> <20>־<EFBFBD> <20>Է<EFBFBD><D4B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
|
||||
// 현재 어플리케이션이 비활성화 되어 있어 입력을 받을 수 없다.
|
||||
//if (hr == DIERR_OTHERAPPHASPRIO || hr == DIERR_NOTACQUIRED);
|
||||
return;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ void CLensFlare::DrawBeforeFlare()
|
||||
STATEMANAGER.SaveRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
|
||||
STATEMANAGER.SaveRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
|
||||
/*
|
||||
if (m_fBeforeBright != 0.0f && m_bDrawFlare && m_bDrawBrightScreen && false) // <EFBFBD><EFBFBD> false?
|
||||
if (m_fBeforeBright != 0.0f && m_bDrawFlare && m_bDrawBrightScreen && false) // 왠 false?
|
||||
{
|
||||
glColor4f(1.0f, 1.0f, 1.0f, m_fBeforeBright);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
@ -131,8 +131,8 @@ int CResource::ConvertPathName(const char * c_szPathName, char * pszRetPathName,
|
||||
|
||||
void CResource::SetFileName(const char* c_szFileName)
|
||||
{
|
||||
// 2004. 2. 1. myevan. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>尡 <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD> static <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ°<CAB4><C2B0><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
// 2004. 2. 1. myevan. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> std::string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 2004. 2. 1. myevan. 쓰레드가 사용되는 상황에서 static 변수는 사용하지 않는것이 좋다.
|
||||
// 2004. 2. 1. myevan. 파일 이름 처리를 std::string 사용
|
||||
m_stFileName=c_szFileName;
|
||||
}
|
||||
|
||||
|
@ -10,9 +10,9 @@
|
||||
|
||||
int g_iLoadingDelayTime = 20;
|
||||
|
||||
const long c_Deleting_Wait_Time = 30000; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> (30<EFBFBD><EFBFBD>)
|
||||
const long c_DeletingCountPerFrame = 30; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD> üũ <20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
const long c_Reference_Decrease_Wait_Time = 30000; // <EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> (30<EFBFBD><EFBFBD>)
|
||||
const long c_Deleting_Wait_Time = 30000; // 삭제 대기 시간 (30초)
|
||||
const long c_DeletingCountPerFrame = 30; // 프레임당 체크 리소스 갯수
|
||||
const long c_Reference_Decrease_Wait_Time = 30000; // 선로딩 리소스의 해제 대기 시간 (30초)
|
||||
|
||||
CFileLoaderThread CResourceManager::ms_loadingThread;
|
||||
|
||||
@ -56,7 +56,7 @@ void CResourceManager::ProcessBackgroundLoading()
|
||||
ms_loadingThread.Request(stFileName);
|
||||
m_WaitingMap.insert(TResourceRequestMap::value_type(dwFileCRC, stFileName));
|
||||
itor = m_RequestMap.erase(itor);
|
||||
//break; // NOTE: <EFBFBD><EFBFBD><EFBFBD>⼭ break <EFBFBD>ϸ<EFBFBD> õõ<C3B5><C3B5> <20>ε<EFBFBD> <20>ȴ<EFBFBD>.
|
||||
//break; // NOTE: 여기서 break 하면 천천히 로딩 된다.
|
||||
}
|
||||
|
||||
DWORD dwCurrentTime = ELTimer_GetMSec();
|
||||
@ -74,7 +74,7 @@ void CResourceManager::ProcessBackgroundLoading()
|
||||
pResource->OnLoad(pData->dwSize, pData->pvBuf);
|
||||
pResource->AddReferenceOnly();
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD>⼭ <20>ö<EFBFBD><C3B6><EFBFBD> <20><><EFBFBD>۷<EFBFBD><DBB7><EFBFBD> ī<><C4AB>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڿ<EFBFBD> Ǯ<><C7AE><EFBFBD>ֱ<EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD>
|
||||
// 여기서 올라간 레퍼런스 카운트를 일정 시간이 지난 뒤에 풀어주기 위하여
|
||||
m_pResRefDecreaseWaitingMap.insert(TResourceRefDecreaseWaitingMap::value_type(dwCurrentTime, pResource));
|
||||
}
|
||||
}
|
||||
@ -85,7 +85,7 @@ void CResourceManager::ProcessBackgroundLoading()
|
||||
delete pData;
|
||||
}
|
||||
|
||||
// DO : <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20>ξ<EFBFBD><CEBE><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD>۷<EFBFBD><DBB7><EFBFBD> ī<><C4AB>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><>Ų<EFBFBD><C5B2> - [levites]
|
||||
// DO : 일정 시간이 지나고 난뒤 미리 로딩해 두었던 리소스의 레퍼런스 카운트를 감소 시킨다 - [levites]
|
||||
long lCurrentTime = ELTimer_GetMSec();
|
||||
|
||||
TResourceRefDecreaseWaitingMap::iterator itorRef = m_pResRefDecreaseWaitingMap.begin();
|
||||
@ -233,7 +233,7 @@ CResource * CResourceManager::GetTypeResourcePointer(const char * c_szFileName,
|
||||
DWORD dwFileCRC = __GetFileCRC(c_szFileName, &c_pszFile);
|
||||
CResource * pResource = FindResourcePointer(dwFileCRC);
|
||||
|
||||
if (pResource) // <EFBFBD>̹<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
if (pResource) // 이미 리소스가 있으면 리턴 한다.
|
||||
return pResource;
|
||||
|
||||
CResource * (*newFunc) (const char *) = NULL;
|
||||
@ -283,7 +283,7 @@ CResource * CResourceManager::GetResourcePointer(const char * c_szFileName)
|
||||
DWORD dwFileCRC = __GetFileCRC(c_szFileName, &c_pszFile);
|
||||
CResource * pResource = FindResourcePointer(dwFileCRC);
|
||||
|
||||
if (pResource) // <EFBFBD>̹<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
if (pResource) // 이미 리소스가 있으면 리턴 한다.
|
||||
return pResource;
|
||||
|
||||
const char * pcFileExt = strrchr(c_pszFile, '.');
|
||||
|
@ -272,7 +272,7 @@ void CSkyBox::SetCloudTexture(const char * c_szFileName)
|
||||
CGraphicImageInstance * pGraphicImageInstance = GenerateTexture(c_szFileName);
|
||||
m_GraphicImageInstanceMap.insert(TGraphicImageInstanceMap::value_type(m_FaceCloud.m_strfacename, pGraphicImageInstance));
|
||||
|
||||
// <EFBFBD>̰<EFBFBD> <20>Ⱦ<EFBFBD><C8BE>°<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? [cronan]
|
||||
// 이거 안쓰는거 같은데요? [cronan]
|
||||
// CGraphicImage * pImage = (CGraphicImage *) CResourceManager::Instance().GetResourcePointer("D:\\Ymir Work\\special/cloudalpha.tga");
|
||||
// m_CloudAlphaImageInstance.SetImagePointer(pImage);
|
||||
}
|
||||
@ -803,7 +803,7 @@ void CSkyBox::Update()
|
||||
|
||||
void CSkyBox::Render()
|
||||
{
|
||||
// 2004.01.25 myevan ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD>, DepthTest ó<EFBFBD><EFBFBD>
|
||||
// 2004.01.25 myevan 처리를 렌더링 후반으로 옮기고, DepthTest 처리
|
||||
STATEMANAGER.SaveRenderState(D3DRS_ZENABLE, TRUE);
|
||||
STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE);
|
||||
STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, FALSE);
|
||||
@ -872,7 +872,7 @@ void CSkyBox::RenderCloud()
|
||||
if (!pCloudGraphicImageInstance)
|
||||
return;
|
||||
|
||||
// 2004.01.25 myevan ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD>, DepthTest ó<EFBFBD><EFBFBD>
|
||||
// 2004.01.25 myevan 처리를 렌더링 후반으로 옮기고, DepthTest 처리
|
||||
STATEMANAGER.SaveRenderState(D3DRS_ZENABLE, TRUE);
|
||||
STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE);
|
||||
STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, FALSE);
|
||||
|
@ -19,7 +19,7 @@ int GetTextTag(const wchar_t * src, int maxLen, int & tagLen, std::wstring & ext
|
||||
extraInfo.assign(++cur, 8);
|
||||
return TEXT_TAG_COLOR;
|
||||
}
|
||||
else if (*cur == L'|') // ||<EFBFBD><EFBFBD> |<7C><> ǥ<><C7A5><EFBFBD>Ѵ<EFBFBD>.
|
||||
else if (*cur == L'|') // ||는 |로 표시한다.
|
||||
{
|
||||
tagLen = 2;
|
||||
return TEXT_TAG_TAG;
|
||||
@ -29,7 +29,7 @@ int GetTextTag(const wchar_t * src, int maxLen, int & tagLen, std::wstring & ext
|
||||
tagLen = 2;
|
||||
return TEXT_TAG_RESTORE_COLOR;
|
||||
}
|
||||
else if (*cur == L'H') // hyperlink |Hitem:10000:0:0:0:0|h[<EFBFBD≯<EFBFBD>]|h
|
||||
else if (*cur == L'H') // hyperlink |Hitem:10000:0:0:0:0|h[이름]|h
|
||||
{
|
||||
tagLen = 2;
|
||||
return TEXT_TAG_HYPERLINK_START;
|
||||
@ -154,20 +154,20 @@ int FindColorTagStartPosition(const wchar_t * src, int src_len)
|
||||
|
||||
const wchar_t * cur = src;
|
||||
|
||||
// |r<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// |r의 경우
|
||||
if (*cur == L'r' && *(cur - 1) == L'|')
|
||||
{
|
||||
int len = src_len;
|
||||
|
||||
// ||r<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// ||r은 무시
|
||||
if (len >= 2 && *(cur - 2) == L'|')
|
||||
return 1;
|
||||
|
||||
cur -= 2;
|
||||
len -= 2;
|
||||
|
||||
// |c<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>Ƽ<EFBFBD> |<7C><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
while (len > 1) // <EFBFBD>ּ<EFBFBD> 2<>ڸ<EFBFBD> <20>˻<EFBFBD><CBBB>ؾ<EFBFBD> <20>ȴ<EFBFBD>.
|
||||
// |c까지 찾아서 |위치까지 리턴한다.
|
||||
while (len > 1) // 최소 2자를 검사해야 된다.
|
||||
{
|
||||
if (*cur == L'c' && *(cur - 1) == L'|')
|
||||
return (src - cur) + 1;
|
||||
@ -175,9 +175,9 @@ int FindColorTagStartPosition(const wchar_t * src, int src_len)
|
||||
--cur;
|
||||
--len;
|
||||
}
|
||||
return (src_len); // <EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>;;
|
||||
return (src_len); // 못찾으면 전부;;
|
||||
}
|
||||
// ||<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// ||의 경우
|
||||
else if (*cur == L'|' && *(cur - 1) == L'|')
|
||||
return 1;
|
||||
|
||||
|
@ -332,7 +332,7 @@ void base64_decode(const char * str,char * resultStr)
|
||||
{
|
||||
i=0;
|
||||
strcpy(szDest, "");
|
||||
while(nCount<length && i<4) // 4<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>´<EFBFBD>.
|
||||
while(nCount<length && i<4) // 4개의 바이트를 얻는다.
|
||||
{
|
||||
r = str[nCount++];
|
||||
result = __base64_get(r);
|
||||
@ -340,13 +340,13 @@ void base64_decode(const char * str,char * resultStr)
|
||||
{
|
||||
if(result!=-1)
|
||||
szDest[i++] = result;
|
||||
else szDest[i++] = '@'; // It's end (64<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
else szDest[i++] = '@'; // It's end (64번은 디코딩시 사용되지 않기 때문)
|
||||
}
|
||||
}
|
||||
|
||||
if(i==4) // 4<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>. <20><><EFBFBD>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(i==4) // 4개의 소스를 모두 얻어냈다. 디코드 시작
|
||||
{
|
||||
if( nCount+3 >= length ) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>.
|
||||
if( nCount+3 >= length ) // 데이터의 끝에 도달했다.
|
||||
{
|
||||
if( szDest[1] == '@' )
|
||||
{
|
||||
|
@ -220,11 +220,11 @@ bool Group::GetArg(const char *c_arg_base, int arg_len, TArgList & argList)
|
||||
{
|
||||
isValue = true;
|
||||
}
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴϰ<C6B4>, <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD>۵<EFBFBD><DBB5><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ĭ<EFBFBD><C4AD> <20>dz<EFBFBD> <20>ڴ<EFBFBD>.
|
||||
// 값이 아니고, 이름이 시작되지 않았을 경우 빈칸은 건너 뛴다.
|
||||
else if (!isValue && iNameLen == 0 && isspace((unsigned char) c))
|
||||
{
|
||||
}
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD> <20>dz<EFBFBD> <20>ڴ<EFBFBD>
|
||||
// 엔터는 건너 뛴다
|
||||
else if (c == '\r' || c == '\n')
|
||||
{
|
||||
}
|
||||
@ -350,12 +350,12 @@ bool Group::Create(const std::string & stSource)
|
||||
memcpy(box_data, data_begin, data_len);
|
||||
box_data[data_len] = '\0';
|
||||
|
||||
data_len = LocaleString_RightTrim(box_data, data_len); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ĭ <20>ڸ<EFBFBD><DAB8><EFBFBD>
|
||||
data_len = LocaleString_RightTrim(box_data, data_len); // 오른쪽 빈칸 자르기
|
||||
}
|
||||
|
||||
{
|
||||
const char* space = LocaleString_FindChar(box_data, data_len, ' ');
|
||||
if (space) // <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (space) // 인자가 있음
|
||||
{
|
||||
int name_len = space - box_data;
|
||||
cmd.name.assign(box_data, name_len);
|
||||
@ -371,7 +371,7 @@ bool Group::Create(const std::string & stSource)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else // <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>.
|
||||
else // 인자가 없으므로 모든 스트링이 명령어다.
|
||||
{
|
||||
cmd.name.assign(box_data);
|
||||
cmd.argList.clear();
|
||||
|
Reference in New Issue
Block a user