📄 menu.cpp
字号:
else if( g_pointMouseY+(s->yl-GabY) > GAME_SCREEN_YSIZE ) moy = GAME_SCREEN_YSIZE - s->yl;
else moy = g_pointMouseY - GabY;
Box_( Mapx+mox, Mapy+moy, s->xl, s->yl, RGB16(255,255,255) );
if( GetSysInfo( SI_GAME_MAKE_MODE ) )
{
SetHangulAlign( TA_CENTER );
Hcolor( 255, 255, 255 );
Hprint2( 280, 80, g_DestBackBuf, "( %d, %d )", SubMenu->x, SubMenu->y );
}
SubMenu->nField[j].nShideNomalPlus = mox*1000 + moy;
}
if( SubMenu->nTemp && !LButtonDown )
{
SubMenu->x = SubMenu->nField[j].nShideNomalPlus / 1000;
SubMenu->y = SubMenu->nField[j].nShideNomalPlus % 1000;
SubMenu->nTemp = false;
SubMenu->nField[j].nSHideNomalCount = 0;
SubMenu->nField[j].nSHideNomalStart = 0;
SubMenu->nField[j].nShideNomalPlus = 0;
}
break;
}
case FT_MENU_MOVE : { // 皋春啊 框流牢促~~
if( !SMenu[ MN_ITEM ].bActive )
{
SmallMenuClose();
break;
}
if( SubMenu->nTemp && MouseDrag)
{
static int mox, moy;
int &GabX = SubMenu->nField[j].nSHideNomalCount;
int &GabY = SubMenu->nField[j].nSHideNomalStart;
if( g_pointMouseX < 0 || g_pointMouseX > 320+GABX_SCREEN*2 || g_pointMouseY < 0 || g_pointMouseY > 352+GABY_SCREEN*2 )
{
Box_( Mapx+mox, Mapy+moy, spr[SubMenu->nImageNumber].xl, spr[SubMenu->nImageNumber].yl, RGB16(255,255,255) );
break;
}
if( g_pointMouseX - GabX < 0 ) mox = 0;
else if( g_pointMouseX+(spr[SubMenu->nImageNumber].xl-GabX) > 320+GABX_SCREEN*2 ) mox = 320+GABX_SCREEN*2 - spr[SubMenu->nImageNumber].xl;
else mox = g_pointMouseX - GabX;
if( g_pointMouseY - GabY < 0 ) moy = 0;
else if( g_pointMouseY+(spr[SubMenu->nImageNumber].yl-GabY) > GAME_SCREEN_YSIZE ) moy = GAME_SCREEN_YSIZE - spr[SubMenu->nImageNumber].yl;
else moy = g_pointMouseY - GabY;
Box_( Mapx+mox, Mapy+moy, spr[SubMenu->nImageNumber].xl, spr[SubMenu->nImageNumber].yl, RGB16(255,255,255) );
if( GetSysInfo( SI_GAME_MAKE_MODE ) )
{
SetHangulAlign( TA_CENTER );
Hcolor( 255, 255, 255 );
Hprint2( 280, 80, g_DestBackBuf, "( %d, %d )", SubMenu->x, SubMenu->y );
}
SubMenu->nField[j].nShideNomalPlus = mox*1000 + moy;
}
if( SubMenu->nTemp && !LButtonDown )
{
SubMenu->x = SubMenu->nField[j].nShideNomalPlus / 1000;
SubMenu->y = SubMenu->nField[j].nShideNomalPlus % 1000;
SubMenu->nTemp = false;
SubMenu->nField[j].nSHideNomalCount = 0;
SubMenu->nField[j].nSHideNomalStart = 0;
SubMenu->nField[j].nShideNomalPlus = 0;
}
break;
}
case FT_MENU_MOVE_DIRECT : // 皋春啊 框流牢促~~
{
if( !SubMenu->nTemp ) break;
if( SubMenu->key != j ) break;
if( IsRightWindowOpen() && g_pointMouseX > 321+GABX_SCREEN) break;
if( IsLeftWindowOpen() && g_pointMouseX < 321 ) break;
if( MouseDrag )
{
int move_right = SCREEN_WIDTH;
int move_left = 0;
bool is_right_on = IsRightWindowOpen();
bool is_left_on = IsLeftWindowOpen();
if( is_right_on && is_left_on ) break;
else if( is_right_on ) move_right = 321+GABX_SCREEN;
else if( is_left_on ) move_left = 321;
static int mox, moy;
int &GabX = SubMenu->nField[j].nSHideNomalCount;
int &GabY = SubMenu->nField[j].nSHideNomalStart;
if( g_pointMouseX < 0 || g_pointMouseX > SCREEN_WIDTH || g_pointMouseY < 0 || g_pointMouseY > GAME_SCREEN_YSIZE )
{
break;
}
Spr *s = GetSprOfMenu( SubMenu->nImageType, SubMenu->nImageNumber );
if( !s ) break;
if( g_pointMouseX - GabX < move_left ) mox = move_left;
else if( g_pointMouseX+(s->xl-GabX) > move_right ) mox = move_right - s->xl;
else mox = g_pointMouseX - GabX;
if( g_pointMouseY - GabY < 0 ) moy = 0;
else if( g_pointMouseY+(s->yl-GabY) > GAME_SCREEN_YSIZE ) moy = GAME_SCREEN_YSIZE- s->yl;
else moy = g_pointMouseY - GabY;
SubMenu->x = mox;
SubMenu->y = moy;
SubMenu->nField[j].nShideNomalPlus = mox*1000 + moy;
//int ret = isCrashSmallMapByOther();
}
else
{
SubMenu->nTemp = 0;
SubMenu->nField[j].nShideNomalPlus = 0;
}
break;
}
case FT_HIDE_ISCROLL_AUTO_PUT : if( ((SubMenu->nField[SubMenu->nField[j].nWillDo].nSHideNomalStart) + (SubMenu->nField[SubMenu->nField[j].nWillDo].nShideNomalPlus)) >= (SubMenu->nField[SubMenu->nField[j].nWillDo].nSHideNomalCount) )
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType);
break;
}
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);
}
case FT_HIDE_ISCROLL_PUT : if(SubMenu->nField[j].fLButtonDown)
{ //胶农费 瞪版快甫 积阿秦 固府 裹困甫 眉农秦 胶农费阑 秦急 救登搁 break茄促
// if( ((SubMenu->nField[SubMenu->nField[j].nWillDo].nSHideNomalStart) + (SubMenu->nField[SubMenu->nField[j].nWillDo].nShideNomalPlus)) >= (SubMenu->nField[SubMenu->nField[j].nWillDo].nSHideNomalCount) )
// break;
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_DSCROLL_AUTO_PUT : if( ((SubMenu->nField[SubMenu->nField[j].nWillDo].nSHideNomalStart) - (SubMenu->nField[SubMenu->nField[j].nWillDo].nShideNomalPlus)) < 0 )
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType);
break;
}
if(SubMenu->nField[j].fRectMouse)
{
if( SubMenu->Id == MN_ITEM ) PrintQuickKey( "PGUP" );
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage, SubMenu->nField[j].nImageType);
}
case FT_HIDE_DSCROLL_PUT : if(SubMenu->nField[j].fLButtonDown)
{
// if( ((SubMenu->nField[SubMenu->nField[j].nWillDo].nSHideNomalStart) - (SubMenu->nField[SubMenu->nField[j].nWillDo].nShideNomalPlus)) < 0 )
// break;
if( SubMenu->Id == MN_ITEM ) PrintQuickKey( "PGDN" );
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType);
}
break;
case FT_PARTY : {
if( !SubMenu->CheakType )
{
SubMenu->CheakType = 1;
Kein_PutMessage( KM_INFO, kein_GetMenuString( 77 ) );
Kein_PutMessage( KM_INFO, kein_GetMenuString( 126 ) );
Kein_PutMessage( KM_INFO, kein_GetMenuString( 127 ) );
}
int para = SubMenu->nField[j].nWillDo;
CharacterParty target={0,};
switch( SubMenu->nTemp )
{
case PARTY : target = SCharacterData.party[para]; break;
case RELATION : target = SCharacterData.relation[para]; break;
case EMPLOYMENT : target = SCharacterData.employment[para]; break;
}
if( *target.m_Name )
{
if( SubMenu->nField[j].fLButtonDown )
PutCharImage( SubMenu->x+SubMenu->nField[j].x-30, SubMenu->y+SubMenu->nField[j].y-35, target.m_ImageNo, 6, FS_SMALL,2, target.m_Gender );
else PutCharImage( SubMenu->x+SubMenu->nField[j].x-30, SubMenu->y+SubMenu->nField[j].y-35, target.m_ImageNo, 0, FS_SMALL, 0, target.m_Gender );
}
break;
}
case FT_PARTY_FACE: {
CharacterParty leader={ 0, };
int para = SubMenu->nField[j].nWillDo;
FieldTypeNomalPut( SubMenu->x, SubMenu->y, 148, 110, 27, MAIN_ETC ); // 饭骇, str嘛绰 魄..
switch( SubMenu->nTemp )
{
case PARTY : leader = SCharacterData.party[para]; break;
case RELATION : leader = SCharacterData.relation[para]; break;
case EMPLOYMENT : leader = SCharacterData.employment[para]; break;
}
if( *leader.m_Name )
{
PutCharImage( SubMenu->x+SubMenu->nField[j].x-30, SubMenu->y+SubMenu->nField[j].y-35, leader.m_ImageNo, 0, FS_SMALL, 0, leader.m_Gender );
SetHangulAlign( TA_RIGHT );
if( !leader.m_Str ) // 0620 YGI
{
//Hprint2( SubMenu->x+275, SubMenu->y+115,g_DestBackBuf, "Unknown" );
}
else
{
//Hprint2( SubMenu->x+278, SubMenu->y+116,g_DestBackBuf, "%d", leader.m_Str );
SetHangulAlign( TA_LEFT );
//Hprint2( SubMenu->x+209, SubMenu->y+116,g_DestBackBuf, "%d", leader.m_Lv );
//PutLvNameByColor( SubMenu->x+162, SubMenu->y+116, leader.m_Lv , leader.m_Class ); // 0811 YGI
}
Hcolor( FONT_COLOR_DEFAULT );
SetHangulAlign( TA_CENTER );
Hprint2( SubMenu->x+236, SubMenu->y+144, g_DestBackBuf, "%s", SHideNomal[HN_MAKECHARACTER_CLASS_TEXT][leader.m_Class].temp );
Hcolor( FONT_COLOR_NAME );
Hprint2( SubMenu->x+221, SubMenu->y+99 ,g_DestBackBuf, "%s", leader.m_Name );
}
// 颇萍肺 烹秦 掘绰 版氰摹 焊咯林扁
// 2, 3, 4
SubMenu->nField[2].nType = FT_PUT_BUTTON;
SubMenu->nField[3].nType = FT_PUT_BUTTON;
SubMenu->nField[4].nType = FT_PUT_BUTTON;
switch( g_Menu_Variable.m_PartySelect )
{
case 0 :
case PS_EXP :
SubMenu->nField[2].nType = FT_NOMAL_PUT;
break;
case PS_TACTIC :
SubMenu->nField[3].nType = FT_NOMAL_PUT;
break;
case PS_MAGIC_TAC :
SubMenu->nField[4].nType = FT_NOMAL_PUT;
break;
}
break;
}
case FT_LEVELUP_BUTTON : {
static int ct=-1;
ct++;
if(ct > 20)
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage);
if(ct > 40) ct = 0;
}
if(SubMenu->nField[j].fRectMouse) PrintQuickKey( "U" );
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_LEVELUP :
{
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nSpecialWillDo,SubMenu->nField[j].nImageType);
if(SubMenu->nField[j].fRectMouse)
{
// if( !bSoundOn ) { MP3( SN_TOUCH ); bSoundOn = true; }
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nRectImage,SubMenu->nField[j].nImageType);//020515 lsw
}
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);//020515 lsw
}
}break;
case FT_FIRE : y_delay++;
if(y_delay==5)
{
cDiceCount++; // 促捞胶俊辑 墨款磐甫 眉农窍绰 函荐甫 捞侩
y_delay=0;
}
if(cDiceCount==33) cDiceCount=0; //醚 33橇饭烙
FieldTypeNomalPutFx(SubMenu->x,SubMenu->y,SubMenu->nField[j].x, SubMenu->nField[j].y-spr[cDiceCount+173].yl , cDiceCount+173, 15, 2 );
break;
case FT_GOD_INTRUDUCTION : { // 脚傈 汲疙 免仿
char *text;
text ="";
switch( SubMenu->nTemp )
{
case MN_GOD_EDELBLHOY : text = lan->OutputMessage(7,76); break;//010215 lsw
case MN_GOD_TEFFERY : text = lan->OutputMessage(7,77); break;//010215 lsw
case MN_GOD_LETTY : text = lan->OutputMessage(7,78); break;//010215 lsw
case MN_GOD_OREM : text = kein_GetMenuString( 35 ); break;
default : break;
}
if( !*text ) break;
RectTextPut(SubMenu->x+SubMenu->nField[j].x,SubMenu->y+SubMenu->nField[j].y,SubMenu->nField[j].nRectImage, text);
break;
}
case FT_GOD_MEETING :{
char *text;
text ="";
int &count = SubMenu->nField[j].nSHideNomalStart;
if( !SubMenu->CheakType )
{
SubMenu->CheakType = 1;
count = 0; // 胶农费阑 贸澜栏肺 倒妨 初绰促.
}
switch( SubMenu->nTemp )
{
case MN_GOD_EDELBLHOY :
{
switch( count )
{
case 0: text = lan->OutputMessage(7,79);break;//010215 lsw
case 1: text = lan->OutputMessage(7,80); break;//010215 lsw
}
break;
}
case MN_GOD_TEFFERY :
{
switch( count )
{
case 0: text = lan->OutputMessage(7,81);break;
case 1: text = lan->OutputMessage(7,82); break;
}
break;
}
case MN_GOD_LETTY :
{
switch( count )
{
case 0: text = lan->OutputMessage(7,83);break;//010215 lsw
case 1: text = lan->OutputMessage(7,84); break;//010215 lsw
}
break;
}
case MN_GOD_OREM :
{
switch( count )
{
case 0: text = lan->OutputMessage(7,83);break;//010215 lsw
case 1: text = lan->OutputMessage(7,84); break;//010215 lsw
}
break;
}
default : break;
}
if( !*text ) break;
RectTextPut(SubMenu->x+SubMenu->nField[j].x,SubMenu->y+SubMenu->nField[j].y,SubMenu->nField[j].nRectImage, text);
break;
}
case FT_GOD_REGIST_OKCANCEL : {
char text[20]="";
char text2[128];
GetBelieveGodByMenu( SubMenu->nTemp, text );
if( !*text ) break;
sprintf( text2, lan->OutputMessage(7,85), text );//010215 lsw
RectTextPut(SubMenu->x+SubMenu->nField[j].x,SubMenu->y+SubMenu->nField[j].y,SubMenu->nField[j].nRectImage, text2);
break;
}
case FT_PREACH_NAME :
{// 捞抚 嘛绰 沫
FieldTypeNomalPut(SubMenu->x, SubMenu->y, SubMenu->nField[j].x, SubMenu->nField[j].y, SubMenu->nField[j].nImageNumber, SubMenu->nField[j].nImageType );
int &count = SubMenu->nField[j].nSHideNomalCount;
char *name = SubMenu->nField[j].temp;
SetFocus2(HWND_3);
EWndMgr.GetTxt(HWND_3, name, 20);//021001 lsw
if( count % 16 < 8 )
{
char name2[30];
sprintf(name2, "%s_", name );
RectTextPut(SubMenu->x+SubMenu->nField[j].x+7,SubMenu->y+SubMenu->nField[j].y+9,SubMenu->nField[j].nRectImage, name2);
}
else RectTextPut(SubMenu->x+SubMenu->nField[j].x+7,SubMenu->y+SubMenu->nField[j].y+9,SubMenu->nField[j].nRectImage, name);
count++;
}break;
case FT_GOD_REGIST_ERROR : {
char text[1024];
char god[40];
int belive = GetBelieveGodByMenu( SubMenu->nTemp, god );
if( SCharacterData.believe_god == belive )
{
sprintf( text, lan->OutputMessage(7,86) );//010215 lsw
}
else sprintf( text, lan->OutputMessage(7,87), god );//010215 lsw
RectTextPut(SubMenu->x+SubMenu->nField[j].x,SubMenu->y+SubMenu->nField[j].y,SubMenu->nField[j].nRectImage, text);
break;
}
//------------------------------------------
case FT_PUBLIC_BBS : {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -