📄 menu.cpp
字号:
}
else
{
SMenu[i].nField[j].DragCount = 0;
}
}
}
}
}
}
else
{
LButtonCount = 0;
if(g_nLButtonState==STATE_BUTTON_RELEASED) //付快胶啊 规陛 冻绢柳 惑怕衬?
{
bSoundOn = false;
YouGotItemFlag = 0;
HandItemOn = false;
int kkk = ItemDrop();
LButtonDown=FALSE;
for(x=MAX_MAIN;x>=0;x--)
{
i=mainmenu[x];
if( mainmenu[x] == MN_MAININTERFACE && SkillStatus != SKILL_OFF ) continue;
if( MenuFocus(i) ) continue; //盔窍绰 皋春 窍唱俊父 付快胶 器目胶甫 敌促
if(! SMenu[i].bActive) continue;
for(j=0; j<SMenu[i].nFieldCount;j++)
{
SMenu[i].nField[j].DragCount = 0;
if( !MouseDrag || SMenu[i].nField[j].fLButtonDown )
{
if( MouseInRectCheak(SMenu[i].x, SMenu[i].y, SMenu[i].nField[j].rCheakBox))
{
SMenu[i].nField[j].fCheakFlag=TRUE;
DoButtonCheckOfMenu( i, j );
f_ReturnOn = true;
}
}
else if( g_MouseItemType && CanMoveItemToMenu(SMenu[i].nField[j].nType))
{
if( MouseInRectCheak(SMenu[i].x, SMenu[i].y, SMenu[i].nField[j].rCheakBox))
{
SMenu[i].nField[j].fCheakFlag=TRUE;
DoButtonCheckOfMenu( i, j );
f_ReturnOn = true;
}
}
SMenu[i].nField[j].fLButtonDown = false;
}
if( f_ReturnOn )
{
MouseDrag = FALSE;
return;
}
}
if( SMenu[MN_FACE].bActive )
{
//<< 031022 kyo
SMenu[MN_FACE].nField[21].fCheakFlag=TRUE;
//DoButtonCheckOfMenu( MN_FACE, 8 );
//>> 031022 kyo
return;
}
MouseDrag = FALSE;
}
}
PutMouseItemCheck(); // 付快胶 靛贰弊 吝 冻绢 哆副锭
}
void MenuSetting()
{
g_StartMenuOn = false;
for(int x=0;x<MAX_MAIN;x++) //老窜 葛电 皋春 备炼眉甸阑 厚劝己栏肺 汲沥
{
SMenu[mainmenu[x]].bActive=FALSE;
SMenu[mainmenu[x]].Id = mainmenu[x];
}
for(x=0;x<MAX_SMALL;x++)
{
SMenu[smallmenu[x]].bActive=FALSE;
SMenu[smallmenu[x]].Id = smallmenu[x];
}
LoadHangulEnglishFont( "./data/han.fnt", "./data/eng.fnt" );
HangulOutputArea( 0, SCREEN_WIDTH-1, 0, SCREEN_HEIGHT-1);
InitMenu();
ChatMgr.Clear();//020704 lsw//沁带 措拳 昏力
CurrentMsgMgr.Clear();//020704 lsw//目繁飘 皋技瘤 昏力
SetChatTarget(CHATTYPE_NORMAL);//020705 lsw
HotKeyMemory.Clear();
//捞何盒篮 概春啊 贸澜 技泼 登绰 镑.( 肺弊牢老锭)
g_cQuest.DeleteScriptTimer(); // 021025 kyo 肺变且锭 救瘤况柳 鸥捞赣,墨款磐 捞静搁 瘤款促.
g_cQuest.DeleteScriptCounter(); // 021025 kyo
}
/**************************************************************************************/
//劝己拳等 皋春狼 备己夸家甸阑 荐青
//免仿阑 窍绰 何盒
/**************************************************************************************/
void MenuSubProcessType(SMENU *SubMenu )
{
int i,j,k;
int code;
int lenght;
int LenghtTotal;
int ItemX,ItemY; //酒捞袍阑 颗辨锭 荤侩窍绰 眉农 困摹
int nWeapon_Type; //公扁 辆幅 魄窜阑 困茄 函荐 (公扁, 规菩, 秋镐, 癌渴)
BOOL flag=TRUE; int & ability=nWeapon_Type; // 林牢傍 瓷仿摹 免仿阑 困茄 烙矫 函荐
int &iMainX = SubMenu->x;//soto_030511
int &iMainY = SubMenu->y;//soto_030511
static int nCursor_Flicker=0; //濒冠捞绰 目辑甫 困茄 函荐
i = SubMenu->Id;
for(j=0;j<SubMenu->nFieldCount;j++) //皋春俊 备己夸家甸阑 荐青秦扼
{
if( !SubMenu->bActive ) break;
Hcolor( FONT_COLOR_NUMBER );
SetHangulAlign( TA_LEFT );
switch(SubMenu->nField[j].nType)
{
case FT_LOCALWAR_JOIN : // LTS MENU // LTS LOCALWAR // LTS NEW LOCALWAR
{
if (j==0) // 努赴茄芭甫 急琶茄促.
{
int Index=GetLocalWarMapMoveIndex();
// AddCurrentStatusMessage(255,255,0,"%d锅捞 急琶登菌嚼聪促.",GetLocalWarMapMoveIndex());
Spr *s = GetSprOfMenu( SubMenu->nField[Index].nImageType, SubMenu->nField[Index].nRectImage );
if( s ) PutCompressedImage( SubMenu->x+SubMenu->nField[Index].x+s->ox, SubMenu->y+SubMenu->nField[Index].y+s->oy, s); // 搬拌籍 磺俺柳芭
DrawLocalWarDefeat(SubMenu->nField[j].nImageType,j,SubMenu->x,SubMenu->y); // 搬拌籍 磺俺柳芭
}
if(SubMenu->nField[j].fRectMouse)
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage, SubMenu->nField[j].nImageType );
Spr *s = GetSprOfMenu( SubMenu->nField[j].nImageType, SubMenu->nField[j].nRectImage );
if( s ) PutCompressedImage( SubMenu->x+SubMenu->nField[j].x+s->ox, SubMenu->y+SubMenu->nField[j].y+s->oy, s); // 急琶等芭
s=GetSprOfMenu( SubMenu->nField[j].nImageType, 8 );
if (s) PutCompressedImage(SubMenu->x+335+s->ox,SubMenu->y+275+s->oy, s ); // 痢荐
if (SubMenu->nField[j].fLButtonDown) LocalWarMapMoveClick(j);
DrawLocalWarJoinInterface(SubMenu->nField[j].nImageType,j,SubMenu->x,SubMenu->y); // 搬拌籍 磺俺柳芭
DrawLocalWarDefeat(SubMenu->nField[0].nImageType,0,SubMenu->x,SubMenu->y); // 搬拌籍 磺俺柳芭
}
break;
}
case FT_NOMAL_PUT : if( SubMenu->nField[j].nImageNumber || SubMenu->nField[j].nImageType || SubMenu->Id == MN_SYSTEM_OPTION )
{
if( SubMenu->Id == MN_MAININTERFACE && j == 17 && SCharacterData.nLevel <= 8 )
{
static flag = 0;
if( flag%24 < 12 )
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j+1].nRectImage, SubMenu->nField[j+1].nImageType );
Spr *s = GetSprOfMenu( SubMenu->nField[j+1].nImageType, SubMenu->nField[j+1].nRectImage );
if( s )
PutCompressedImageFX( SubMenu->x+SubMenu->nField[j].x+s->ox, SubMenu->y+SubMenu->nField[j].y+s->oy, s, 4, 2 );
}
else
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType );
}
flag++;
}
else
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType );
if( (SubMenu->Id == MN_ARIGEMENT && j==0 )|| (SubMenu->Id == MN_STATUS && j==6) || (SubMenu->Id == MN_ABILITY && j==2) )
{
static int stch=0;
static int de=0;
FieldTypeNomalPutFx(SubMenu->x+11, SubMenu->y+6, SubMenu->nField[j].x, SubMenu->nField[j].y, 801+SCharacterData.nCharacterData[ARIGEMENT],de, 2);
if(stch > 15) de-=2;
else de+=2;
stch++;
stch %= 32;
}
}
}
break;
case FT_NOMAL_PUT_CENTER : {
Spr *s = GetSprOfMenu(SubMenu->nField[j].nImageType, SubMenu->nField[j].nImageNumber );
if( !s ) break;
Spr *main = GetSprOfMenu(SubMenu->nImageType, SubMenu->nImageNumber );
if( !main ) break;
PutCompressedImage(SubMenu->x+main->ox, SubMenu->y+SubMenu->nField[j].y+s->oy, s);
break;
}
case FT_SYSTEM_OPTION_SCROLL :
case FT_HIDE_AUTO_PUT : if(SubMenu->nField[j].fRectMouse)
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage, SubMenu->nField[j].nImageType);
// if( !bSoundOn ) { MP3( SN_TOUCH ); bSoundOn = true; }
}
case FT_HIDE_PUT : if(SubMenu->nField[j].fLButtonDown)
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType);
break;
case FT_HIDE_WILLDO_AUTO_PUT_MAGIC : if(SubMenu->nField[j].fRectMouse)
{
// if( !bSoundOn ) { MP3( SN_TOUCH ); bSoundOn = true; }
if( SubMenu->nField[j].nSpecialWillDo == 100 ) PrintQuickKey( "PGUP" );
else PrintQuickKey( "PGDN" );
}
case FT_HIDE_WILLDO_AUTO_PUT : if(SubMenu->nField[j].fRectMouse)
{
// if( !bSoundOn ) { MP3( SN_TOUCH ); bSoundOn = true; }
if(SubMenu->nField[j].nRectImage == 16 || SubMenu->nField[j].nRectImage == 23 || SubMenu->nField[j].nRectImage == 758)
{
static int tt;
static int de =10;
if( tt ) { de ++; if( de > 12 ) { tt = !tt; } }
else { de --; if( de < 3 ) { tt = !tt; } }
FieldTypeNomalPutFx(SubMenu->x,SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y , SubMenu->nField[j].nRectImage , de, 2 );
}
else FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage);
}
case FT_HIDE_WILLDO_PUT : if(SubMenu->nField[j].fLButtonDown)
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber);
}
break;
case FT_PUT_BUTTON :
{
int image1 = SubMenu->nField[j].nSHideNomalCount; // 乞家 滚瓢
int image2 = SubMenu->nField[j].nRectImage; // 灌篮 滚瓢
int image3 = SubMenu->nField[j].nImageNumber; // 喘赴 滚瓢
int image_type = SubMenu->nField[j].nImageType; // 捞固瘤 鸥涝
if(SubMenu->nField[j].fLButtonDown)
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, image3, image_type );
else if( SubMenu->nField[j].fRectMouse)
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, image2, image_type );
else
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, image1, image_type );
break;
}
case FT_BBS_GO :{
int para = SubMenu->nField[SubMenu->nField[j].nSHideNomalStart].nSHideNomalStart+SubMenu->nField[j].nSHideNomalCount;
if( !(*c_BbsTitle[para].m_Name) ) break;
if( SubMenu->nField[j].fRectMouse )
{
// if( !bSoundOn ) { MP3( SN_TOUCH ); bSoundOn = true; }
static int tt;
static int de =10;
if( tt ) { de ++; if( de > 12 ) { tt = !tt; } }
else { de --; if( de < 3 ) { tt = !tt; } }
FieldTypeNomalPutFx(SubMenu->x,SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y , SubMenu->nField[j].nRectImage, de, 2 );
}
int t = SubMenu->work;
if( t )
{
static start = SubMenu->nField[SubMenu->nField[j].nSHideNomalStart].nSHideNomalStart;
if( start != SubMenu->nField[SubMenu->nField[j].nSHideNomalStart].nSHideNomalStart )
{
SubMenu->work = 0;
start = SubMenu->nField[SubMenu->nField[j].nSHideNomalStart].nSHideNomalStart;
break;
}
FieldTypeNomalPut(SubMenu->x,SubMenu->y, SubMenu->nField[t].x, SubMenu->nField[t].y , SubMenu->nField[t].nImageNumber);
para = SubMenu->nField[SubMenu->nField[t].nSHideNomalStart].nSHideNomalStart+SubMenu->nField[t].nSHideNomalCount;
int date = SubMenu->nField[t].nShideNomalPlus;
Hcolor( FONT_COLOR_NAME );
Hprint2( SubMenu->x+SubMenu->nField[date].x, SubMenu->y+SubMenu->nField[date].y, g_DestBackBuf, " %s", c_BbsTitle[para].m_Name);
Hcolor( FONT_COLOR_NUMBER );
Hprint2( SubMenu->x+SubMenu->nField[date].x, SubMenu->y+SubMenu->nField[date].y, g_DestBackBuf, "%04d/%02d/%02d", c_BbsTitle[para].m_Year, c_BbsTitle[para].m_Month, c_BbsTitle[para].m_Day );
}
break;
}
case FT_MAIN_MENU : {
int &bLButtonDownOn = SubMenu->nField[j].nShideNomalPlus;
if( (SubMenu->nField[j].RectCount > 5) && !bLButtonDownOn )
{
Hcolor( 0 );
SetHangulAlign( TA_CENTER );
switch( SubMenu->nField[j].nSpecialWillDo )
{
case SWD_MAININTERFACE_ITEM : MenuButtonRightExplain( SubMenu->x+SubMenu->nField[j].x, SubMenu->y+SubMenu->nField[j].y, SubMenu->nField[j].nSHideNomalCount, "Item Inventory" );
PrintQuickKey( "S" );
break;
case SWD_MAININTERFACE_MAGIC : MenuButtonRightExplain( SubMenu->x+SubMenu->nField[j].x, SubMenu->y+SubMenu->nField[j].y, SubMenu->nField[j].nSHideNomalCount, "Magic Select" );
PrintQuickKey( "W" );
break;
case SWD_MAININTERFACE_PARTY : MenuButtonLeftExplain( SubMenu->x+SubMenu->nField[j].x, SubMenu->y+SubMenu->nField[j].y, SubMenu->nField[j].nSHideNomalCount, "Party" );
PrintQuickKey( "Q" );
break;
case SWD_MAININTERFACE_SKILL : MenuButtonLeftExplain( SubMenu->x+SubMenu->nField[j].x, SubMenu->y+SubMenu->nField[j].y, SubMenu->nField[j].nSHideNomalCount, "SKILL" );
PrintQuickKey( "A" );
break;
case SWD_MENU_OPEN : switch( SubMenu->nField[j].nWillDo )
{
case MN_SYSTEM : MenuButtonRightExplain( SubMenu->x+SubMenu->nField[j].x, SubMenu->y+SubMenu->nField[j].y, SubMenu->nField[j].nSHideNomalCount, "System Option" );
PrintQuickKey( "X" );
break;
}
break;
}
}
else SubMenu->nField[j].nSHideNomalCount = 100;
if( SubMenu->nField[j].fLButtonDown || SubMenu->nField[j].fCheakFlag ) bLButtonDownOn = true;
if( !SubMenu->nField[j].fRectMouse ) bLButtonDownOn = false;
}
case FT_HIDE_SPECIAL_WILLDO_AUTO_PUT :{
if(SubMenu->nField[j].fRectMouse)
{
// if( !bSoundOn ) { MP3( SN_TOUCH ); bSoundOn = true; }
switch( SubMenu->nField[j].nSpecialWillDo )
{
case SWD_MAININTERFACE_STATUS : PrintQuickKey( "C" ); break;
case SWD_INFO_FLAG_SET : PrintQuickKey( "M" ); break;
break;
}
if( (SubMenu->nField[j].nImageType==DEFAULT_MENU) && ( SubMenu->nField[j].nRectImage == 16 || SubMenu->nField[j].nRectImage == 23 || SubMenu->nField[j].nRectImage == 758) )
{
static int tt;
static int de =10;
if( tt ) { de ++; if( de > 15 ) { tt = !tt; } }
else { de --; if( de < 7 ) { tt = !tt; } }
FieldTypeNomalPutFx(SubMenu->x,SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y , SubMenu->nField[j].nRectImage, de, 2 );
}
else FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage, SubMenu->nField[j].nImageType);
}
}
case FT_HIDE_SPECIAL_WILLDO_PUT :
if(SubMenu->nField[j].fLButtonDown)
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType);
if( (SubMenu->Id == MN_ARIGEMENT && j==1 )|| (SubMenu->Id == MN_STATUS && j==7) || (SubMenu->Id == MN_ABILITY && j==3) )
{
static int stch=0;
static int de=0;
FieldTypeNomalPutFx(SubMenu->x+11, SubMenu->y+6, SubMenu->nField[j].x, SubMenu->nField[j].y, 801+SCharacterData.nCharacterData[ARIGEMENT],de, 2);
if(stch > 15) de-=2;
else de+=2;
stch++;
stch %= 32;
}
}break;
case FT_MAKE_RARE_MORE://011013 lsw
case FT_RARE_GROUP_SCROLL://011014 lsw
//011004 lsw >
case FT_SHOW_SPECIAL_WILLDO_AUTO_PUT :
{
if(SubMenu->nField[j].fRectMouse)
{
if(SubMenu->nField[j].fLButtonDown)//滚瓢 努腐 捞亥飘
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage, SubMenu->nField[j].nImageType );
}
else
{
FieldTypeNomalPut (SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y , SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType );
FieldTypeNomalPutFx3(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y , SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType, 3, 2 );
}
}
else
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType );
}
}
break;
//011004 lsw <
case FT_MENU_MOVE_DEFAULT :
{ // 皋春啊 框流牢促~~
if( SubMenu->nTemp && MouseDrag)
{
static int mox, moy;
int &GabX = SubMenu->nField[j].nSHideNomalCount;
int &GabY = SubMenu->nField[j].nSHideNomalStart;
Spr *s = GetSprOfMenu( SubMenu->nImageType, SubMenu->nImageNumber );
if( !s ) return;
if( g_pointMouseX < 0 || g_pointMouseX > GAME_SCREEN_XSIZE || g_pointMouseY < 0 || g_pointMouseY > GAME_SCREEN_YSIZE )
{
Box_( Mapx+mox, Mapy+moy, s->xl, s->yl, RGB16(255,255,255) );
break;
}
if( g_pointMouseX - GabX < 0 ) mox = 0;
else if( g_pointMouseX+(s->xl-GabX) > GAME_SCREEN_XSIZE ) mox = GAME_SCREEN_XSIZE - s->xl;
else mox = g_pointMouseX - GabX;
if( g_pointMouseY - GabY < 0 ) moy = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -