TA的每日心情![](source/plugin/dc_signin/images/emot/10.jpg) | 闭嘴 2024-4-7 14:49 |
---|
英勇青铜
![Rank: 1](template/sxp_bbs_14/img/star_level1.gif)
- 积分
- 73
|
![](template/sxp_bbs_14/img/ico_lz.png)
楼主 |
发表于 2023-9-16 23:07:04
|
显示全部楼层
摘抄的,可以和源码对应上
TfrmMain.FormDestroy(Sender: TObject); 程序关闭要做的事情 释放需要手动申请的内存
1 ClearShowItemList(); 清理显示物品列表
g_ShowItemList.Free; 显示物品列表对象?释放?
g_ShowItemList:=nil; 这里释放了还给个 空?
g_AutoPickupList.Free; 自动拾取列表释放
g_AutoPickupList:=nil; 还给个空?
if g_ToolMenuHook <> 0 then UnhookWindowsHookEx(g_ToolMenuHook); //键盘钩子释放
Timer1.Enabled := FALSE;
MinTimer.Enabled := FALSE; //2个定时器 使不能
UnLoadWMImagesLib();
对于
g_WObjectArr
g_WMonImagesArr 的释放
g_WObjectArr :array[0..9] of TWMImages; 10个?
g_WMonImagesArr :array[0..9999] of TWMImages; 一万个?
WDragonImg.Finalize;
WDragonImg: TWMImages; //龙图形?为什么要单独去释放?对应的Data\Dragon.wil 1.76版里面没有这个文件
但是1.8 SF 欧版 有
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; 对应建立的控件的释放,每个对应一个素材文件?
例如 WMonImg读取的Data\Mon1.wil
但是50-54全没有此文件,
19-23 1.8 SF 欧版
1-18 1.5 全有
将这个叫做角色素材?精灵素材?怪物素材?M0N = monster
WEffectImg.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;
对于NPC,物品,武器,人物 是用的 类列表, 释放,
看下他们实际读取的文件,
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; 地图释放 专门有个MAP 类,在mapunit单元文件中,
g_DropedItemList.Free;
g_MagicList.Free;
g_FreeActorList.Free;
g_ChangeFaceReadyList.Free;改变面准备列表?
g_ServerList.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_DXDraw 的释放呢?
g_DWinMan.Free;
======================================
现在发个贴真多验证,烦,还有字数限制 |
|