• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!
My simpler version of timer utils
Really wish jass tags worked here -.-
maddeem

My simpler version of timer utils Really wish jass tags worked here -.-

JASS:
library TimerUtils initializer Init

    globals
        private integer AMOUNT=32
        private timer array TIMER
        private integer array ATTACH
        private boolean array USED
        private integer array ID
        private timer TIME
    endglobals
    
    function NewTimer takes nothing returns timer
        local integer i=0
        loop
            set i=i+1
            exitwhen USED[i]==false
            if i==AMOUNT and USED[i]==true then
                set i=i+1
                set AMOUNT=i
                set TIMER[i]=CreateTimer()
                set USED[i]=false
                set ID[i]=GetHandleId(TIMER[i])
                set ATTACH[i]=0
                set i=i-1
            endif
        endloop
        set USED[i]=true
        return TIMER[i]
    endfunction

    function GetTimerId takes timer t returns integer
        local integer i=0
        local integer id=GetHandleId(t)
        loop
            set i=i+1
            exitwhen ID[i]==id
        endloop
        return i
    endfunction
    
    function NewTimerEx takes integer d returns timer
        set TIME=NewTimer()
        set ATTACH[GetTimerId(TIME)]=d
        return TIME
    endfunction
    
    function ReleaseTimer takes timer t returns nothing
        local integer i=0
        local integer id=GetHandleId(t)
        call PauseTimer(t)
        loop
            set i=i+1
            exitwhen ID[i]==id
        endloop
        set USED[i]=false
        set ATTACH[i]=0
    endfunction
   
    function SetTimerData takes timer t, integer ii returns nothing
        local integer id=GetHandleId(t)
        local integer i=0
        loop
            set i=i+1
            exitwhen ID[i]==id
        endloop
        set ATTACH[i]=ii
    endfunction
  
    function GetTimerData takes timer t returns integer
        local integer i=0
        local integer id=GetHandleId(t)
        loop
            set i=i+1
            exitwhen ID[i]==id
        endloop
        return ATTACH[i]
    endfunction
  
    private function Init takes nothing returns nothing
        local integer i=0
        loop
            set i=i+1
            set TIMER[i]=CreateTimer()
            set USED[i]=false
            set ATTACH[i]=0
            set ID[i]=GetHandleId(TIMER[i])
            exitwhen i==AMOUNT
        endloop
    endfunction
    
endlibrary
 

Media information

Album
Coding
Added by
maddeem
Date added
View count
299
Comment count
1
Rating
0.00 star(s) 0 ratings

Share this media

Top