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

[JASS] Execution Problem?

Status
Not open for further replies.
Hello, I was trying to generate a code with this:
JASS:
function InitTrig_Table_Installation takes nothing returns nothing
    local integer m = Macro()
    call MacroAppend(m, "function TableSave{1} takes integer t, integer key, {2} val returns nothing")
    call MacroAppend(m, "   if IsTable(t) then")
    call MacroAppend(m, "       call Save{1}Handle(udg_Table, t, key, val)")
    call MacroAppend(m, "   endif")
    call MacroAppend(m, "endfunction")
    call MacroAppend(m, "function TableLoad{1} takes integer t, integer key returns {2} ")
    call MacroAppend(m, "   if IsTable(t) then")
    call MacroAppend(m, "       return Load{1}Handle(udg_Table, t, key)")
    call MacroAppend(m, "   endif")
    call MacroAppend(m, "   return null")
    call MacroAppend(m, "endfunction")
    
    call MacroPushArgument(m, "Player")
    call MacroPushArgument(m, "player")
    call MacroParse(m)
    call MacroPushArgument(m, "Widget")
    call MacroPushArgument(m, "widget")
    call MacroParse(m)
    call MacroPushArgument(m, "Destructable")
    call MacroPushArgument(m, "destructable")
    call MacroParse(m)
    call MacroPushArgument(m, "Item")
    call MacroPushArgument(m, "item")
    call MacroParse(m)
    call MacroPushArgument(m, "Unit")
    call MacroPushArgument(m, "unit")
    call MacroParse(m)
    call MacroPushArgument(m, "Ability")
    call MacroPushArgument(m, "ability")
    call MacroParse(m)
    call MacroPushArgument(m, "Timer")
    call MacroPushArgument(m, "timer")
    call MacroParse(m)
    call MacroPushArgument(m, "Trigger")
    call MacroPushArgument(m, "trigger")
    call MacroParse(m)
    call MacroPushArgument(m, "TriggerCondition")
    call MacroPushArgument(m, "triggercondition")
    call MacroParse(m)
    call MacroPushArgument(m, "TriggerAction")
    call MacroPushArgument(m, "triggeraction")
    call MacroParse(m)
    call MacroPushArgument(m, "TriggerEvent")
    call MacroPushArgument(m, "event")
    call MacroParse(m)
    call MacroPushArgument(m, "Force")
    call MacroPushArgument(m, "force")
    call MacroParse(m)
    call MacroPushArgument(m, "Group")
    call MacroPushArgument(m, "group")
    call MacroParse(m)
    call MacroPushArgument(m, "Location")
    call MacroPushArgument(m, "location")
    call MacroParse(m)
    call MacroPushArgument(m, "Rect")
    call MacroPushArgument(m, "rect")
    call MacroParse(m)
    call BJDebugMsg("HAHAHA")
    call MacroPushArgument(m, "BooleanExpr")
    call MacroPushArgument(m, "boolexpr")
    //------------------------------------
    //      EVERYTHING STOPS HERE
    //------------------------------------
    call MacroParse(m)
    call MacroPushArgument(m, "Sound")
    call MacroPushArgument(m, "sound")
    call MacroParse(m)
    call MacroPushArgument(m, "Effect")
    call MacroPushArgument(m, "effect")
    call MacroParse(m)
    call MacroPushArgument(m, "UnitPool")
    call MacroPushArgument(m, "unitpool")
    call MacroParse(m)
    call MacroPushArgument(m, "ItemPool")
    call MacroPushArgument(m, "itempool")
    call MacroParse(m)
    call MacroPushArgument(m, "Quest")
    call MacroPushArgument(m, "quest")
    call MacroParse(m)
    call MacroPushArgument(m, "QuestItem")
    call MacroPushArgument(m, "questitem")
    call MacroParse(m)
    call MacroPushArgument(m, "DefeatCondition")
    call MacroPushArgument(m, "defeatcondition")
    call MacroParse(m)
    call MacroPushArgument(m, "TimerDialog")
    call MacroPushArgument(m, "timerdialog")
    call MacroParse(m)
    call MacroPushArgument(m, "Leaderboard")
    call MacroPushArgument(m, "leaderboard")
    call MacroParse(m)
    call MacroPushArgument(m, "Multiboard")
    call MacroPushArgument(m, "multiboard")
    call MacroParse(m)
    call MacroPushArgument(m, "MultiboardItem")
    call MacroPushArgument(m, "multiboarditem")
    call MacroParse(m)
    call MacroPushArgument(m, "Trackable")
    call MacroPushArgument(m, "trackable")
    call MacroParse(m)
    call MacroPushArgument(m, "Dialog")
    call MacroPushArgument(m, "dialog")
    call MacroParse(m)
    call MacroPushArgument(m, "Button")
    call MacroPushArgument(m, "button")
    call MacroParse(m)
    call MacroPushArgument(m, "TextTag")
    call MacroPushArgument(m, "texttag")
    call MacroParse(m)
    call MacroPushArgument(m, "Lightning")
    call MacroPushArgument(m, "lightning")
    call MacroParse(m)
    call MacroPushArgument(m, "Image")
    call MacroPushArgument(m, "image")
    call MacroParse(m)
    call MacroPushArgument(m, "Ubersplat")
    call MacroPushArgument(m, "ubersplat")
    call MacroParse(m)
    call MacroPushArgument(m, "Region")
    call MacroPushArgument(m, "region")
    call MacroParse(m)
    call MacroPushArgument(m, "FogState")
    call MacroPushArgument(m, "fogstate")
    call MacroParse(m)
    call MacroPushArgument(m, "FogModifier")
    call MacroPushArgument(m, "fogmodifier")
    call MacroParse(m)
    call MacroPushArgument(m, "Agent")
    call MacroPushArgument(m, "agent")
    call MacroParse(m)
    call MacroPushArgument(m, "Hashtable")
    call MacroPushArgument(m, "hashtable")
    call MacroParse(m)
    
    call DownloadMacro(m)
    
    call DestroyMacro(m)
endfunction

Tho at an specific line in the code (indicated by a comment), everything after it seems not to run at all. Any thoughts how to fix it?

(run at all means that even displaying messages won't even work)
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
Simply making a trigger or using a timer would start on a new thread thus resetting the op count.

I always have an init check that tells me how many operations I still have left on map init.
As the entire init state is done in the first moment of the map (0s timer action) I simply place an infinite loop at the end counting up, then I display the number on a second timer.
Whenever I test the map, I can see the remaining operations and can compare them to what I had before.

JASS:
function OPChecker takes nothing returns nothing
    call BJDebugMsg("OP count: " + I2S(OP_CHECKER))
    call DestroyTimer(GetExpiredTimer())
endfunction
function Init takes nothing returns nothing
    call TimerStart(GetExpiredTimer(), 0, false, function OPChecker)
    
    //blablabla
    
    loop
         set OP_CHECKER = OP_CHECKER +1
    endloop
endfunction
...
    call TimerStart(CreateTimer(), 0, false, function Init)
 
Status
Not open for further replies.
Top