clmain.pas
来自「2009最新 传奇汉化0599代码 传奇汉化」· PAS 代码 · 共 1,906 行 · 第 1/5 页
PAS
1,906 行
end else begin
CSocket.Address := g_sMainParam2;
CSocket.Port := Str_ToInt (g_sMainParam3, 0);
BoOneClick := TRUE;
end;
end;
end;
if BO_FOR_TEST then
CSocket.Address := TestServerAddr;
CSocket.Active:=True;
//MainSurface := nil;
DebugOutStr ('----------------------- started ------------------------');
Application.OnException := OnProgramException;
Application.OnIdle := AppOnIdle;
end;
procedure TfrmMain.OnProgramException (Sender: TObject; E: Exception);
begin
DebugOutStr (E.Message);
end;
procedure TfrmMain.WMSysCommand(var Message: TWMSysCommand);
begin
{ with Message do begin
if (CmdType and $FFF0) = SC_KEYMENU then begin
if (Key = VK_TAB) or (Key = VK_RETURN) then begin
FrmMain.WindowState := wsMinimized;
end else
inherited;
end else
inherited;
end;
}
inherited;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
function GetColorDepth: integer ;//得到桌面颜色深度
var
dc: HDC;
begin
dc := GetDC(0);
Result := GetDeviceCaps(dc, BITSPIXEL);
ReleaseDC(0, dc);
end;
function Resolution(X:word):boolean;
var
DevMode:TDeviceMode;
begin
Result:=EnumDisplaySettings(nil,0,DevMode);
if Result then
begin
DevMode.dmFields:=DM_BITSPERPEL;
DevMode.dmBitsPerPel:=x;
Result:=ChangeDisplaySettings(DevMode,0)=DISP_CHANGE_SUCCESSFUL;
end;
end;
function GetDisplayFrequency: Integer;//得到刷新率
var
DeviceMode: TDeviceMode;
begin
EnumDisplaySettings(nil, Cardinal(-1), DeviceMode);
Result := DeviceMode.dmDisplayFrequency;
end;
procedure ChangeDisplayFrequency(iFrequency:Integer);//更改刷新率,在Win2000下成功
var
DeviceMode: TDeviceMode;
begin
EnumDisplaySettings(nil,Cardinal(-1), DeviceMode);
DeviceMode.dmDisplayFrequency:=Cardinal(iFrequency);
ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY);
end;
var
I: Integer;
begin
if not g_boFullScreen then begin
Resolution(OldColor);
if OldFreq>0 then
ChangeDisplayFrequency(OldFreq);
end;
ClearShowItemList();
g_ShowItemList.Free;
g_ShowItemList:=nil;
g_AutoPickupList.Free;
g_AutoPickupList:=nil;
if g_ToolMenuHook <> 0 then UnhookWindowsHookEx(g_ToolMenuHook);
//SoundCloseProc;
//DXTimer.Enabled := FALSE;
Timer1.Enabled := FALSE;
MinTimer.Enabled := FALSE;
UnLoadWMImagesLib();
// WTiles.Finalize;
{
WObjects1.Finalize;
WObjects2.Finalize;
WObjects3.Finalize;
WObjects4.Finalize;
WObjects5.Finalize;
WObjects6.Finalize;
WObjects7.Finalize;
WObjects8.Finalize;
WObjects9.Finalize;
WObjects10.Finalize;
}
// WHumWing.Finalize;
WDragonImg.Finalize;
// WSmTiles.Finalize;
// WHumImg.Finalize;
// WHairImg.Finalize;
// WWeapon.Finalize;
// WMagic.Finalize;
// WMagic2.Finalize;
// WMagIcon.Finalize;
// FrmMain.WPrgUse.Finalize;
WPrgUse3.Finalize;
WMonImg.Finalize;
WMon2Img.Finalize;
WMon3Img.Finalize;
WMon4Img.Finalize;
WMon5Img.Finalize;
WMon6Img.Finalize;
WMon7Img.Finalize;
WMon8Img.Finalize;
WMon9Img.Finalize;
WMon10Img.Finalize;
WMon11Img.Finalize;
WMon12Img.Finalize;
WMon13Img.Finalize;
WMon14Img.Finalize;
WMon15Img.Finalize;
WMon16Img.Finalize;
WMon17Img.Finalize;
WMon18Img.Finalize;
WMon19Img.Finalize;
WMon20Img.Finalize;
WMon21Img.Finalize;
WMon50Img.Finalize;
WMon51Img.Finalize;
WMon52Img.Finalize;
WMon53Img.Finalize;
WMon54Img.Finalize;
// WNpcImg.Finalize;
WEffectImg.Finalize;
// WChrSel.Finalize;
// WMMap.Finalize;
// WBagItem.Finalize;
// WStateItem.Finalize;
// WDnItem.Finalize;
for I := 0 to NpcImageList.Count - 1 do begin
TWMImages(NpcImageList.Items[I]).Finalize;
end;
for I := 0 to ItemImageList.Count - 1 do begin
TWMImages(ItemImageList.Items[I]).Finalize;
end;
for I := 0 to WeaponImageList.Count - 1 do begin
TWMImages(WeaponImageList.Items[I]).Finalize;
end;
for I := 0 to HumImageList.Count - 1 do begin
TWMImages(HumImageList.Items[I]).Finalize;
end;
DScreen.Finalize;
PlayScene.Finalize;
LoginNoticeScene.Finalize;
DScreen.Free;
IntroScene.Free;
LoginScene.Free;
SelectChrScene.Free;
PlayScene.Free;
LoginNoticeScene.Free;
g_SaveItemList.Free;
g_MenuItemList.Free;
DebugOutStr ('----------------------- closed -------------------------');
Map.Free;
g_DropedItemList.Free;
g_MagicList.Free;
g_FreeActorList.Free;
g_ChangeFaceReadyList.Free;
g_ServerList.Free;
//if MainSurface <> nil then MainSurface.Free;
g_Sound.Free;
g_SoundList.Free;
BGMusicList.Free;
//DObjList.Free;
EventMan.Free;
NpcImageList.Free;
ItemImageList.Free;
WeaponImageList.Free;
HumImageList.Free;
g_DXSound.Free;
g_DWinMan.Free;
end;
function ComposeColor(Dest, Src: TRGBQuad; Percent: Integer): TRGBQuad;
begin
with Result do
begin
rgbRed := Src.rgbRed+((Dest.rgbRed-Src.rgbRed)*Percent div 256);
rgbGreen := Src.rgbGreen+((Dest.rgbGreen-Src.rgbGreen)*Percent div 256);
rgbBlue := Src.rgbBlue+((Dest.rgbBlue-Src.rgbBlue)*Percent div 256);
rgbReserved := 0;
end;
end;
procedure TfrmMain.DXDrawInitialize(Sender: TObject);
begin
if g_boFirstTime then begin
g_boFirstTime := FALSE;
DxDraw.SurfaceWidth := SCREENWIDTH;
DxDraw.SurfaceHeight := SCREENHEIGHT;
{$IF USECURSOR = DEFAULTCURSOR}
DxDraw.Cursor:=crHourGlass;
{$ELSE}
DxDraw.Cursor:=crNone;
{$IFEND}
DxDraw.Surface.Canvas.Font.Assign (FrmMain.Font);
FrmMain.Font.Name := g_sCurFontName;
FrmMain.Canvas.Font.Name := g_sCurFontName;
DxDraw.Surface.Canvas.Font.Name := g_sCurFontName;
PlayScene.EdChat.Font.Name := g_sCurFontName;
//MainSurface := TDirectDrawSurface.Create (frmMain.DxDraw.DDraw);
//MainSurface.SystemMemory := TRUE;
//MainSurface.SetSize (SCREENWIDTH, SCREENHEIGHT);
InitWMImagesLib(DxDraw);
// WTiles.DDraw := DxDraw.DDraw;
{
WObjects1.DDraw := DxDraw.DDraw;
WObjects2.DDraw := DxDraw.DDraw;
WObjects3.DDraw := DxDraw.DDraw;
WObjects4.DDraw := DxDraw.DDraw;
WObjects5.DDraw := DxDraw.DDraw;
WObjects6.DDraw := DxDraw.DDraw;
WObjects7.DDraw := DxDraw.DDraw;
WObjects8.DDraw := DxDraw.DDraw;
WObjects9.DDraw := DxDraw.DDraw;
WObjects10.DDraw := DxDraw.DDraw;
}
// WHumWing.DDraw := DxDraw.DDraw;
WDragonImg.DDraw := DxDraw.DDraw;
// WSmTiles.DDraw := DxDraw.DDraw;
// WChrSel.DDraw := DxDraw.DDraw;
// WMMap.DDraw := DxDraw.DDraw;
// WBagItem.DDraw := DxDraw.DDraw;
// WStateItem.DDraw := DxDraw.DDraw;
// WDnItem.DDraw := DxDraw.DDraw;
// WHumImg.DDraw := DxDraw.DDraw;
// WHairImg.DDraw := DxDraw.DDraw;
// WWeapon.DDraw := DxDraw.DDraw;
// WMagic.DDraw := DxDraw.DDraw;
// WMagic2.DDraw := DxDraw.DDraw;
// WMagIcon.DDraw := DxDraw.DDraw;
WMonImg.DDraw := DxDraw.DDraw;
WPrgUse3.DDraw := DxDraw.DDraw;
// FrmMain.WPrgUse.DDraw := DxDraw.DDraw;
WMon2Img.DDraw := DxDraw.DDraw;
WMon3Img.DDraw := DxDraw.DDraw;
WMon4Img.DDraw := DxDraw.DDraw;
WMon5Img.DDraw := DxDraw.DDraw;
WMon6Img.DDraw := DxDraw.DDraw;
WMon7Img.DDraw := DxDraw.DDraw;
WMon8Img.DDraw := DxDraw.DDraw;
WMon9Img.DDraw := DxDraw.DDraw;
WMon10Img.DDraw := DxDraw.DDraw;
WMon11Img.DDraw := DxDraw.DDraw;
WMon12Img.DDraw := DxDraw.DDraw;
WMon13Img.DDraw := DxDraw.DDraw;
WMon14Img.DDraw := DxDraw.DDraw;
WMon15Img.DDraw := DxDraw.DDraw;
WMon16Img.DDraw := DxDraw.DDraw;
WMon17Img.DDraw := DxDraw.DDraw;
WMon18Img.DDraw := DxDraw.DDraw;
WMon19Img.DDraw := DxDraw.DDraw;
WMon20Img.DDraw := DxDraw.DDraw;
WMon21Img.DDraw := DxDraw.DDraw;
WMon22Img.DDraw := DxDraw.DDraw;
WMon23Img.DDraw := DxDraw.DDraw;
WMon24Img.DDraw := DxDraw.DDraw;
WMon50Img.DDraw := DxDraw.DDraw;
WMon51Img.DDraw := DxDraw.DDraw;
WMon52Img.DDraw := DxDraw.DDraw;
WMon53Img.DDraw := DxDraw.DDraw;
WMon54Img.DDraw := DxDraw.DDraw;
// WNpcImg.DDraw := DxDraw.DDraw;
WEffectImg.DDraw := DxDraw.DDraw;
// WTiles.Initialize;
{
WObjects1.Initialize;
WObjects2.Initialize;
WObjects3.Initialize;
WObjects4.Initialize;
WObjects5.Initialize;
WObjects6.Initialize;
WObjects7.Initialize;
WObjects8.Initialize;
WObjects9.Initialize;
WObjects10.Initialize;
}
// WHumWing.Initialize;
WDragonImg.Initialize;
// WSmTiles.Initialize;
// WChrSel.Initialize;
// WMMap.Initialize;
// WBagItem.Initialize;
// WStateItem.Initialize;
// WDnItem.Initialize;
// WHumImg.Initialize;
// WHairImg.Initialize;
// WWeapon.Initialize;
// WMagic.Initialize;
// WMagic2.Initialize;
// WMagIcon.Initialize;
// FrmMain.WPrgUse.Initialize;
WPrgUse3.Initialize;
WMonImg.Initialize;
WMon2Img.Initialize;
WMon3Img.Initialize;
WMon4Img.Initialize;
WMon5Img.Initialize;
WMon6Img.Initialize;
WMon7Img.Initialize;
WMon8Img.Initialize;
WMon9Img.Initialize;
WMon10Img.Initialize;
WMon11Img.Initialize;
WMon12Img.Initialize;
WMon13Img.Initialize;
WMon14Img.Initialize;
WMon15Img.Initialize;
WMon16Img.Initialize;
WMon17Img.Initialize;
WMon18Img.Initialize;
WMon19Img.Initialize;
WMon20Img.Initialize;
WMon21Img.Initialize;
WMon22Img.Initialize;
WMon23Img.Initialize;
WMon24Img.Initialize;
WMon50Img.Initialize;
WMon51Img.Initialize;
WMon52Img.Initialize;
WMon53Img.Initialize;
WMon54Img.Initialize;
// WNpcImg.Initialize;
WEffectImg.Initialize;
DxDraw.DefColorTable := g_WMainImages.MainPalette;
DxDraw.ColorTable := DxDraw.DefColorTable;
DxDraw.UpdatePalette;
//256 Blend utility
if not LoadNearestIndex (NEARESTPALETTEINDEXFILE) then begin
BuildNearestIndex (DxDraw.ColorTable);
SaveNearestIndex (NEARESTPALETTEINDEXFILE);
end;
BuildColorLevels (DxDraw.ColorTable);
buildrealrgb(DxDraw.ColorTable);//thedeath
DScreen.Initialize;
PlayScene.Initialize;
FrmDlg.Initialize;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?