📄 menuset.cpp
字号:
#include "stdafx.h"
//#include "MenuDef.h"
#include "Itemtable.h"
#include "Menu.h"
#include "menuset.h"
#include "hong_sub.h"
#include "dragon.h"
#include "menudef2.h"
#include "smallmenuset.h"
extern void MenuSet2();//020515 lsw
extern void MenuSet3(); // 021020 kyo
extern char* EatRearWhiteChar( char* pStr );
extern SMENU SMenu[MAX_MENU];
extern SHN SHideNomal[MAX_SHN][MAX_SHN_FIELD];
extern void SetRect(RECT &rect,int left, int top, int right, int bottom); //皋春 备己夸家狼 面倒眉农 rect屈俊 蔼 措涝
////////////////////////////////////////////////////////////////////////////////////////////
CMenuImageMgr *g_MenuImageMgr = NULL;
int LoadMenuImage()
{
char *filename = "./data/menu_image.txt";
FILE *fp = Fopen( filename, "rt" );
if( fp )
{
char temp[512];
int index, image_max;
char file_name[40];
int max_index = 0;
CMenuImageLink link;
while( fgets( temp, 512, fp ) )
{
if( CheckContinueLine( temp[0] ) ) continue;
char *token;
token = strtok( temp, "\t\n" );
if( !token ) continue;
index = atoi( token );
if( index > max_index ) max_index = index; // 10000 捞惑捞绢具 茄促.
token = strtok( NULL, "\t\n" );
image_max = atoi( token );
token = strtok( NULL, "\t\n" );
strcpy( file_name, token );
link.InputData( index, image_max, file_name );
}
SAFE_DELETE(g_MenuImageMgr);
if( image_max )
{
g_MenuImageMgr = new CMenuImageMgr( max_index-10000+1 );
CMenuImageLink *find;
link.SetFind();
while( find = link.Next() )
{
g_MenuImageMgr->InsetData( find->GetParam(), find->GetDataPoint() );
}
}
fclose( fp );
return 1;
}
else
{
JustMsg( "Error! Not Found 'menu_image.txt'");
return 0;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
// CMenuImage
int CMenuImage::clear()
{
if (buf)
{
FreeOpenningSpr(&buf);
buf = NULL;
}
if (spr)
{
delete [] spr;
spr = NULL;
}
return 1;
}
// 020701 YGI
int CMenuImage::LoadMenuSpr()
{
LoadOpenningSpr( file_name, &buf, spr, image_max ); // 捧钎
return 1;
}
// 020701 YGI
Spr *CMenuImage::GetSpr( int img_number )
{
if( img_number > image_max ) return NULL;
if( !buf ) LoadMenuSpr();
return &spr[img_number];
}
////////////////////////////////////////////////////////////////////////////////////////////
int CGuildMemberName::SetCount( int degree, int count, k_get_guild_memeber_list_name *data )
{
if( m_degree[degree].m_iTotal ) m_degree[degree].clear();
m_degree[degree].m_iTotal = count;
if( count )
{
m_degree[degree].m_lpszName = new string[count];
m_degree[degree].m_bpIsConnect = new int[count];
int code = Hero->GetGuildCode(); // CSD-030324
for( int i=0; i<count; i++ )
{
m_degree[degree].m_lpszName[i] = data[i].name;
m_degree[degree].m_bpIsConnect[i] = data[i].is_connect;
if( IsSubMaster( code, data[i].name ) )
{
m_nSubMasterNumber_degree = degree;
m_nSubMasterNumber = i;
}
}
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////////////////
DWORD GetNationMoney( int nation )
{
if( !g_Menu_Variable.m_stNationMoney ) return 0;
switch( nation )
{
case N_VYSEUS : return g_Menu_Variable.m_stNationMoney->money3;
case N_ZYPERN : return g_Menu_Variable.m_stNationMoney->money4;
case N_YILSE : return g_Menu_Variable.m_stNationMoney->money6;
}
return 0;
}
// 林籍 贸府
bool CheckContinueLine( char check )
{
if( check == 0 || check == ' ' || check == ';' || check == '#' || check == '\n' ) return true;
return false;
}
///////////////////////////////////////////////////////////////////
// 器呕 皋春
int CPotalMenu::LoadPotalMap( int nation )
{
int nation_temp;
int map_number;
int money, x, y, type, img_type, level;
char map_name[50] = {0,};
FILE *fp = Fopen( "./data/map_potal.txt","rt" );
if( !fp ) return 0;
char temp[2048];
while( fgets( temp, 2048, fp) )
{
if( ::CheckContinueLine( temp[0] ) ) continue;
char *token = strtok( temp, "\t\n" );
if( !token ) continue;
map_number = atoi( token );
token = strtok( NULL, "\t\n" );
strcpy( map_name, token );
token = strtok( NULL, "\t\n" );
nation_temp = atoi( token );
token = strtok( NULL, "\t\n" );
money = atoi( token );
token = strtok( NULL, "\t\n" );
x = atoi( token );
token = strtok( NULL, "\t\n" );
y = atoi( token );
token = strtok( NULL, "\t\n" );
type = atoi( token );
token = strtok( NULL, "\t\n" );
img_type = atoi( token );
token = strtok( NULL, "\t\n" );
level = atoi( token );
fgets( temp, 2048, fp);
if( nation_temp == nation )
{
m_Map[m_Count].map_number = map_number;
m_Map[m_Count].money = money;
m_Map[m_Count].type = type;
m_Map[m_Count].img_type = img_type;
m_Map[m_Count].level = level;
strcpy( m_Map[m_Count].map_name, map_name );
int len = strlen( temp );
if( len )
{
SetExplain( m_Count, temp, len );
}
m_Count++;
}
}
fclose( fp );
return 1;
}
///////////////////////////////////////////////////////////////////
// 模备 矫胶袍 努饭胶
int CFriendGrup::SetFriendName( int cn, char *name )
{
strcpy( m_Friend[cn].name, name);
return 1;
}
int CFriendGrup::SetFriendLogin( int cn, int login )
{
m_Friend[cn].m_bLogin = login;
return 1;
}
char *CFriendGrup::GetFriend( int cn, int &login )
{
login = m_Friend[cn].m_bLogin;
return m_Friend[cn].name;
}
int CFriendGrup::InsertFriend( char *name, int login )
{
int cn = -1;
for( int i=0; i<MAX_FRIEND_GROUP; i++ )
{
if( !m_Friend[i].name[0] )
{
if( cn == -1 ) cn = i;
continue;
}
if( strcmp( m_Friend[i].name, name ) == 0 )
{
SetFriendLogin( i, login );
break;
}
}
if( cn != -1 )
{
SetFriendName( cn, name );
SetFriendLogin( cn, login );
count++;
}
SMENU *SubMenu = &SMenu[MN_FRIEND_MENU];
int &page_status = SubMenu->work;
WORD page;
WORD page_max;
GetWORDOfDWORD( (DWORD)page_status, page, page_max );
int max_line = 10;
page_max = (count-1)/10.0;
page_status = (int )MAKELONG( page, page_max+1 );
return 1;
}
int CFriendGrup::clear()
{
for( int i=0; i<MAX_FRIEND_GROUP; i++ )
{
m_Friend[i].name[0] = 0;
m_Friend[i].m_bLogin= 0;
}
count = 0;
return 1;
}
int CFriendGrup::SerchName( const char *name )//030504 lsw
{
for( int i=0; i<MAX_FRIEND_GROUP; i++ )
{
if( ::stricmp( name, m_Friend[i].name ) == 0 )
{
return i;
}
}
return -1;
}
int CFriendGrup::DeleteName( int cn )
{
m_Friend[cn].clear();
count--;
return 1;
}
int CFriendGrup::SetRect( int cn, int type, int left, int top, int right, int bottom )
{
switch( type )
{
case 1:
::SetRect( m_Friend[cn].rect1, left, top, right, bottom );
break;
case 2:
::SetRect( m_Friend[cn].rect2, left, top, right, bottom );
break;
}
return 1;
}
char *CFriendGrup::CheckRect( int cn, int type, int x, int y )
{
switch( type )
{
case 1:
if( MouseInRectCheak( x, y, m_Friend[cn].rect1 ) )
{
return m_Friend[cn].name;
}
break;
case 2:
if( MouseInRectCheak( x, y, m_Friend[cn].rect2 ) )
{
return m_Friend[cn].name;
}
break;
}
return NULL;
}
///////////////////////////////////////////////////////////////////
LPCTSTR CRuneExplain::GetTitleExplain( int lune_num )
{
return m_szExplainTitle[lune_num].c_str();
}
int CRuneExplain::LoadLuneText2( int lune_num )
{
if( !m_szExplainTitle[lune_num].empty() ) return 0;
char file[128];
sprintf( file, "./data/rune_%02d.txt", lune_num+1 );
FILE *fp = Fopen( file, "rt" );
char temp[4096];
if( !fp ) return 0;
while( fgets( temp, 4096, fp ) )
{
ChangeString2( temp, "\\n", " \n" );
m_szExplainTitle[lune_num] += temp;
}
fclose( fp );
return 1;
}
int CRuneExplain::LoadLuneText( )
{
FILE *fp = Fopen( "./data/rune_ex.txt", "rt" );
if( !fp ) return 0;
char temp[4096];
int step;
int rune_count;
while( fgets( temp, 4096, fp ) )
{
if( temp[0] == ' '||temp[0] =='\n'||temp[0] =='#'||temp[0] == ';'|| temp[0] == NULL )
continue;
char *token = strtok( temp, "\t\n" );
if( !token ) continue;
step = atoi( token );
token = strtok( NULL, "\t\n" );
if( !token ) continue;
rune_count= atoi( token );
token = strtok( NULL, "\t\n" );
if( !token ) continue;
strcpy( m_szTitle[step-1][rune_count], token );
token = strtok( NULL, "\t\n" );
if( !token ) continue;
strcpy( m_szExplain[step-1][rune_count], token );
}
fclose( fp );
return 1;
}
int k_char_rgb::set()
{
body_r = SCharacterData.body_r ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -