cleeezzz
The Undead Ranger.
- Reaction score
- 268
ok. so What exactly are regions FOR? how are they useful? note that i said Regions, not Rects
ive created this trigger which "maps out" the terrain, it saves all terrain that is cliff level 0. (so any cliffs inside playable map area will be removed from the region)
Now that i have this region with holes in it that only contains cliff level 0, WTH can i do with it? the only native i see useful is, IsPointInRegion, and thats not exactly what i want. I want something more like "GetRandomLocInRect" except for regions.
ive created this trigger which "maps out" the terrain, it saves all terrain that is cliff level 0. (so any cliffs inside playable map area will be removed from the region)
JASS:
scope MAPOUT initializer Init
globals
constant integer cl = 0
boolean Check = false
region Lower_Level = null
real x
real y
real mx
real my
real sx
real ex
trigger MAPOUTTRIG
endglobals
private function Actions takes nothing returns nothing
local rect r
set x = GetRectMinX(bj_mapInitialPlayableArea)
loop
exitwhen x > mx
if GetTerrainCliffLevel(x,y) != cl then
if Check == false then
set sx = x
set Check = true
endif
elseif Check == true then
set ex = x
set r = Rect(sx,y-56,ex,y+56)
call RegionClearRect(Lower_Level,r)
call RemoveRect(r)
set r = null
set Check = false
endif
set x = x + 56
if x > mx and Check == true then
set ex = x
set r = Rect(sx,y-56,ex,y+56)
call RegionClearRect(Lower_Level,r)
call RemoveRect(r)
set r = null
set Check = false
endif
endloop
set y = y + 56
if y > my then
call DisableTrigger(MAPOUTTRIG)
endif
endfunction
//===========================================================================
private function Init takes nothing returns nothing
local trigger trig = CreateTrigger( )
set MAPOUTTRIG = trig
set x = GetRectMinX(bj_mapInitialPlayableArea)
set y = GetRectMinY(bj_mapInitialPlayableArea)
set mx = GetRectMaxX(bj_mapInitialPlayableArea)
set my = GetRectMaxY(bj_mapInitialPlayableArea)
set Lower_Level = CreateRegion()
call RegionAddRect(Lower_Level,bj_mapInitialPlayableArea)
call TriggerRegisterTimerEvent(trig,0.01,true)
call TriggerAddAction( trig, function Actions )
endfunction
endscope
Now that i have this region with holes in it that only contains cliff level 0, WTH can i do with it? the only native i see useful is, IsPointInRegion, and thats not exactly what i want. I want something more like "GetRandomLocInRect" except for regions.