• 1. EdgeGenerator Bug修复
    • 1. CreatePolyEdge.cpp 570行
    • 2. CreatePolyEdge.cpp 193 194行
  • 2. 内存泄漏修复
    • 1. SpritFile 加入203 204行
  • 3. 程序逻辑Bug修复
    • 1. 计算顶点 PreWord.cpp 793行for语句块
  • 4. 第二步多线程支持
    • 1. 添加m_ploys成员变量 BspGen.h 115行 BspGen.cpp 344行
    • 2. 添加临界区 BspGen.cpp 543行
    • 3. 删除线程函数末尾的关闭线程代码 BspGen.cpp 126行函数
    • 4. 进度条修复 BspGen.cpp 818行 添加350行
    • 5. 删除线程休眠代码 348行后
    • 6. 多线程递归函数中,改为在堆中申请data 594行函数
    • 7. 删除ThreadedRecurseOnList中的线程等待语句
    • 8. RecurseOnList函数大改,协调线程间的关系 526行函数
    • 9. 为了支持多线程,需要注意和修改的地方太多了,可能以上总结不全面,再次阅读相关代码还是谨慎为好,等想到了再编吧
    • 10. 最TM气的是,加了多线程,速度并没有显著的提升,因为单线程这块执行也很快,还是以后在LightMap多线程运算上下功夫吧
  • 5. 删除所有关于OriginalPolies的代码,事实上所有BSP运算都没有改动Poly,所以不需要保存最后还原
  • 6. 删除无用顶点逻辑错误,导致不仅没删除,没用的顶点还TM变多了 PreWorld.cpp 932行
  • 7. 光照计算,收集ClipLight属性的Poly时的逻辑问题(事先之对Sky属性做了准备,而忽略了ClipLight属性,导致前后逻辑不一致) LightMapMaker.cpp 445行
  • 8. 问题太多了,真搞不懂,问题百出的程序,居然能跑,还成就了那么多的经典游戏,看来成名和质量没关系啊。
  • 9. 还有个玄学问题,有一张地图(不知道为什么只有这张),用DEdit打开WinPacker编译,或者手动命令行传送lta文件名和工程文件夹(-file xxx.lta -DirPath xxx)就可以成功编译。但是双击打开WinPacker,通过资源管理器选择lta文件和工程,就编译失败,通过VS追踪是有空指针。唉,这东西都能玄学,等我看到那里,用科学让它原形毕露吧!!
  • 10. FindWorldModel.cpp 248行 为Occluder添加SURF_CLIPLIGHT属性
  • 11. LightMapMaker.cpp
    • 1. 注释(删除)1155行 重复运算,影响速度