📄 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 "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 "CharDataTable.h"
#include "gameproc.h"
#include "kh_cpp.h"
#include "NationSys.h" // 010904 LTS // For Nation War Interface
#include "NationSupport.h" // 010904 LTS // For Nation War Interface
//011001 lsw
#include "skill_lsw.h"
#include "linecommand.h"
#include "hong_light.h"
#include "menudef2.h"
#include "MagicSys.h"
#include "chat.h"//020704 lsw
#include "CurrentMsgMgr.h"
#include "Auction.h"
#include "MailMgr.h"
#include "HunterSystem.h"
#include "ExchangeMgr.h"
extern bool isNewWarfieldServer();
#include "QuestFunction.h" // 021025 kyo
#include "SymbolMgr_Client.h"//soto-1.02
#include "LottoMgr.h"//soto-030501
#include "ArenaManager.h"
extern CSymbolMgr_Client g_SymBolMgr;//soto-1.02
extern void MenuSubProcessType2(SMENU *SubMenu,const int j); //021022 kyo
extern int g_iScenarioOn;
extern void lsw_MenuSubProcessType(SMENU *SubMenu,const int j);//020214 lsw
extern void lsw_DoLButtonDownOfMenu(const int i,const int j);
extern void lsw_DoRButtonDownOfMenu(const int i,const int j);
extern void MenuSubProcessType_FT_DO(SMENU *SubMenu,int j);
extern void DisplayInventoryMenu(SMENU *SubMenu ,int j);//牢亥配府 叼胶敲饭捞
extern void ButtonDownAtInventory(const int i, const int j);//021111 lsw
extern void DisplayQuickMenu(SMENU *SubMenu ,int j);//狞芒 叼胶敲饭捞
extern void DisplayCandleMenu(SMENU *SubMenu ,int j);
extern void LocalWarDoneBoxText(bool Button); // LTS LOCALWAR MENU
extern void SendWarMove();
extern void SendWarStatusRefresh();
int g_SelectMail = 0;
CGuildIntroduction *g_Guild_Introduction;
CMenuVariable g_Menu_Variable;
char *g_szScale;
#ifdef CHANGE_MONEY_
char g_szMoneyName[] = "Crit";
#else
char g_szMoneyName[] = "Cell";
#endif
//#define PAGE_NUMBER__ 2//020515 lsw
extern void SendNationPacket(int type);//010730 lsw
extern bool isNationWarfieldServer();
extern int CheckNationStatus(int StatusNo);
extern int WarResultAniCount;
extern void lsw_FT_DATA_PUT(SMENU *SubMenu ,int iDP_TYPE);
//extern int GetItemKind( int itemno );
RareMain Soksungattr_gm;
extern MakeItem gm_make_item_result;
extern int gm_make_item_result_needitem[2];
extern MakeItem gm_make_item_list[MAX_UPGRADE_RARE];
extern bool DoButtonCheckOfMenu_lsw(int i , int j);
//_____________________________________________________________________ // 010904
extern int g_Squad; // LTS TEMP
extern int g_Commander;
extern void SendCMD_NW_MAP_MOVE(int Type,int WarfieldNo);
extern void SendCMD_SET_SQUAD_LODING_POINT(int SquadNo,int LoadingPoint);
extern void SendCMD_REQUEST_SQUAD_INFO(int SquadNo);
extern void SendCMD_REQUEST_COMMANDER_VOTE_DATA(int CandidaterNo);
extern int GetSquadNo();
extern void SendCMD_CHECK_ABILITY_CHANGE_MONEY(); //011201 LTS // LTS MENU
extern void SendCMD_LOCALWAR_MAPMOVE(); // LTS NEW LOCALWAR
extern void CloseLocalWarInfo(); // LTS NEW LOCALWAR
extern void LocalWarMapMoveClick(int MapNo); // LTS NEW LOCALWAR
extern int GetLocalWarMapMoveIndex(); // LTS NEW LOCALWAR
extern void DrawLocalWarDefeat(int ImageType,int MenuNumber,int BaseX,int BaseY); // LTS NEW LOCALWAR
extern void SendCMD_LOCALWAR_JOIN(); // LTS LOCALWAR
extern void SendCMD_EVENT_LOCALWAR_JOIN(); // 020115 LTS
extern void SendCMD_EVENT_LOCALWAR_MOVE(); // 020115 LTS
extern void DrawLocalWarJoinInterface(int ImageType,int MenuNumber,int BaseX,int BaseY);
//_____________________________________________________________________ // 010904
char g_szSearchLadderRankName[20];
bool bSmallTips = false;
int g_RemainTimeType;
int g_RemainTimeDelay;
#define MAX_SALVAITON_MONEY 3000000000
int bbs_money[2][2] = { {100, 1000}, {1500, 15000} };
int g_BattleStatusView;
int g_RecvLoanInfo;
int g_CurrUsedMagic; // 泅犁 某胶泼 登绊 乐绰 付过
int refresh_magery_time = 100;
int TotalSalvation;
char man_list[MAX_MAP_][MAN_LIST_MAX_][20]; // 惑痢 林牢 捞抚甸
int AutoLevelUpOn;
DWORD AutoLevelUpCount;
t_QuickMemory SaveMemory[MAX_MAGIC_MEMORY]; // 窜绵虐肺 扁撅矫难敌 格废//020530 lsw
t_QuickMemory HotKeyMemory; // 滚瓢 茄俺肺 荤侩 窍绰 Ram 鞍篮 函荐
/*//020515 lsw
bool bDisplaySkillExp;
bool bDisplayTacticExp;
*/
int before_skill_no;
//int g_DisplaySkillExp;
int g_VoteSignExist; // 急芭 泅炔 焊咯林绰啊 付绰啊..
int g_CanRegistCandidate; // 饶焊 殿废阑 且荐 乐绰 惑怕啊 酒聪搁 -1, 捧钎甫 且荐 乐绰 惑炔捞 酒聪搁 -2
int g_Candidate_max;
int g_CurrVote; // 泅犁 急芭 柳青 惑怕 0:檬扁 惑怕( 单捞鸥甫 罐酒 柯促), -1:涝饶焊 且荐 绝促. 1:涝饶焊 惑怕 2:捧钎 惑怕
k_client_candidate Candidate[3]; // 涝饶焊 沥焊
Spr scenario_spr; // 矫唱府坷
int fight_map_live_man[4]; // 混酒 乐绰 荤恩
char nation_bbs[2000];
char nation_bbs2[8][8][50];
int man_to_man_start=0;
int fight_map_stop=0;
int g_fight_win;
int g_fight_lose;
int fight_who; // 1:1 措搬窍绰 荤恩狼 酒捞叼
int danger_by_hunter;
int skill_index[5] = {0,};
CServerText public_bbs; // 款康磊啊 努扼捞攫飘肺 官肺 傍瘤荤亲阑 焊尘锭,
bool g_MagicMenuOn;
bool g_ExplainMenuOn;
int magic_plus[MAX_MAGIC]; // 郴啊 荤侩茄 概流 穿利
int magic_plus_count; // 醚 肮荐
int magic_plus_start; // 嘛阑 捞固瘤 start何盒
bool g_explain_menu_on = false;
char g_explain_menu[MAX_STRING];
bool g_explain_magic_on = false;
int g_explain_magic;
bool g_explain_skill_on = false;
int g_explain_skill;
//bool g_ExplainMessageOn; // 汲疙芒阑 荤侩沁绰啊..
DWORD g_alarm ;
CServerText g_ServerText; // 辑滚俊辑 傈价罐绰 咆胶飘甫 困茄 备炼眉
bool g_bTimeMenuOn;
bool bCallGodMeetingMenu; // 抗硅 皋春 剁快扁
Spr spr2[MAX_IMAGE2]; // 眠啊 皋春 捞固瘤
bool g_bMagicSelect = true; // 付过 俺充捞 皋葛扼捞令 俺充牢瘤 酒囱瘤 魄窜... true -> 皋葛扼捞令...
bool bSoundOn = false;
bool g_DropOnHero = false; // 荤恩俊霸 酒捞袍阑 冻绢哆啡阑 版快 true set
int g_MouseInMenu = 0; // 031110 YGI
int memorize[12] = {0,}; // 皋葛扼捞令 合俊辑 荤侩...
int SkillOn=-1; // 胶懦捞 场唱霸 登搁 -1肺 悸泼秦 霖促.
PosItem skill_use_item[5][10];
PosItem skill_use_item_result;
int con_to_img[7] = { 0, 263, 263, 265, 265, 265, 264 }; // 某腐磐 惑怕 弊覆阑 持绰促.
K_ITEM i_DivideItem; // 酒捞袍狼 加己客 困摹啊 乐促.
ItemJoinSelect learn_item_list[MAX_LEARN_ITEM] = {0,};
OtherCharacter You;
int Hero_Ability[20];
MakeItem make_item_list[20];
MakeItem make_item_result;
int selected_skill; // 急琶登绢柳 胶懦
CharacterParty mouse_ch; // 付快胶啊 甸绊 乐绰 荤恩...
int storelistindex; // 惑痢俊辑 荤侩且 烙矫 函荐
bool is_buymenu_On; // buy 皋春啊 躲版快 悸泼秦 霖促.
int nSkillLearnResult; // 胶懦 硅快扁狼 搬苞 1:瓷仿捞 葛磊恩, 2:捣捞 葛磊恩, 3: 肋 劳躯澜
int motherSkillImageNo[2]; // 胶懦 硅快扁俊辑 力格魄 捞固瘤 锅龋
int motherSkillImageType[2]; // 胶懦 硅快扁俊辑 力格魄 捞固瘤 鸥涝
BOOL RButtonDown;
BOOL MouseDrag;
int LButtonCount; // 付快胶 滚瓢阑 穿福绊 乐菌带 矫埃
int y_PutBarSize=0; //HP唱 MP甫 免仿且 阜措 弊贰橇狼 臭捞甫 拌魂茄 蔼阑 历厘茄促.
int id_password = TRUE; // 酒捞叼 菩胶况靛 沫 吭促 艾促窍扁...
bool MessageOn=false; // MessageOn捞 飘风肺 眉农 登搁 皋牢 牢磐其捞胶 汲疙芒俊 皋矫瘤啊 夺促
char Message[MAX_STRING];
int g_MouseItemNumber=0; //鸥涝俊 蝶扼 啊瘤绊 乐绰 酒捞袍狼 锅龋 0捞搁 酒捞袍捞 绝促绰 舵
int g_MouseItemType=0; //0捞搁 付快胶啊 绢恫 酒捞袍档 啊瘤绊 乐瘤 臼促绰 舵(付过,酒捞袍) 1=老馆 酒捞袍,2=付过 巩辑
RECT rScreenRect; //皋春甫 力寇茄 角力 霸烙拳搁狼 谅钎 付快胶 哭率滚瓢阑 初阑锭 酒捞袍捞 冻绢瘤绰 巴阑 眉农茄促
int YouGotItemFlag=false;
int g_BoadAndSignNumber; // CSD-030324 // thai2 YGI
int MouseItemInRectOn; // 酒赣 芒 辟贸肺 酒捞袍捞 促啊吭阑 锭 贸府
POINT MouseItemInRect;
int cRMoveMenu=0; //皋牢 牢磐其捞胶俊辑 坷弗率俊 殿厘窍绰 皋春(酒捞袍,付过)啊 框流老锭 荤侩窍绰 墨款飘
int cLMoveMenu=0; //皋牢 牢磐其捞胶俊辑 哭率俊 殿厘窍绰 皋春(胶萍捞磐胶,绢呼府萍,啊摹包)啊 框龙老锭 荤侩窍绰 墨款飘
int fRMoveMenu=0; //皋春狼 辆幅,咯磋捞 惑炔俊 蝶扼 弊 惑怕甫 历厘窍绰 函荐 0老订 酒公老档 绝促
int fLMoveMenu=0; // 哭率 皋春 摧扁
int nItemOther; // 酒捞袍 皋春啊 凯副锭 鞍捞 栋具 窍绰 皋春
int nPartyOther=0; // 颇萍 皋春啊 摧洒搁 栋具且 皋春
int nPartyState = 0; // 颇萍 皋春 哆扁 傈俊 固府 栋 乐菌带 皋春
int nPartyShow=1; // 皋牢 牢磐其捞胶 颇萍 皋春俊辑 急琶 扼捞飘 钎矫窍扁 函荐
struct InterfaceFlag main_interface;
SystemInfo system_info;
CHouse *house; // 笼 汲疙 -> 昏力 措惑 绊妨
CMenuStack MenuStack;
int chat_scroll_count;
POS IP_base; // 酒捞袍捞 盔贰 乐菌带 磊府
ItemAttr InvItemAttr[3][3][8];
ItemAttr EquipItemAttr[ITEM_EQUIP_MAX];//021119
ItemAttr QuickItemAttr[ITEM_QUICK_MAX+1];
ItemAttr BankItemAttr[5][3][6];
ItemAttr HandItemAttr;
ItemAttr SupperItemAttr[3][15];
ItemAttr InvAttrBackUp[3][3][8];
ItemAttr EquipAttrBackUp[8];
ItemAttr QuickAttrBackUp[7];
ItemAttr HandAttrBackUp;
ItemAttr aItemInventoryFull; // 牢亥配府 芒俊 菜 谩阑 锭
bool LeftShiftOn; // 哭率 矫橇飘 虐啊 喘妨 脸绰瘤 true : 喘覆,
// int AbilityToInt[20];
int RectImageOn=0; //概流 劝己拳啊 灯阑锭, 濒冠烙
int nBankTemp=0; //篮青 皋春俊辑 捣 拌魂窍扁 困茄 函荐
int WearAble[9] = { 2, 3, 4, 5, 6, 7, 8, 8, 9 }; // 厘馒 困摹 函券 函荐
int HandBackUp;
int HandBackUptype;
int HandItemOn = false;
bool no_active_box_yet; // 辑滚俊辑 蔼阑 傈价 罐栏搁 false set.
int aMagicItem[3][4][3][5];
int SkillInventory[2][2][4]; // 胶懦 牢亥配府...
int SkillInventory2[2][2][4]; // 硅快瘤 臼篮 胶懦
int Skill_Know_Inv[3][3];
ItemJoinSelect Item_Select[MAX_LEARN_SKILL_PAGE][10];
ItemJoinSelect item_select_result;
int aSellBuyItemPos[MAX_BUY_ITEM*3*5]; // inventroy 绢蠢镑俊 乐带 拱扒牢瘤...
ItemAttr aSellBuyItemAttr[MAX_BUY_ITEM*3*5];
int aSellBuyItemMax;
const int y_ItemSubMenu[] = //021014 lsw
{
MN_ITEM_MAKE,
MN_ITEM_MAKE_OK,
MN_ITEM_MAKE_RARE_SELECT,
MN_GM_2ND_SKILL,
MN_SKILL_MASTER_MAKE,//021111 lsw
MN_DIVIDE_ITEM,
MN_CHARACTER_ITEM,
MN_GAMBLE,
MN_MERCHANT_REGISTER,
MN_EXCHANGE_BOND_MONEY,
};
const int mainmenu[]=
{
MN_MAININTERFACE,
MN_MAIN_EXPLAIN,
MN_QUICK_MAGIC_PLUS,
MN_QUICK_MAGIC_SCROLL,
MN_TIME_DISPLAY_ON_OFF,
MN_QUICK_SKILL,
MN_TIME_DISPLAY_MENU,
MN_COMBAT_SKILL_DOING,//020420 lsw
MN_COMBAT_SKILL_POINT,//020707 lsw
MN_EXCHANGE_ITEM,
MN_MAN_TO_MAN, // 搬捧
MN_SMALL_MAP,
MN_DIVIDE_ITEM,
MN_ITEM,
MN_PARTY,
MN_STATUS,
MN_ABILITY,
MN_ARIGEMENT,
MN_TACTICS,
MN_GUILD_ITEM_GET,
MN_GUILD_ITEM_PUT,
MN_CHATTING,
MN_FACE,
MN_WISPER_LIST,
MN_ARENA_LOBBY,
MN_OBSERVER_MODE,
MN_BETTING,
MN_SYSTEM,
MN_SYSTEM_OPTION,
MN_BANK_CUSTODY,
MN_ITEM_MAKE,
MN_ITEM_MAKE_SELECT,
MN_ITEM_MAKE_OK,
MN_ITEM_MAKE_RARE_SELECT,
MN_COMBAT_SKILL_DOING,
MN_COMBAT_SKILL_POINT,
MN_GM_2ND_SKILL,
MN_SKILL_MASTER_MAKE,//021111 lsw
MN_MERCHANT_REGISTER,
MN_EXCHANGE_BOND_MONEY,
MN_CHARACTER_ITEM,
MN_ITEM_SELECT,
MN_VOTE_SIGN,
MN_MESSAGEBOX_BIG,
MN_PARTY_FACE1,
MN_PARTY_FACE2,
MN_PARTY_FACE3,
MN_PARTY_FACE4,
MN_PARTY_FACE5,
MN_PARTY_FACE6,
MN_SMALL_TIPS,
MN_DISPLAY_SKILL_EXP,
MN_DISPLAY_TAC_EXP,
MN_DISPLAY_MAGIC_EXP,
MN_GAMBLE,
MN_FIGHT_MAP_SIGN,
MN_DISTANCE_TABLE,
MN_STORE_SIGN,
MN_OK_MESSAGEBOX,
MN_OKCANCEL_MESSAGEBOX,
MN_ITEM_MESSAGEBOX,
MN_DEL_CHAR_COMFORM,
MN_SYSTEM_LOGOUT,
MN_EFFECT_TOOL,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -