
library DestructableGroup
type destructablegroup extends destructable array [100]
globals
destructablegroup DG
destructable EnumDestr
integer array Count
endglobals
function IsDestructableInDestructableGroup takes destructablegroup dg,destructable de returns boolean
local integer i=0
loop
exitwhen dg[i]==de or i > 99
set i=i+1
endloop
if i==100 and de != dg[99] then
return false
endif
return true
endfunction
function IsDestructableEmpty takes destructablegroup dg returns boolean
return Count[dg]==0
endfunction
function CreateDestructableGroup takes nothing returns destructablegroup
return destructablegroup.create()
endfunction
function DestroyDestructableGroup takes destructablegroup dg returns nothing
local integer i=0
loop
exitwhen i >99
set dg[i] = null
set i=i+1
endloop
set Count[dg]=0
call dg.destroy()
endfunction
function DestructableGroupAddDestructable takes destructablegroup dg,destructable de returns boolean
if Count[dg] < 98 then
set dg[Count[dg]] = de
set Count[dg] = Count[dg] + 1
return true
endif
return false
endfunction
function DestructableGroupRemoveDestructable takes destructablegroup dg,destructable de returns boolean
local integer i=0
if IsDestructableInDestructableGroup(dg,de) then
loop
exitwhen dg[i]==de
set i=i+1
endloop
type destructablegroup extends destructable array [100]
globals
destructablegroup DG
destructable EnumDestr
integer array Count
endglobals
function IsDestructableInDestructableGroup takes destructablegroup dg,destructable de returns boolean
local integer i=0
loop
exitwhen dg[i]==de or i > 99
set i=i+1
endloop
if i==100 and de != dg[99] then
return false
endif
return true
endfunction
function IsDestructableEmpty takes destructablegroup dg returns boolean
return Count[dg]==0
endfunction
function CreateDestructableGroup takes nothing returns destructablegroup
return destructablegroup.create()
endfunction
function DestroyDestructableGroup takes destructablegroup dg returns nothing
local integer i=0
loop
exitwhen i >99
set dg[i] = null
set i=i+1
endloop
set Count[dg]=0
call dg.destroy()
endfunction
function DestructableGroupAddDestructable takes destructablegroup dg,destructable de returns boolean
if Count[dg] < 98 then
set dg[Count[dg]] = de
set Count[dg] = Count[dg] + 1
return true
endif
return false
endfunction
function DestructableGroupRemoveDestructable takes destructablegroup dg,destructable de returns boolean
local integer i=0
if IsDestructableInDestructableGroup(dg,de) then
loop
exitwhen dg[i]==de
set i=i+1
endloop