📄 kh_menu.cpp
字号:
// menu.cpp
#include "stdafx.h"
#include <ddraw.h>
#include "Hangul.h"
#include "dragon.h"
#include "Menu.h"
#include "Hong_Sprite.h"
#include "SmallMenuSet.h"
#include "stdio.h"
#include "directsound.h"
#include "directinput.h"
#include "Char.h"
// #include "network.h"
#include "SmallMenu.h"
#include "Hong_Sub.h"
#include "Effect.h"
#include "map.h"
#include "tool.h"
#include "MenuSet.h"
#include "skill.h"
#include "Item.h"
#include "MenuNetwork.h"
#include "MouseCursor.h"
#include "gameproc.h"
#include "kh_cpp.h"
#include "chardatatable.h"
void CallKhMenuProc( int menu, int field ) // 拳搁 免仿 // 概春啊 惯积窍绰 镑捞扼 被捞 风橇 倒副 鞘夸 绝澜
{
SMENU *SubMenu = &SMenu[menu];
int j = field;
int i = menu;
switch( SMenu[menu].nField[field].nType )
{
case FT_QUEST_SCROLL : {
// 涅胶飘 抛捞喉 单捞磐甫 佬绢 柯促.........................................
if( quest_text[0].name[0] == 0 ) {
LoadQuestTable("./data/quest.txt","./data/questpic.txt","./data/questpic.bin");
}
// 付快胶啊 喘妨柳锭狼 鸥老拳 谅钎蔼阑 涵凯俊 持绢 弊蔼阑 函荐俊 持绰促. ...
int quest_num1 = quest_num[SubMenu->work];
// 弊覆 嘛绰 风凭
//弊覆捞 割厘 观俊 绝绰 包拌肺
//FieldTypeNomalPut( SubMenu->x, SubMenu->y, 57, 34, quest_num1+2, SubMenu->nField[j].nImageType );
//窍唱肺 弓阑荐档 乐栏骨肺 FieldTypeNomalPut( SubMenu->x, SubMenu->y, 80, 70, 6+涅胶飘 锅龋, SubMenu->nField[j].nImageType );
// 付快胶啊 荤阿屈 救俊辑 喘妨瘤搁.......................................................
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 );
}
// 付快胶啊 荤阿屈 困俊 棵扼 坷搁.........................................................
else 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 );
}
// 巩磊甫 嘛绰促.
Hcolor(40,30,20);
// 涅胶飘 弊覆 阂矾坷扁
if(quest_text[quest_num1-1].picnum ){
Spr *s = &quest_text[quest_num1-1].sq;
if( !s->img )
LoadSpriteOnlyOne( s,quest_text[quest_num1-1].picture);
PutCompressedImage(SubMenu->x+57+63, SubMenu->y+34+80, s );
}
//父距俊 己傍茄 涅胶飘 老锭
if(end_quest[SubMenu->work]){
Hcolor( 0,0,200);
SetHangulFont(4);
HprintBold( SubMenu->x+70,SubMenu->y+110,RGB(250,100,80),RGB(80,30,250),lan->OutputMessage(6,54));//010215 lsw
SetHangulFont(2);
}
//涅胶飘 割锅掳?
Hprint2( SubMenu->x+50,SubMenu->y+50, g_DestBackBuf, "%d", SubMenu->work+1 );
//柳楼 涅胶飘 锅龋
//Hprint2( SubMenu->x+150,SubMenu->y+50, g_DestBackBuf, "QUEST %d", quest_text[quest_num1].num );
//涅胶飘
Hcolor(11,11,11);
if(quest_num1 == 0){
// 涅胶飘啊 绝阑锭 酒聪 康锅老锭
Hprint2( SubMenu->x+230, SubMenu->y+70, g_DestBackBuf, lan->OutputMessage(6,55) );//;sw
}
else {
SetHangulFont(4);
HprintBold( SubMenu->x+230, SubMenu->y+50,RGB(200,200,200),RGB(80,80,80), quest_text[quest_num1].name);
//Hprint2( SubMenu->x+230, SubMenu->y+50, g_DestBackBuf, "%s",quest_text[quest_num1].name );
SetHangulFont(2);
RectTextPut( SubMenu->x+230, SubMenu->y+100, 110, quest_text[quest_num1].ch );
}
//page 荐
Hcolor(77,208,109);
Hprint2( SubMenu->x+105,SubMenu->y+200, g_DestBackBuf, "CURRENT PAGE %d", SubMenu->work+1 );
Hprint2( SubMenu->x+230,SubMenu->y+200, g_DestBackBuf, "TOTAL PAGE %d", QUEST_COUNT);
break;
}
case FT_QUEST_OK : {
;
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 );
}
else 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 );
}
break;
}
case FT_QUEST_INDEX_SCROLL : { // 付快胶啊 荤阿屈 救俊辑 喘妨瘤搁.......................................................
//Hprint2( SubMenu->x+38, 150, g_DestBackBuf, "%d", quest_text[quest_num[quest_num1]].num );
;
// 泅犁 其捞瘤啊 配呕 其捞瘤客 鞍阑 版快 right 滚瓢篮 救 喘府霸 茄促.
// 泅犁 其捞瘤啊 贸澜老 版快 left 滚瓢篮 救 喘府霸 茄促.
// //捞锭 荤款靛绰 MP3( SN_WARNING );
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 );
}
// 付快胶啊 荤阿屈 困俊 棵扼 坷搁.........................................................
else 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 );
}
break;
}
case FT_QUEST_INDEX : {
// 付快胶 谅钎蔼阑 鸥老拳 茄促.(Y 蔼父..) ..................................
;
int max_quest_one_page = SubMenu->key;
int page = SubMenu->work;
int tempY = ( g_pointMouseY - ( SubMenu->y+40) ) / QUEST_TEXT_DEVISION;
// 涅胶飘 抛捞喉 单捞磐甫 佬绢 柯促.
if( quest_text[0].name[0] == 0 )
{
LoadQuestTable("./data/quest.txt","./data/questpic.txt","./data/questpic.bin");
}
//涅胶飘啊 逞绢 柯促
//弊府绊 抄饶 酒贰俊 嘛腮促.
//quest_num[QUEST_COUNT] = QUEST_GIVE;
// 父距俊 荤阿屈俊 甸菌栏搁 ->
// 涅胶飘 牢郸胶 免仿 ==> 锅龋客 捞抚 免仿
// 1. 哭率 其捞瘤俊 7俺 坷弗率 其捞瘤俊 7俺 免仿.
// 2. 郴啊 罐篮 醚 涅胶飘 鳖瘤, 弊府绊 茄其捞瘤俊 14父 免仿
// 3. 其捞瘤甫 逞扁搁 弊 逞变单 何磐 免仿( 其捞瘤绰 page 函荐俊 甸绢乐促 )
// 4. 矫累 涅胶飘 锅龋绰 其捞瘤客 茄其捞瘤寸 免仿且荐 乐绰 涅胶飘狼 蚌捞促.
// ( page * max_quest_one_page )
// 5. 付快胶啊 啊鳖捞 啊搁 祸阑 官层霖促.
int rect_mouse = SubMenu->nField[j].fRectMouse;
int willdo = SubMenu->nField[j].nWillDo;
int PGCT = max_quest_one_page*page; // 阿 其捞瘤 贸澜..
Hcolor(77,208,109);
Hprint2( SubMenu->x+105, SubMenu->y+200, g_DestBackBuf, "CURRENT PAGE %d", (PGCT/SubMenu->key) +1);
Hprint2( SubMenu->x+230, SubMenu->y+200, g_DestBackBuf, "TOTAL PAGE %d", (QUEST_COUNT-1)/SubMenu->key+1);
Hcolor(11,11,11);
for( int a = 0; a<max_quest_one_page/2; a++ )
{
int i= PGCT+a+willdo*max_quest_one_page/2;
if( i > QUEST_COUNT-1 ) break;
// 弊覆 嘛扁
if( willdo == 0 ){
if( i == tempY+PGCT && rect_mouse ) {
if(end_quest[i]){Hcolor( 240,0,0);}
else Hcolor( 240,224,208);
}
else Hcolor(11,11,11);
//Hprint2(SubMenu->x+38 , 150, g_DestBackBuf, "%d", quest_text[quest_num].num );
Hprint2( SubMenu->x+60, 140+(a*QUEST_TEXT_DEVISION), g_DestBackBuf, "%d", i+1 );
//RectTextPut( SubMenu->x+80,SubMenu->y+40+(a*QUEST_TEXT_DEVISION), 110, quest_text[quest_num[i]].name );
if(quest_num[i] == 0){
//涅胶飘啊 康锅老锭 贸府
Hprint2( SubMenu->x+80,SubMenu->y+40+(a*QUEST_TEXT_DEVISION), g_DestBackBuf, lan->OutputMessage(6,55) );//010215 lsw
}
else {
RectTextPut( SubMenu->x+80,SubMenu->y+40+(a*QUEST_TEXT_DEVISION), 110, quest_text[quest_num[i]].name );
}
}
else
{
if( a == tempY && rect_mouse/*(g_pointMouseX > SubMenu->x+210 && g_pointMouseX < SubMenu->x+340)*/) {
if(end_quest[i]){Hcolor( 240,0,0);}
else Hcolor( 240,224,208);
}
else Hcolor(11,11,11);
Hprint2( SubMenu->x+230, 140+(a*QUEST_TEXT_DEVISION), g_DestBackBuf, "%d", i+1 );
//RectTextPut( SubMenu->x+250,SubMenu->y+40+(a*QUEST_TEXT_DEVISION), 110, quest_text[quest_num[i]].name );
if(quest_num[i] == 0){
//涅胶飘啊 康锅老锭 贸府
Hprint2( SubMenu->x+250,SubMenu->y+40+(a*QUEST_TEXT_DEVISION), g_DestBackBuf, lan->OutputMessage(6,55) );//010215 lsw
}
else {
RectTextPut( SubMenu->x+250,SubMenu->y+40+(a*QUEST_TEXT_DEVISION), 110, quest_text[quest_num[i]].name );
}
}
}
break;
}
case FT_COLOR_CHANGE_GAUGE :
{
if( !SubMenu->CheakType )
{
if( g_Menu_Variable.m_stRGB )
{
delete g_Menu_Variable.m_stRGB;
}
g_Menu_Variable.m_stRGB = new k_char_rgb;
SubMenu->CheakType = 1;
}
if(SMenu[i].key == 1 && j == 4){
FieldTypeNomalPut(SMenu[i].x, SMenu[i].y, 0, 0, 1, SMenu[i].nImageType);
}
int start, end;
int *pGab;
switch( j ) // field 锅龋啊 4锅何磐 矫累
{
case 4 : switch(SMenu[MN_CHARACTER_COLOR_CHANGE].key)
{
case 0: pGab= &SCharacterData.body_r; break;
case 1: pGab= &SCharacterData.cloth_r; break;
}
break;
case 5 : switch(SMenu[MN_CHARACTER_COLOR_CHANGE].key)
{
case 0: pGab = &SCharacterData.body_g; break;
case 1: pGab = &SCharacterData.cloth_g; break;
}
break;
case 6 : switch(SMenu[MN_CHARACTER_COLOR_CHANGE].key)
{
case 0: pGab = &SCharacterData.body_b; break;
case 1: pGab = &SCharacterData.cloth_b; break;
}
break;
}
// 箭磊肺 钎泅窍扁
Hprint2( SubMenu->x+SubMenu->nField[j].x,SubMenu->y+SubMenu->nField[j].y, g_DestBackBuf, "%d", (*pGab) );
int width = 98;
// 阜措肺 钎泅窍扁
int gab= (int)((*pGab)/ 255.0f*width+0.5f);
end = gab;
start = 75; // 阜措啊 矫累窍绰 x 谅钎
if(SMenu[i].nField[j].fLButtonDown)
end = g_pointMouseX - (SMenu[i].x+start);
if(end < 0 )
{
gab--;
gab = __max( gab, 0 );
}
else if(end > width)
{
gab++;
gab = __min( gab, width );
}
else gab = end;
for(int x=start;x<gab+start;x++)
FieldTypeNomalPut(SMenu[i].x, SMenu[i].y, x, SMenu[i].nField[j].y+4, SMenu[i].nField[j].nImageNumber);
(*pGab) = (int) (gab/(float)width * 255.0f + 0.5);
static old_gab[2][3];
if( old_gab[SMenu[MN_CHARACTER_COLOR_CHANGE].key][j-4] != gab )
{
Hero->bodycolor = ReturnBlendRGB( SCharacterData.body_r, SCharacterData.body_g, SCharacterData.body_b );
Hero->clothcolor= ReturnBlendRGB( SCharacterData.cloth_r, SCharacterData.cloth_g, SCharacterData.cloth_b );
old_gab[SMenu[MN_CHARACTER_COLOR_CHANGE].key][j-4] = gab;
}
break;
}
case FT_SKIN_MONEY :
{
// 力格 嘛扁
if( SubMenu->key )
FieldTypeNomalPut(SMenu[i].x, SMenu[i].y, 0, 0, 12, SMenu[i].nField[j].nImageType );
// 捣 嘛扁
if( !SubMenu->work ) break;
FieldTypeNomalPut(SMenu[i].x, SMenu[i].y, SMenu[i].nField[j].x, SMenu[i].nField[j].y, SMenu[i].nField[j].nImageNumber,SMenu[i].nField[j].nImageType);
SetHangulAlign( TA_RIGHT );
Hprint2( SubMenu->x+SubMenu->nField[j].rCheakBox.right,SubMenu->y+SubMenu->nField[j].rCheakBox.top+1, g_DestBackBuf, "%d", NPC_Lev_Ref[Hero->lv].nDyeingPrice);
break;
}
case FT_VIEW_RUNE_LEFT :
{
int &count = SubMenu->nField[j].nSHideNomalNumber;
if( !SubMenu->CheakType )
{
//SubMenu->CheakType = 1;
if( !g_Menu_Variable.m_pRune )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -