G
Reaction score
0

Profile posts Latest activity Postings About

  • When I originally added AutoStruct to AutoIndex, it was nearly identical feature-wise to AIDS. However, it wasn't really well received in the WC3C community. People liked automatic destruction, but automatic creation was not always wanted. There was also the issue that only one struct of a given type could be owned by a unit. So I split the functionality of AutoStruct into 3 distinct modules.

    AutoData handles unit "ownership" of struct instances, and even allows you to use 2D syntax when multiple instances are associated with 1 unit (example: StructName[unit][index]). AutoCreate handles automatic creation for units passing the filter, and AutoDestroy handles automatic destruction. Also, it's possible to manually create and destroy instances. This allows the versatility people wanted, but you can recreate AutoStruct functionality by implementing both AutoCreate and AutoDestroy.
    I've never actually found a use for locking an index, nor has anyone requested it. Is there a case where locking an index is useful that wasn't caused by bad code design in the first place? Removal detection allows the unit to instantly remove itself from all systems/loops as it exits the game, so that data really shouldn't be required after it's decayed.

    When you originally mentioned the idea for AIDS to me, I said that I wanted to wait until it was possible as a module before I added something similar to AutoIndex. That wound up taking a long time because Vex's activity level keeps dropping. I'm worried that someone will need to take over JassHelper if Vex doesn't revive sometime in the next couple months. There are several more features that are desperately needed for vJASS.
    Hey cool, thanks for the info. I should see what each AIDS struct adds: I'm sure it's tiny, though.

    The point of AIDS btw was not originally an efficiency whore system. And if you read the code, it's generally reasonably well commented and not that mangled (just a little). The point of AIDS was turning units into structs, which live and die with the unit's life span. Which I accomplished. Which no one else had until your recent addition to AutoIndex.

    There is, by the way, a distinct difference in coding philosophy between AI and AIDS (which stopped me from writing a version of AIDS that runs off AI so people can use whatever they like). AIDS has functionality to prevent index freeing until the index is out of use (which most of my systems, like SpellStruct, have).

    >It's like some systemic problem over here.
    It's not that bad. It's mostly Nestharus, probably. :p
    I agree with everything you said.
    Which is reflected in any recent system of mine you will view.

    I prefer to keep efficiency high in low level systems (AIDS) and trash it, or rather not design around it, in high level systems (SpellStruct). I actually do start from the interface and work backwards. Have you seen Timer32?

    AIDS is my least clean API I'd say, and yes, that's because I didn't want O(n) struct allocators when the same could be achieved with 1. I've pressed Vex for a .setDefaults() kind of method on array structs to allow default values, but that hasn't happened (and would clean up the API nicely).
    In regards to the visitor message you kindly left me:

    >Since you have never made anything that actually pushes WC3 to its limits performance-wise (like a physics engine)

    See.

    >worrying about pointless nonsense like: how to avoid declaring local variables, how to avoid declaring too many triggers, and how to deliberately avoid using higher level features like function interfaces

    I never encourage anyone to do any of those things, but I occasionally do so myself.

    >Your coding philosophy of "mangle the code as badly as possible in the name of efficiency" is insane. The systems you create often have APIs that force the user to jump through hoops just to compensate for the way it's coded.

    See.

    Your post seemed to be about AIDS versus AutoIndex, rather than the system IDEA. Hence, it is now on my visitor message wall. :)
  • Loading…
  • Loading…
  • Loading…
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top