Coder Social home page Coder Social logo

maphelper's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

maphelper's Issues

优化BinaryWriter

用vector会多次触发resize,当buffer很大时会对速度有较大影响。我们可以用deque避免这个问题。

简单来说我们可以用一个固定长度数组的列表来做buffer。这样在进行write<BinaryWriter>这样的操作时,只需要O(1)来合并两个列表,避免大量的复制。

[BUG] 对 TriggerParams 反括号的转换

当第三方MPQ定义了自定义TriggerParams但未指定父类型时,目前不会完全正确判断相关类型,并进行字符串符号的转换。

出现错误的情况:
define.txt

[TriggerTypes]
footype=0,0,0,自定义类型
[TriggerParams]
footype1=0,footype,`foo1`,自定义类型1

考虑逻辑:判断字符符号时仅判断首尾是否均为“ ` ”,如果是,则替换为半角双引号。

清单:
[x] 转换TriggerParams中的反引号为双引号。 “ ` ” 转换为 “ " ”

相关逻辑:
TriggerEditor.cpp:TriggerEditor::convertParameter - switch - Parameter::Type::preset

状态:
已修改完成?:Y
已测试完成?:Y
已提交Pull Request?:Y #16

未来计划

如果有时间的话 重写jasshelper 对vjass/zinc 进行编译 原版的效率实在太低了。

下一步优化

计划 拦截ydwe 的创建进程接口 跟 运行commandline 的接口 拦截之后替换wave 跟 jasshelper 做进一步编译流程的优化加速。

wave 将尝试使用多线程版本

jasshelper 将采取分块编译的方式 将纯t生成的代码抽出 不参与vj编译 编译结束后再将纯t的jass代码插回 加速编译。

下一步扩展计划

为了增加MapHelper的扩展能力 需要封装一套自定义节点的机制 让那些修改过ydtrigger.dll的用户也能轻易的将自己的改动 添加到MapHelper里。

重构计划

有了新的设计思路, 原本的思路之下扩展越来越困难麻烦,早日重构。

YDWE插件化

现在MapHelper已经趋于稳定,是时候将其作为YDWE的插件发布了。

加速插件还有的一些问题

  • 1. 当前编辑器打开一张以上地图时。如果两张地图都存在改动。退出时选择保存会将编辑器非当前显示的地图保存为当前显示的地图。

  • 2. 逆天类型检测在逆天计时器逆天触发器逆天运行触发器中允许重定义一次类型。【看了眼ydwe那边issues好像acb说是没判断属于bug这个不管了】

  • 3. 编辑器地形编辑上设置单位,可破坏物掉落物品一堆bug,列如设置随机掉落物品,可破坏物代码中未选中导致未注册事件等。【这个过几天有空修了算了】

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.