• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

So any ETA on the order ID fix?

Status
Not open for further replies.

Zwiebelchen

Hosted Project GR
Level 35
Joined
Sep 17, 2009
Messages
7,236
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.
 
Level 7
Joined
Mar 10, 2013
Messages
366
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? : )
Expecting to have more detailed information about the next patch
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
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.
 

Zwiebelchen

Hosted Project GR
Level 35
Joined
Sep 17, 2009
Messages
7,236
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.
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:

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Bullshit.
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.
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.

Newgen is nothing else but code injection and the integration of existing libraries like Jasshelper, Tesh, etc.
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.

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.
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.

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.
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.

Also, it's not a big deal for blizzard to support Newgen forever. [...]

So, yes Newgen IS future proof unless Blizzard really fucks something up like they did in 1.28.
By now you obviously know this isn't the case. A minor change in their code can break everything.

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.
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.
 
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.

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:
  • Like
Reactions: pyf

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
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.
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.
 
Level 8
Joined
Sep 24, 2007
Messages
300
So they fix the problem that broke the maps and it is not even in the patch notes.. not to mention the patch is 1GB in size. 1Gb to fix a few bugs? At this size you are re-downloading the whole game. Does this new and improved updater even do differential patching? Or was 1.28 such a failure that everything had to be replaced? I guess we will never know..
 

Zwiebelchen

Hosted Project GR
Level 35
Joined
Sep 17, 2009
Messages
7,236
So they fix the problem that broke the maps and it is not even in the patch notes.. not to mention the patch is 1GB in size. 1Gb to fix a few bugs? At this size you are re-downloading the whole game. Does this new and improved updater even do differential patching? Or was 1.28 such a failure that everything had to be replaced? I guess we will never know..
I assume they meddled with the core game MPQs, which are big in filesize and its easier to replace the whole MPQ than adding/removing files from it.

Anyway, great we finally get a working game again. It has been 3 weeks that the game was clinically dead. I hope this wasn't the nail in the coffin for the community.
 
Status
Not open for further replies.
Top