• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
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
335
Comment count
1
Rating
0.00 star(s) 0 ratings

Share this media

Top