Code: Select all
struct MinerSelectData
integer oUD
integer OID
location OL
real OLX
real OLY
widget OT
endstruct
Code: Select all
//SELECTION FUNCTIONS
function MinerSelect takes unit u, player p returns nothing
local integer oUD = GetUnitUserData(u)
local MinerSelectData ms
if GetPlayerTeam(p) == GetPlayerTeam(GetOwningPlayer(u)) then
if oUD == 0 then
set ms = MinerSelectData.create()
call SetUnitUserData( u, ms )
call SetUnitOwner( u, p, true)
set ms.oUD = oUD
endif
endif
endfunction
//END SELECTION FUNCTIONS
function SelRoute takes nothing returns nothing
local unit u = GetTriggerUnit()
local player p = GetTriggerPlayer()
if GetUnitTypeId(u) == 'hfoo' then
call MinerSelect(u, p)
endif
if GetUnitTypeId(u) == 'earc' then
call MinerSelect(u, p)
endif
if GetUnitTypeId(u) == 'uabo' then
call MinerSelect(u, p)
endif
endfunction
//===========================================================================
function InitTrig_Selection takes nothing returns nothing
set gg_trg_Selection = CreateTrigger( )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(0), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(1), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(2), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(3), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(4), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(5), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(6), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(7), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(8), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(9), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(10), true )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Selection, Player(11), true )
call TriggerAddAction( gg_trg_Selection, function SelRoute )
endfunction
Code: Select all
function MinerOrder takes unit u, player p, integer ot, widget tw, location tl returns nothing
local MinerSelectData ms = GetUnitUserData(u)
set ms.OID = ot
set ms.OL = tl
set ms.OLX = GetLocationX(tl)
set ms.OLY = GetLocationY(tl)
set ms.OT = tw
endfunction
//END ORDER FUNCTION
function OrderRoute takes nothing returns nothing
local unit u = GetTriggerUnit()
local player p = GetTriggerPlayer()
local location tl = GetOrderPointLoc()
local widget tw = GetOrderTarget()
local integer ot = GetIssuedOrderId()
if GetUnitTypeId(u) == 'hfoo' then
call MinerOrder(u, p, ot, tw, tl)
endif
if GetUnitTypeId(u) == 'earc' then
call MinerOrder(u, p, ot, tw, tl)
endif
if GetUnitTypeId(u) == 'uabo' then
call MinerOrder(u, p, ot, tw, tl)
endif
endfunction
//===========================================================================
function InitTrig_Order takes nothing returns nothing
set gg_trg_Order = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Order, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
call TriggerAddAction( gg_trg_Order, function OrderRoute )
endfunction
Code: Select all
//DESELECTION FUNCTIONS
function F2cP takes player p returns player
local integer i = GetPlayerTeam(p)
if i == 0 then
return Player(0)
elseif i == 1 then
return Player(1)
endif
return Player(12)
endfunction
function MinerDeselect takes unit u, player p returns nothing
local MinerSelectData ms = GetUnitUserData(u)
if GetPlayerTeam(p) == GetPlayerTeam(GetOwningPlayer(u)) then
call SetUnitOwner( u, F2cP(p), true )
if ms.OT == null then
call IssuePointOrderById( u, ms.OID, ms.OLX, ms.OLY )
elseif ms.OL == null then
call IssueTargetOrderById( u, ms.OID, ms.OT )
endif
call SetUnitUserData( u, ms.oUD )
set ms.oUD = 0
set ms.OID = 0
set ms.OL = null
set ms.OLX = 0
set ms.OLY = 0
set ms.OT = null
call ms.destroy()
endif
endfunction
//END DESELECTION FUNCTIONS
function DSelRoute takes nothing returns nothing
local unit u = GetTriggerUnit()
local player p = GetTriggerPlayer()
if GetUnitTypeId(u) == 'hfoo' then
call MinerDeselect(u, p)
endif
if GetUnitTypeId(u) == 'earc' then
call MinerDeselect(u, p)
endif
if GetUnitTypeId(u) == 'uabo' then
call MinerDeselect(u, p)
endif
endfunction
//===========================================================================
function InitTrig_Deselection takes nothing returns nothing
set gg_trg_Deselection = CreateTrigger( )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(0), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(1), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(2), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(3), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(4), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(5), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(6), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(7), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(8), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(9), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(10), false )
call TriggerRegisterPlayerSelectionEventBJ( gg_trg_Deselection, Player(11), false )
call TriggerAddAction( gg_trg_Deselection, function DSelRoute )
endfunction