ExecuteFunc'ing static methods

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Reaction score
62
Hm... Maybe I've asked this one before but anyway:

How to use the ExecuteFunc native which takes a string, i.e function/static method's name to "execute" a static method?

JASS:
struct STRUCT

    static method FUNCY takes nothing returns nothing
        call BJDebugMsg("If instead of ")
        call BJDebugMsg("ExecuteFunc, .evaluate()")
        call BJDebugMsg("or .execute()")
        call BJDebugMsg("are used then")
        call BJDebugMsg("this will be copied in")
        call BJDebugMsg("another function")
        call BJDebugMsg("the problem is that")
        call BJDebugMsg("the static method is quite long")
        call BJDebugMsg("I can't believe I actually wrote that =)")        
    endmethod

    static method onInit takes nothing returns nothing
        //call FUNCY.evaluate()
        //call FUNCY.execute()
        call ExecuteFunc(????)
        call ExecuteFunc("s__STRUCT_FUNCY") // works but ... it's "way too hacky"
        call ExecuteFunc("s__LIBRARY___STRUCT_FUNCY") // even worse if the struct is private
    endmethod

endstruct
 
.name generates the same prototype functions that .execute does. Either don't use structs with ExecuteFunc, or use .execute.

Cohadar may update JassHelper to not compile the prototype functions for things like this, but until then, I recommend if you have a situation that requires ".name", to use .execute or TriggerExecute instead.
 
.name generates the same prototype functions that .execute does. Either don't use structs with ExecuteFunc, or use .execute.

lol? Didn't know 'bout that. Doesn't make too much sense, but hell, nothing does that has anything to do with JH.
 
This is peculiar. And well in that case [ljass] call ExecuteFunc("s__<struct_name>_<static_method_name>")[/ljass] and [ljass] call ExecuteFunc("s__<library>___<struct_name>_<static_method_name>")[/ljass] suddenly seam "reasonable".
 
Keep in mind, private members are either two or three underscores, because JassHelper randomizes it.

But yeah, I usually avoid ExecuteFunc'ing static methods and when I need to ExecuteFunc a "private" function I just make the function prefixed with something, like Private_LibraryName_FunctionName or something. I avoid the string "SCOPE_PRIVATE" because when you use concatenation and then "shorten names" on Vexorian's optimizer, you get a fail.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    They are pretty similar, but this one is much less involved than a real CNC. A lot less moving parts
    +1
  • The Helper The Helper:
    Happy Monday!
  • The Helper The Helper:
    Added a new Cocktail recipe even though I quit drinking - not about me though :) Nordic Gibson - https://www.thehelper.net/threads/cocktail-nordic-gibson.196598/
  • Varine Varine:
    +1
  • Varine Varine:
    I've been really into this
  • Varine Varine:
    It's a musical retelling of The Odyssey
  • Varine Varine:
    Also if you want mixed drinks without alcohol, there's a handful of non-alcoholic 'spirits'. Ritual Zero and Free Spirit are the two brands I've tried and they are alright. They don't have a TON of options, but they have some gin and whiskey alternatives that are fun to play with.
  • Varine Varine:
    I got a couple bottles to make some mixy drinks around holidays when I mostly want to drink, they aren't exact replacements but they are surprisingly close.
  • Varine Varine:
    I ended up with some hop water things that I really like instead for when I want to feel like I'm participating
  • Varine Varine:
    I just got moved to unsupervised probation, so I can get away with drinking a bit now. I technically am not supposed to, but I don't think I get checked anymore. I really want to smoke weed but it scares me
  • The Helper The Helper:
    Happy Wednesday! I am not feeling it today, my teeth are bothering me, or the fragments that were left behind are coming up and it is extra painful today. Don't ever let them tell you that getting full dental implants is easy. They have to pull all your teeth to do those and apparently they are not very good at getting all the teeth out all the time.
    +1
  • The Helper The Helper:
    That is true with Dentures too. I am taking the day off and working from home. The big difference is though, I am not drinking anymore so I have a nice tea and coffee regimen set up :)
  • Varine Varine:
    I wish i had a 3D scanner
  • Varine Varine:
    That would make what I'm doing SO much easier
  • Varine Varine:
    I guess I could just take a picture of it and then use that as a reference. I have a circuit board with some weird holes I can't get measured right
  • Varine Varine:
    Oh I got a Klipper mod for my big printer! It comes with a bunch of parts and I don't totally understand what it does but apparently it's way better than Marlin, which is I think what it currently runs
    +1
  • The Helper The Helper:
    Nice!
  • Varine Varine:
    You're people in Florida safe? The only couple I know are safe but I think they evacuated.
  • The Helper The Helper:
    They are without power but safe. Flood damage and stuff alot of tornados hit east Florida. No fatalities or injuries to any of my people that I know of
  • The Helper The Helper:
    They have been through all the Florida hurricanes they are like me I have been through every texas hurricane for the last 50 years.
  • The Helper The Helper:
    Never evacuated.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top