HIVE

D
Deleted member 219079
Yeah, well, I know for a fact there'll be at least one ardent user. :p With the advent of coroutines and ranges in C++20, it'll feel frightfully modern.
Malhorne
Malhorne
I'm sure the C++ 20 additions will prove to be useful, but again I fear the addition of even more new features could be a problem.
D
Deleted member 219079
I agree. Luckily they also deprecate and remove stuff (like the dreadful auto_ptr was removed), but yeah, general trend seems to be that the standard spec grows bigger and bigger.
Malhorne
Malhorne
Ahah yeah at least they remove some of this stuff, but the tendency is still to bloat the language (at least in my opinion).
The main problem is that it feels like there are multiple languages inside the same one and usually you have a lot of restrictions to apply in the coding style of a project to supervise development and best pratices.
D
Deleted member 219079
Well, you could think of it like a toolbox. You don't need all of the tools for a certain task but all of the tools have their purposes. :)
Malhorne
Malhorne
That's for sure, and I think it is the better way to approach this situation.
Malhorne
Malhorne
Hey!
I managed to set up a modding workflow with vanilla world editor of 1.26 and vJASS in command line. Sadly I can't manage to make the latest versions working. I think I'll need either another patch or some people figuring it out.

Anyway I can still mod on 1.26 patch that's quite something already! I'll finally be able to do some spells :3
D
Deleted member 219079
Malhorne
Malhorne
Why would I use Wurst?
Malhorne
Malhorne
I actually managed to reproduce Vexorian setup of yore. So I can use vJASS and vanilla world editor and it works quite well to be honest.
D
Deleted member 219079
Look at the features it provides. And you get to use VSCode. But then again, if you like Vim I guess you don't see that as a pro. :)
Malhorne
Malhorne
I've got to admit there's quite a lot of features
However it all comes down to plain JASS at the end since we're dealing with Warcraft III.
And to be honest I used to be a perf maniac and I really like to know what I'm writing. Basically when I use vJASS features I know what's happening after the translation to vanilla JASS.
With this I don't.

Yeah the features look appealing, but it does not really suit me I guess. (And also please why bring back this indentation based stuff)

And I'm also probably too lazy to do another Vim plugin (I already did a quick one for JASS haha)
Malhorne
Malhorne
D
Deleted member 219079
Well, I'm not the biggest advocate for Wurst, more a critic of vJASS. vJASS doesn't entertain generic programming paradigm in the slightest, save for text macros which can't be nested. As an avid C++ programmer, I've really grown to like generic programming (templates).

Hah, not having seen vJASS in a long time, that code really twists my head. :D Back in the day, I made my own allocation library here: https://github.com/ShittyJASS/scheisse/blob/master/struct-utils/Alloc.j
Malhorne
Malhorne
vJASS is not a language full of features, but since we're dealing with plain JASS as the core of modding I think it is better to keep that in mind and not do fancy stuff that might degrade performance for no foreseeable reason ^^
And to be honest I really don't think generic stuff is all that outstanding of a feature in JASS.

Worst case just code in Lua :)
I have a soft spot for this language because of like 10 years of World of Warcraft haha

On your code why don't you keep the generated struct code? The goal of my alloc was to be able to merge the loop/init/deinit with the same variables and removing the checks (for double free and stuff) since I had proved that it worked and I never expect to have more than 8189 instances at the same time.

Your alloc library seems more or less to fill the same goals covered by the standard generated code for a struct in vJASS.

Fun fact reading your code showed me some keywords I forgot to add in my own vJASS syntax highlighting haha
D
Deleted member 219079
I can think of situations where vJASS shortcomings hurt you. For example, what if your struct uses a generic container, e.g. //! textmacro STACK takes T, and the T is supplied by user? Impossible to do in vJASS (can't nest textmacros). Wurst: class<T> MyClass; stack<T> data. So, instead of focusing on modding WC3 you focus on circumventing vJASS limitations.

I'm not sure what you mean with generated struct code. Like what do you want me to change in it?

I remember I used this alloc library for spells: https://github.com/ShittyJASS/scheisse/blob/master/struct-utils/UnitAlloc.j
I save a unit array and an assignment (to that array).
Malhorne
Malhorne
I can understand that some limitations might hurt you, but overall I think it is a rich man problem ^^
Worst case stores some handles like you would do with void* and it will be fine :p (I'm joking this can become the greatest mess if not done extremely carefully)

I mean when you write
[JASS]struct A
endstruct[/JASS]

It generates a lot of code to allocate/deallocate and check for double free and stuff.
Thus I wanted to know what wast the goal you tried to accomplish with this Alloc library?
Maybe it's been too long I did not really mod (like a few years) and I missed it haha

Also if I remember correctly onInit and onDestroy methods hurts deeply performances.

The latest link looks closer (at least after a very short look) to my way with some debug messages added to the meal :)
D
Deleted member 219079
Malhorne
Malhorne
I totally agree with this!
I was talking about the first link you sent to me, where you have the module implementations.

It's normal that function calls cost a lot considering there's the pointers to move.

However this link is lit! It is very interesting.
OH MY GOD I CAN PROGRAM IN BYTECODE Oo
COUNT ME IN
Does it work in 1.26 patch?
Oh my god I'm so excited, first thing I'll look seriously when I've some free time after dinner :o
D
Deleted member 219079
Back
Top