📄 smallmenu.cpp
字号:
fRMoveMenu=0;
SMenu[MN_PARTY].x=480;
SMenu[MN_PARTY].bActive=FALSE;
MenuStack.DelMenu(MN_PARTY);
if(nPartyState != nPartyOther || nPartyState)
{
if(nPartyState)
{
SMenu[nPartyState].bActive=FALSE; // 皋春甫 厚 劝己栏肺 父电饶
// MenuStack.DelMenu(nPartyState);
}
if(nPartyOther)
{
SMenu[nPartyOther].bActive=TRUE; // 眉农等 皋春甫 劝己拳 矫挪促.
// MenuStack.PutMenu(nPartyOther);
}
}
nPartyState = 0;
nPartyOther=0;
}
cRMoveMenu++;
break;
case MN_GM_2ND_SKILL://010708 lsw 咯扁辑 啊悼 !
{
SMenu[MN_GM_2ND_SKILL].bActive=TRUE;
SMenu[MN_GM_2ND_SKILL].x=SCREEN_WIDTH-64*cRMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cRMoveMenu == 5 )
{
cRMoveMenu=0;
fRMoveMenu=0;
RightClose();
SMenu[MN_GM_2ND_SKILL].bActive=TRUE;
if( nItemOther )
{
SMenu[nItemOther].bActive = TRUE; // 酒捞袍苞 鞍捞 栋具窍绰 皋春啊 乐促搁 鞍捞 夺促.
nItemOther = 0;
LeftMenuClose();
}
MenuStack.PutMenu(MN_GM_2ND_SKILL);
break;
}
cRMoveMenu++;
break; //捞犯霸 秦辑 付快胶 涝仿阑 阜绰促.
}
default : fRMoveMenu=0; break;
}
}
void CallSmallMenu(int menu, int pre, int sound)
{
SetChatMode(CM_COMMAND,true);//021001 lsw //牢磐其捞胶 哆搁 公炼扒 盲泼芒 摧绰促
EWndMgr.ClearAllTxt();//021001 lsw
if (SMenu[MN_NATION_WAR_RESULT].bActive)
{
return;
}
if (menu)
{
if (SMenu[menu].bActive)
{
return; // 鞍篮 皋春啊 栋 乐阑 版快 府畔...
}
CloseAllMenu(); // 葛电 皋春甫 摧绊...
SMenu[menu].bActive = TRUE;
if (pre)
{
SMenu[menu].nTemp = pre; // default 0
}
y_MenuFocus = menu;
if (sound != SN_MENU_OPEN)
{
MP3(sound);
}
else
{
switch (menu)
{
case MN_MEM_BOOK:
{
MP3(SN_MAGIC_BOOK_OPEN);
break;
}
case MN_QUEST_INDEX:
case MN_LEARN_MAGIC_BOOK:
{
MP3(SN_GET_BOOK);
break;
}
case MN_DIVIDE_ITEM:
case MN_DISTANCE_TABLE:
case MN_STORE_SIGN:
{
MP3(SN_BOX_OPEN);
break;
}
case MN_NATION_BATTLE_BBS:
{
MP3(50);
break;
}
case MN_NATION_DONEBOX:
{
MP3(67);
break;
}
case MN_NATION_WAR_START:
{
MP3(67);
break;
}
default:
{
MP3(SN_MENU_OPEN);
break;
}
}
}
}
else
{
is_mainmenu_active = 0;
y_MenuFocus = 0;
}
is_mainmenu_active = false;
SoundOn = false;
}
void PrintMoney(SMENU *SubMenu, int j, DWORD result, int BoxSize)
{
SetHangulAlign( TA_RIGHT );
int x = SubMenu->x+SubMenu->nField[j].x+BoxSize;
int y = SubMenu->y+SubMenu->nField[j].y;
if( result < 1000)
{
Hprint2( x, y, g_DestBackBuf,"%u", result);
}
else if(result < 1000000)
{
DWORD first, second;
first = result / 1000 ;
second = result % 1000 ;
Hprint2( x, y, g_DestBackBuf,"%u,%03u", first, second);
}
else// if(result < 1000000000 )
{
DWORD first, second, third;
first = result / 1000000;
second = (result - first * 1000000) / 1000;
third = result - first * 1000000 - second*1000;
Hprint2( x,y, g_DestBackBuf,"%u,%03u,%03u", first, second, third);
}
}
ItemAttr ExplainItemAttr;
void ItemExplain(ItemAttr item)
{
ExplainItemAttr = item;
return;
}
void ItemExplain( int item )
{
ExplainItemAttr = GenerateItem( item );
return;
}
int ItemExplainAfterMenuDisplay( int prev ) // 唱吝俊 汲疙阑 剁款促.
{
if (Hero != NULL && Hero->viewtype == VIEWTYPE_OBSERVE_)
{ //< CSD-TW-030618
return 0;
} //> CSD-TW-030618
int ret=0;
static ItemAttr ExplainItem_back = ExplainItemAttr;
if( (ExplainItem_back.item_no != ExplainItemAttr.item_no) || ( ExplainItem_back.attr[IATTR_DURATION] != ExplainItemAttr.attr[IATTR_DURATION] )) // 付瘤阜 橇饭烙俊 汲疙茄锅 歹 嘛扁
{
if( ExplainItem_back.item_no && !ExplainItemAttr.item_no )
{
ItemAttr temp = ExplainItemAttr;
ExplainItemAttr = ExplainItem_back;
ExplainItem_back = temp;
}
else ExplainItem_back = ExplainItemAttr;
}
ItemAttr &item = ExplainItemAttr;
if( prev || !item.item_no )
{
memset( &item, 0, sizeof( ItemAttr ) );
return 0;
}
ExplainItem2( 0, 0, &item );
memset( &item, 0, sizeof( ItemAttr ) );
return 1;
}
void MagicExplain(int num)
{
if( !y_MenuFocus && (g_MouseItemType != 1) && num)
{
const BOOL bSpell = SCharacterData.nCharacterData[SPELL];
magic[num].Explain(Hero->x-Mapx+20,Hero->y-Mapy-80,bSpell);
}
}
void PrintDate(SMENU* SubMenu , int j, DWORD time, int width)
{
char date[20];
int year;
int month;
int day;
year = (int) (time / 1000 / 3600 / 24 / 360); time %= (DWORD) (1000.0 * 3600.0 * 24.0 * 360.0);
month = (int) (time / 1000 / 3600 / 24 / 30); time %= (DWORD) (1000.0 * 3600.0 * 24.0 * 30.0);
day = (int) (time / 1000 / 3600 / 24);
wsprintf(date, "%4d:%02d:%02d\0", year, month, day);
SetHangulAlign( TA_CENTER ) ;
int p = (int)(width / 2 +0.5);
Hprint2( SubMenu->x+SubMenu->nField[j].x+p, SubMenu->y+SubMenu->nField[j].y, g_DestBackBuf,"%s", date);
}
void PrintText(SMENU* SubMenu, int j, char *str, int width)
{
SetHangulAlign( TA_CENTER );
int p = (int) ( width/2 +0.5 );
Hprint2( SubMenu->x+SubMenu->nField[j].x+p, SubMenu->y+SubMenu->nField[j].y, g_DestBackBuf,"%s", str);
}
bool IsMenuActive() // 劝己拳等 皋春救俊 付快胶啊 乐绰瘤甫 魄窜
{
return g_MouseInMenu;
}
inline void LeftClose() // 哭率 芒 葛滴 摧扁 ( 婆 窍绊.. )
{
SMenu[MN_STATUS].bActive=FALSE;
SMenu[MN_ABILITY].bActive=FALSE;
SMenu[MN_ARIGEMENT].bActive=FALSE;
SMenu[MN_TACTICS].bActive=FALSE;
MenuStack.DelMenu(MN_STATUS);
MenuStack.DelMenu(MN_ABILITY);
MenuStack.DelMenu(MN_ARIGEMENT);
MenuStack.DelMenu(MN_TACTICS);
}
inline void RightClose() //坷弗率 芒 肯傈洒 促 磷老锭..
{
SMenu[MN_ITEM].bActive=FALSE;
SMenu[MN_PARTY].bActive=FALSE;
MenuStack.DelMenu(MN_ITEM);
MenuStack.DelMenu(MN_PARTY);
}
BOOL MenuFocus(int menu) //皋春 刀痢牢瘤 魄窜
{
if(y_MenuFocus)
{
if(y_MenuFocus != menu)
{
return true;
switch(menu)
{
case MN_MAININTERFACE :
case MN_STATUS :
case MN_ABILITY :
case MN_ITEM :
case MN_ARIGEMENT :
case MN_MAKECHARACTER_CHEAK3 :
case MN_MAKECHARACTER_ABILITY :
case MN_TACTICS:
return TRUE;
default : break;
}
}
else return false;
}
return FALSE;
}
void PutMouseItemCheck()
{
if( g_MouseItemType && !MouseDrag && !HandItemOn && !LButtonDown )
{
if( g_MouseItemType==1 )
{
switch ( IP_base.type )
{
case EQUIP:{
int a, b, c;
if( SearchEmpty(a, b, c) )
{
InvItemAttr[a][b][c] = HandItemAttr;
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a, b, c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t, false );
}
else
{
SendDropItem( HandItemAttr.item_no, Hero->x, Hero->y, HandItemAttr.attr );
}
break;
}
/* case EQUIP: if(GetItemAttr(HandItemAttr.item_no, WEAR_ABLE) == WearAble[IP_base.p3] && !EquipItemAttr[IP_base.p3].item_no) // 公扁 酒捞袍 芒俊辑 都绢辰 酒捞袍
{
POS s;
EquipItemAttr[IP_base.p3]= HandItemAttr;
SetItemPos(HAND, &s);
SendMoveItem( HandItemAttr.item_no, s, IP_base );
}
else
{
int a, b, c;
if( SearchEmpty(a, b, c) )
{
InvItemAttr[a][b][c] = HandItemAttr;
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a, b, c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t );
}
else
{
SendDropItem( HandItemAttr.item_no, Hero->x, Hero->y, HandItemAttr.attr );
}
}
break;
*/
case QUICK : if(GetItemAttr(HandItemAttr.item_no, WEAR_ABLE) == WEAR_BELT) // 窜绵 酒捞袍 芒俊辑 都绢辰 酒捞袍
{
QuickItemAttr[IP_base.p3] = HandItemAttr;
POS s;
SetItemPos(HAND, &s);
SendMoveItem(HandItemAttr.item_no,s, IP_base, false);
}
else
{
int a, b, c;
if( SearchEmpty(a, b, c) )
{
InvItemAttr[a][b][c] = HandItemAttr;
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a, b, c, &pos_t);
SendMoveItem( HandItemAttr.item_no,pos_s, pos_t, false );
}
else
{
SendDropItem( HandItemAttr.item_no, Hero->x, Hero->y, HandItemAttr.attr );
}
}
break;
case BANK :{
BankItemAttr[IP_base.p1][IP_base.p2][IP_base.p3] = HandItemAttr;
POS pos_s;
SetItemPos(HAND, &pos_s);
SendMoveItem( HandItemAttr.item_no,pos_s, IP_base , false);
break;
}
case GROUND : {
int a, b, c;
int kind = GetItemAttr(HandItemAttr.item_no, ITEM_KIND);
if( kind == IK_NEW_MONEY )
{
if( SearchNewCoinItem( a, b, c ) )
{
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a,b,c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t, false );
//ChangeItemAttr( &InvItemAttr[a][b][c], CIA_MUCH, HandItemAttr.attr[IATTR_MUCH], 0 );
break;
}
}
else if( kind == IK_MONEY )
{
if( SearchCoinItem( a, b, c ) )
{
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a,b,c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t, false );
//ChangeItemAttr( &InvItemAttr[a][b][c], CIA_MUCH, HandItemAttr.attr[IATTR_MUCH], 0 );
break;
}
}
else if( GetItemAttr( HandItemAttr.item_no, DO_RBUTTON )==DIVIDE_ITEM && SearchItemPosByNumber( &HandItemAttr, a, b, c ) )
{
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a, b, c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t , false);
//ChangeItemAttr( &InvItemAttr[a][b][c], CIA_MUCH, HandItemAttr.attr[IATTR_MUCH], 0 );
break;
}
if( SearchEmpty(a, b, c) )
{
InvItemAttr[a][b][c] = HandItemAttr;
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a, b, c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t, false );
}
else
{
SendDropItem( HandItemAttr.item_no, Hero->x, Hero->y, HandItemAttr.attr );
}
break;
}
default : {
if( InvItemAttr[IP_base.p1][IP_base.p2][IP_base.p3].item_no )
{
int a, b, c;
if( SearchEmpty(a, b, c) )
{
InvItemAttr[a][b][c] = HandItemAttr;
POS pos_s, pos_t;
SetItemPos(HAND, &pos_s);
SetItemPos(INV, a, b, c, &pos_t);
SendMoveItem( HandItemAttr.item_no, pos_s, pos_t , false);
}
else
{
SendDropItem( HandItemAttr.item_no, Hero->x, Hero->y, HandItemAttr.attr );
}
}
else
{
InvItemAttr[IP_base.p1][IP_base.p2][IP_base.p3] = HandItemAttr;
POS pos_s;
SetItemPos(HAND, &pos_s);
SendMoveItem( HandItemAttr.item_no, pos_s, IP_base , false);
break;
}
}
}
}
g_MouseItemNumber = 0;
g_MouseItemType = 0;
// SetItemPos(HAND, &IP_base);
DeleteItem( &HandItemAttr );
g_DropOnHero = false;
}
}
void PutMouseItem()
{
if( g_MouseItemType==1 )
{
if( MouseItemInRectOn && !SMenu[MN_ITEM].bActive ) MouseItemInRectOn = 0;
if( MouseDrag || HandItemOn || LButtonDown )
{
if( MouseItemInRectOn )
PutItemIcon(MouseItemInRect.x, MouseItemInRect.y, HandItemAttr.item_no);
else if( (HandItemAttr.item_no / 1000) == POTION )
{
//MP3( SN_TOUCH_POTION );
PutItemIconAni(g_pointMouseX, g_pointMouseY, HandItemAttr.item_no);
}
else PutItemIcon(g_pointMouseX, g_pointMouseY, HandItemAttr.item_no);
}
ItemExplain( HandItemAttr );
}
else if( g_MouseItemType == PARTY )
{
PutCharImage( g_pointMouseX-30, g_pointMouseY-35, mouse_ch.m_ImageNo, 0, FS_SMALL, 0, mouse_ch.m_Gender );
}
if(MessageOn) // 盖付瘤阜俊 皋矫瘤 贸府
{
kein_TextPut(249, 20+352, Message);
}
ItemExplainAfterMenuDisplay(0); // 盖付瘤阜俊 酒捞袍 焊咯林扁
}
bool IsRightWindowOpen()
{
int rightmenu[] = {
MN_ITEM,
MN_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -