• 🏆 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!

Why not Grimoire/JNGP?

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Grimoire is starting to age, and haven't been updated since version 1.21 of Warcraft III. This means that in order for JNGP to keep working, we've had to bundle the 1.21 worldedit.exe along with it ever since. This has been working fine for a time, but by now so much has changed in the internal structure and workings of Warcraft III that several issues have started to come up and features are missing.
  • GUI HashTable functions like the Key of ... will immediately crash the editor.
  • The MPQ structure has changed, making it necessary to manually import the cd-keys back for the World Editor to work again.
  • The new Validate feature is completely missing from JNGP.
This is only bound to get worse.

One option is to update Grimoire and make things work again. The Grimoire Source Code is available online, and figuring out how to build it should be straight forward. However the findings and different hacks aren't very well documented, primarily due to the fact that everyone thought Blizzard were done updating, so as long as a hack worked, we didn't care much how it was found.

The other option is to create a new system that would try and address the challenges Grimoire faced, and attempt to make something more stable and more prepared for the coming patches. This is what I decided to do, both due to the fact that I wasn't a strong C++ developer, and because I was positive, a rewrite would be a better approach. The result of my work is SharpCraft.
 
Level 7
Joined
Mar 10, 2013
Messages
366
Just to know, what programming language you're using to develop the SharpCraft?

EDIT: Ok, I was able to find your Git Repository, so no need to question this anymore

I would love to contribute to your piece of art. But it's hard to contribute without knowring how your bundle works. I know it's a hardware injection, but how does that work?
 
Last edited:

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Just to know, what programming language you're using to develop the SharpCraft?

EDIT: Ok, I was able to find your Git Repository, so no need to question this anymore

I would love to contribute to your piece of art. But it's hard to contribute without knowring how your bundle works. I know it's a hardware injection, but how does that work?
Once things have stabilized a bit, and the JNGP replacement is working, I'll see if I can get around to create some tutorials. The basic principle is something called dependency injection, where you either implement, import or export some interfaces, and the system will take care of the rest. One example is the JassHelper plugin I made. It implements an "ICompiler" interface, and that's enough for the plugin to get called when the map is saved or the script is compiled. I'll also open source all the plugins as well when I can, which will show how everything works.
 
Level 7
Joined
Mar 10, 2013
Messages
366
I see, I'm aware of this technic, but I wasn't sure it was capable of this.

Sure, I'll be awaiting for that, but if I got any spare time, you don't mind I start toying with it a bit?

Also, why don't you use the GitHub repository?
 
Last edited:
Top