• 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.

[vJASS] RAS

Level 22
Joined
Dec 31, 2006
Messages
2,216
The previous RAS thread was closed so I couldn't update it, thus I must make another thread..
The new RAS is now compatible with 1.24.

Code:
JASS:
library RAS

globals
    private constant integer size = 13600
    private constant integer size2 = 3
    private constant hashtable ht = InitHashtable()
endglobals

globals
    private integer array stru [size][size2]
endglobals

function GetAttachedStruct takes handle h, integer slot returns integer
    local integer i = GetHandleId(h) - 0x100000
    if i > size then
        debug call BJDebugMsg("Handle Id too big. Using hashtable.")
        return LoadInteger(ht, i, slot)
    endif
    return stru[GetHandleId(h) - 0x100000][slot]
endfunction

function AttachStruct takes handle h, integer dat, integer slot returns nothing
    local integer i = GetHandleId(h) - 0x100000
    if i > size then
        debug call BJDebugMsg("Handle Id too big. Using hashtable.")
        call SaveInteger(ht, i, slot, dat)
        return
    endif
    set stru[i][slot] = dat
endfunction
endlibrary

I don't know if anyone actually uses it especially because of the Hashtable, but I decided to update it nevertheless.

PS: If you're a mod, can you please delete the previous thread?
 
Last edited:
Top