#include "StdAfx.h" #include "UINodeData.h" #include "UISkinLexer.h" #include "UIManager.h" #include "Parser.h" #include "UIRect.h" cUINodeSkin::cUINodeSkin( eUINodeType type ) : mType( type ) , mpTexture( 0 ) , mSkinInfo(0) { mSkinInfo = new sSkinInfo; mColor = NiColorA::WHITE; mDefaultColor = COLOR_WHITE; } cUINodeSkin::~cUINodeSkin() { SAFE_DELETE( mSkinInfo ); } /// ÁÖÀÇ»çÇ× : °¢ À©µµ¿ì³ª ÀڽĵéÀÇ ¼Ó¼º°ªÀ» ÀоîµéÀδ٠bool cUINodeSkin::ParseLine( cParser& parser, cToken& token ) { switch( token.mType ) { case eTOKEN_IMAGEINDEX: { int i = parser.ParseInt(); mpTexture = UIMAN->GetSkin()->GetTexture( i ); /// ÇØ´ç À妽ºÀÇ ÅØ½ºÃİ¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é, if( !mpTexture ) { assert( 0 && "error!! not exist image index" ); return false; } } break; case eTOKEN_POS: { mSkinInfo->mX = parser.ParseInt(); mSkinInfo->mY = parser.ParseInt(); } break; case eTOKEN_SIZE: { mSkinInfo->mWidth = mSkinInfo->mTexWidth = parser.ParseInt(); mSkinInfo->mHeight = mSkinInfo->mTexHeight = parser.ParseInt(); } break; case eTOKEN_TEXPOS: { mSkinInfo->mTexX = parser.ParseInt(); mSkinInfo->mTexY = parser.ParseInt(); } break; case eTOKEN_TEXSIZE: { // 070424 ÇöÀç´Â ÇÊ¿ä¾ø´Â Ű¿öµå. KKR // UIImage ÀÚü°¡ È®´ë, Ãà¼Ò±â´ÉÀÌ ¾ø´Ù. mSkinInfo->mTexWidth = parser.ParseInt(); mSkinInfo->mTexHeight = parser.ParseInt(); } break; case eTOKEN_HOVERTIPINDEX: { mSkinInfo->mHoverTipIndex = parser.ParseInt(); } break; default: TCHAR buffer[ 80 ]; _stprintf_s( buffer, _T( "%s ÆÄÀÏÀÇ %d ¹øÂ° ÁÙ¿¡¼­ ¿À·ù" ), parser.GetFileName(), parser.GetLineNum() ); assert( 0 && buffer ); return false; } return true; } /// ÁÖÀÇ»çÇ× : bool cUINodeSkin::IsValid() const { /// À¯È¿¼º °Ë»ç¸¦ Çϳª, »çÀÌÁî°¡ ¾øÀ» °æ¿ì¿¡µµ /// ¹®Á¦°¡ ¾øÀÌ µ¹¸®±â À§ÇØ ±×³É Æ®·ç ¸®ÅÏ // if( mSkinInfo->mX < 0 || mSkinInfo->mY < 0 ) // { // assert( 0 && "error [x, y] value in script" ); // return false; // } if( mSkinInfo->mTexY < 0 || mSkinInfo->mTexX < 0 ) { assert( 0 && "error [texX, texY] value in script" ); return false; } if( mSkinInfo->mWidth < 0 || mSkinInfo->mHeight < 0 ) { assert( 0 && "error [size] value in script" ); return false; } return true; }