1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. The SharpCraft World Editor Extended (WEX) has been updated for the latest Warcraft 3 version: Forum.
    Dismiss Notice
  3. The Paired Modeling/Texturing Contest #3 - Leaders has begun! Artists group up and struggle! May the best team lead the run.
    Dismiss Notice
  4. The long awaited results for Mini-Mapping Contest #13 is here! Congratulate the winners!
    Dismiss Notice
  5. Vote for the best Concept Art Contest - Bounty Hunter entry!
    Dismiss Notice

So any ETA on the order ID fix?

Discussion in 'Patch Discussion' started by Zwiebelchen, Apr 9, 2017.

  1. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    6,545
    This bug is serious and breaks backwards-compatibility with almost all maps that got optimized with Vex' map optimizer. INCLUDING maps made entirely in GUI.

    This is a serious thing and needs to be fixed yesterday, not in 2 months.


    As for me, I can not release any new versions despite having fixed my Newgen install, as a manual retrofix for the messed up order IDs might backfire as soon as blizzard patches the order IDs back.


    We (speaking for the whole community here, sorry) desperately need an ETA on this. Or at least an official word by blizzard if the new order IDs are going to stay or not. At least let us know if this is a permanent change or not, so we can adapt.
     
  2. SpasMaster

    SpasMaster

    Joined:
    Jan 29, 2010
    Messages:
    1,626
    Was just about to make a thread about this myself.
    +1
     
  3. Kam

    Kam

    Patch Moderator

    Joined:
    Aug 3, 2004
    Messages:
    2,415
    The issue has already been resolved and will be included in the next patch, which will be soon.
     
  4. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    5,819
    Does "being fixed" happen to include new spells for modding? Or maybe the ability to use unused ability ID's to allow abilities to stack? : )
     
  5. Hotwer

    Hotwer

    Joined:
    Mar 10, 2013
    Messages:
    238
    Expecting to have more detailed information about the next patch
     
  6. puffdragon

    puffdragon

    Joined:
    Jul 10, 2008
    Messages:
    254
    Resolved how? New order ids are staying or older order ids are restored?
     
  7. Kam

    Kam

    Patch Moderator

    Joined:
    Aug 3, 2004
    Messages:
    2,415
    Restored order ID's.
     
  8. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    1,002
    Hopefully sooner than soon... :wink:
     
  9. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    6,545
    I hope they fix the JNGP aswell while they are at it. Self-fixing is great and all, but I prefer having a solution that is future-proof.
     
  10. TriggerHappy

    TriggerHappy

    Joined:
    Jun 23, 2007
    Messages:
    3,106
    You can't expect Blizzard to support JNGP forever. @MindWorX is updating WEX and it already much more future proof.
     
  11. KILLCIDE

    KILLCIDE

    Code Moderator

    Joined:
    Jul 22, 2015
    Messages:
    2,669
    Yeah I'm not sure why everyone is clinging onto JNGP so hard. JNGP will always be stuck on 1.21, so every new patch is going to break it somehow. It's going to get to the point where it will flat out stop working. Rather than having MindWorX work on an editor that is stuck in the past, it is much better overall having him work on a new editor that will automatically update itself to the new editor changes Blizzard brings.
     
  12. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    6,545
    Bullshit. Newgen is nothing else but code injection and the integration of existing libraries like Jasshelper, Tesh, etc. It doesn't matter which editor version it is using, unless blizzard really adds new features to the editor which I highly doubt. The only thing we can expect in this regard might be a new native or two which can easily be added to Newgen by updating the .j files.

    Writing a Newgen from scratch is a monumental task. This is why WEX pretty much provides nothing of the functionality that Newgen does yet. You won't do this in a couple of weeks. People worked on Newgen for years to get it in the state it is now.

    Also, it's not a big deal for blizzard to support Newgen forever. All features we requested for the editor can pretty much be solved by giving us new JASS natives. We never requested big changes to the editor, just new functions, so why should blizzard even invest time into it? This pretty much sums down to "never change a running system".

    So, yes Newgen IS future proof unless Blizzard really fucks something up like they did in 1.28.

    Also, blizzard clearly stated that they care about not breaking backwards compatibility to old maps. Guess what: almost all old maps were created with Newgen, so they kinda have to roll with it anyway.
     
    Last edited: Apr 21, 2017
  13. MindWorX

    MindWorX

    Tool Moderator

    Joined:
    Aug 3, 2004
    Messages:
    558
    Lets first cover how Blizzard initially broke JNGP, or more specifically, Grimoire which is what makes JNGP work. This happened already in version 1.22, when they decided to change compiler. To figure out why this is a problem, we'll take a look at how Grimoire works exactly. This is the information stored for the ObjectId hack, the little box that pops up when you create a new object, which lets you set the id you want.
    Code (C):

    const char NewObjectIdPattern[] = {
       0x89,0x50,0x04,
       0x89,0x08,
       0xC7,0x43,0x24,0x01,0x00,0x00,0x00,
       0x8B,0xC2,
       0x5B,
       0x8B,0xE5
    };

    const char NewObjectIdMask[] = {
       0xFF,0xFF,0xFF,
       0xFF,0xFF,
       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
       0xFF,0xFF,
       0xFF,
       0xFF,0xFF
    };
     

    Grimoire works by scanning the memory for patterns. The mask is included so some bytes can be wildcards. This isn't used in this case. So, for the ObjectId hack to work, it needs to be able to find one match for the byte array in NewObjectIdPattern. As you can imagine, this approach is rather sensitive to changes in the source code, but if done correctly, it could theoretically be version agnostic for the most parts.

    This wasn't the case when Blizzard changed the compiler. The change resulted in tiny, but breaking changes. Instead of using the EAX register, it might now use the EDI register. Nothing that would affect the editor, but it broke JNGP completely.

    JassHelper relies on Grimoire to start it when the map saved. With Grimoire broken, this couldn't work anymore. TESH is a bit more lenient in this way. It simply detects when a window is created by hooking the windows API, and then overlays the existing editor with it's own functionality. It still has to be injected though, and with Grimoire dead, it wasn't going to happen.

    So now you can see, the version matters very much, which is why version 1.21 of WorldEdit.exe has been bundled with JNGP ever since.

    You're correct that the NewGen collection took a lot of time. It was only possible through the collaboration of dedicated people in the community. WEX is lacking, only because the tools created for JNGP are broken or outdated or haven't been deemed necessary yet. It's a process that takes time. The core functionality IS working. It can launch custom compilers, it can inject custom menus. It even comes with the object id hack, which was a royal pain to port.

    By now you obviously know this isn't the case. A minor change in their code can break everything.

    Blizzard aren't responsible to making sure our third party parsers will continue to work. They're concerned with making the actual JASS work, without compromising security. And when they break things like order ids, they're going to fix it as soon as they can.
     
  14. Kam

    Kam

    Patch Moderator

    Joined:
    Aug 3, 2004
    Messages:
    2,415
    To be more explicit Blizzard isn't going to be maintaining any third party software. JNGP has been discussed thoroughly including when Purge and I were there. They are aware of it's importance and speak with a number of community members including MindWorX so that the community may maintain or upgrade it's own software as it sees fit.
     
    Last edited: Apr 21, 2017
  15. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    6,545
    Thanks for the clarifications MindWorX; this wasn't meant as playing down your achievements in WEX in any way. In fact, I have WEX here on my system, I just don't use it because it doesn't come with Jasshelper or TESH by default.
     
  16. MindWorX

    MindWorX

    Tool Moderator

    Joined:
    Aug 3, 2004
    Messages:
    558
    It's fine, I just wanted to make sure people understood the process. These hacks are far from simple. :) I'm not sure which version of WEX you got. Both are bundled with it.
     
  17. Neco

    Neco

    Joined:
    Dec 14, 2014
    Messages:
    14
    Could we get an update on this from Blizzard or anyone in contact with them?
     
  18. Kam

    Kam

    Patch Moderator

    Joined:
    Aug 3, 2004
    Messages:
    2,415
    Patch is basically ready. I'll try and nail down a date for you.
     
  19. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    6,545
    3 weeks have gone by and the hotfix for order IDs is still pending -.-
     
  20. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    1,002
    In the meantime, StarCraft has been updated to version 1.18.2 twelve hours ago or so...
    :con:
     
    Last edited: Apr 27, 2017