stoneage8.5/石器时代8.5客户端最新源代码/石器源码/system/ime.cpp
2020-06-23 15:53:23 +08:00

187 lines
5.0 KiB
C++

/************************/
/* ime.cpp */
/************************/
#include "../systeminc/version.h"
#include "../systeminc/system.h"
#include "winnls32.h"
#include "../systeminc/font.h"
#include "../other/caryIme.h"
#include "../systeminc/menu.h"
#include "../systeminc/battleMenu.h"
#ifdef _TALK_WINDOW
#include "../systeminc/talkwindow.h"
#endif
#include "../systeminc/DirectDraw.h"
DWORD dwInfo;
void ShowBottomLineString(int iColor,LPSTR lpstr)
{
LPSTR lpstr1=GetImeString();
dwInfo = 0;
if(!lpstr1 && lpstr[0]!=0){
dwInfo = 1;
StockFontBuffer( 8, 460 + DISPLACEMENT_Y, FONT_PRIO_FRONT, iColor, lpstr, 0 );
}
}
// Terry add 2003/12/16 for 交易视窗开启时,显示物品说明不显示输入法
extern BOOL bShowItemExplain;
#ifdef _MO_SHOW_FPS
extern int framesToShow;
extern int skipFramesToShow;
#endif
// end
// 输入法的处理
void ImeProc()
{
// 显示输入法的名称
// Terry fix 2003/12/16 for 交易视窗开启时,显示物品说明不显示输入法
//if( TaskBarFlag == FALSE ){ 这行改成下一行
if(TaskBarFlag == FALSE && bShowItemExplain == FALSE){
// end
LPSTR lpstr=GetImeString();
LPSTR lpstr1;
if(lpstr){
#ifdef _TELLCHANNEL
StockFontBuffer(8,420 + DISPLACEMENT_Y ,FONT_PRIO_FRONT,FONT_PAL_WHITE,lpstr,0);
#else
StockFontBuffer(8,460 + DISPLACEMENT_Y ,FONT_PRIO_FRONT,FONT_PAL_WHITE,lpstr,0);
#endif
#ifdef _TALK_WINDOW
if(g_bTalkWindow) TalkWindow.Update();
#endif
}
lpstr1=GetImeDescString();
if( 1!=dwInfo){
if( lpstr1){
char* BIG5ToGB2312(const char* szBIG5String);
extern int ;
extern int ;
if(){
char [1024]={0};
LCMapString(0x804,0x4000000,lpstr1, strlen(lpstr1),,1024);
if(==950)
StockFontBuffer(530-strlen(lpstr1)*(FONT_SIZE>>1) + DISPLACEMENT_X,460 + DISPLACEMENT_Y ,FONT_PRIO_FRONT,0,BIG5ToGB2312((const char *)),0);
else
StockFontBuffer(530-strlen(lpstr1)*(FONT_SIZE>>1) + DISPLACEMENT_X,460 + DISPLACEMENT_Y ,FONT_PRIO_FRONT,0,,0);
}else{
if(==950)
StockFontBuffer(530-strlen(lpstr1)*(FONT_SIZE>>1) + DISPLACEMENT_X,460 + DISPLACEMENT_Y ,FONT_PRIO_FRONT,0,BIG5ToGB2312((const char *)lpstr1),0);
else
StockFontBuffer(530-strlen(lpstr1)*(FONT_SIZE>>1) + DISPLACEMENT_X,460 + DISPLACEMENT_Y ,FONT_PRIO_FRONT,0,lpstr1,0);
}
}
char tmp[64];
extern DWORD dwPingTime, dwPingState;
if( dwPingState & 0x80000000){
wsprintf( tmp, "*%d", dwPingTime);
dwPingState++;
if( (dwPingState&0xff) > 40)
dwPingState = 0;
}else
wsprintf( tmp, " %d", dwPingTime);
StockFontBuffer( 605 + DISPLACEMENT_X, 460 + DISPLACEMENT_Y , FONT_PRIO_FRONT, FONT_PAL_WHITE, tmp, 0 );
#ifndef _REMAKE_20
lpstr = "玩家模式";
switch( AI){
case AI_ATTACK:
lpstr = "强制攻击";
break;
case AI_GUARD:
lpstr = "强制防御";
break;
case AI_SELECT:
lpstr = "AI模式";
break;
}
StockFontBuffer( 540 + DISPLACEMENT_X, 460 + DISPLACEMENT_Y , FONT_PRIO_FRONT, FONT_PAL_WHITE, lpstr, 0 );
#endif
#ifdef _CHANNEL_MODIFY
int FontColor = 0 ;
switch(TalkMode){
case 0:
lpstr1 = "一般频道";
break;
case 1:
FontColor = FONT_PAL_GREEN;
lpstr1 = "密语频道";
break;
case 2:
FontColor = FONT_PAL_AQUA;
lpstr1 = "队伍频道";
break;
case 3:
FontColor = FONT_PAL_PURPLE;
lpstr1 = "家族频道";
break;
#ifdef _CHAR_PROFESSION
case 4:
FontColor = FONT_PAL_BLUE2;
lpstr1 = "职业频道";
break;
#else
case 4:
FontColor = FONT_PAL_PURPLE;
lpstr1 = "聊天室频道";
break;
#endif
#ifdef _CHANNEL_WORLD
case 5:
FontColor = FONT_PAL_YELLOW;
lpstr1 = "世界频道";
break;
#endif
#ifdef _CHANNEL_ALL_SERV
case 6:
FontColor = FONT_PAL_GREEN2;
lpstr1 = "星球频道";
break;
#endif
}
StockFontBuffer( 10, 460 + DISPLACEMENT_Y, FONT_PRIO_FRONT, FontColor, lpstr1, 0 );
#else
#ifdef _TELLCHANNEL
int FontColor = 0 ;
switch(TalkMode){
case 0:
lpstr1 = "一般模式";
break;
case 1:
FontColor = FONT_PAL_GREEN;
lpstr1 = "密语模式";
break;
#ifdef _FRIENDCHANNEL
case 2:
FontColor = FONT_PAL_PURPLE;
lpstr1 = "频道模式";
break;
#endif
#ifdef _CHANNEL_WORLD
case 6:
FontColor = FONT_PAL_BLUE;
lpstr1 = "世界模式";
break;
#endif
#ifdef _CHANNEL_ALL_SERV
case 7:
FontColor = FONT_PAL_BLUE;
lpstr1 = "星球模式";
break;
#endif
}
StockFontBuffer( 10, 460 + DISPLACEMENT_Y, FONT_PRIO_FRONT, FontColor, lpstr1, 0 );
#endif
#endif
#ifdef _MO_SHOW_FPS
wsprintf(tmp, "当前FPS:%3d帧/秒 , 跳帧数: %d帧/秒", framesToShow, skipFramesToShow);
StockFontBuffer( 270, 460 + DISPLACEMENT_Y, FONT_PRIO_FRONT, FONT_PAL_YELLOW, tmp, 0 );
#endif
}
}
// Terry add 2003/12/16 for 交易视窗开启时,显示物品说明不显示输入法
bShowItemExplain = FALSE;
// end
}