Initial commit

This commit is contained in:
2026-02-28 14:00:45 -06:00
commit 16d3170787
1134 changed files with 589134 additions and 0 deletions

View File

@@ -0,0 +1,162 @@
-- $Id: //depot/Projects/StarWars_Expansion/Run/Data/Scripts/Library/PGSpawnUnits.lua#1 $
--/////////////////////////////////////////////////////////////////////////////////////////////////
--
-- (C) Petroglyph Games, Inc.
--
--
-- ***** ** * *
-- * ** * * *
-- * * * * *
-- * * * * * * * *
-- * * *** ****** * ** **** *** * * * ***** * ***
-- * ** * * * ** * ** ** * * * * ** ** ** *
-- *** ***** * * * * * * * * ** * * * *
-- * * * * * * * * * * * * * * *
-- * * * * * * * * * * ** * * * *
-- * ** * * ** * ** * * ** * * * *
-- ** **** ** * **** ***** * ** *** * *
-- * * *
-- * * *
-- * * *
-- * * * *
-- **** * *
--
--/////////////////////////////////////////////////////////////////////////////////////////////////
-- C O N F I D E N T I A L S O U R C E C O D E -- D O N O T D I S T R I B U T E
--/////////////////////////////////////////////////////////////////////////////////////////////////
--
-- $File: //depot/Projects/StarWars_Expansion/Run/Data/Scripts/Library/PGSpawnUnits.lua $
--
-- Original Author: Brian Hayes
--
-- $Author: Andre_Arsenault $
--
-- $Change: 37816 $
--
-- $DateTime: 2006/02/15 15:33:33 $
--
-- $Revision: #1 $
--
--/////////////////////////////////////////////////////////////////////////////////////////////////
require("PGBaseDefinitions")
function Process_Reinforcements()
for index, btable in ipairs(block_table) do
for k, block in pairs(btable) do
if not block.block then
--Haven't yet issued the reinforcement command, or else a previous attempt failed
block.block = Reinforce_Unit(block.ref_type, block.entry_marker, block.player, true, block.obey_zones)
elseif block.block.IsFinished() then
new_units = block.block.Result()
if type(new_units) == "table" then
for j, unit in pairs(new_units) do
DebugMessage("%s -- Process_Reinforcements Block: %s, unit: %s, allow:%s, delete:%s", tostring(Script), tostring(block.block), tostring(unit), tostring(block.allow_ai_usage), tostring(block.delete_after_scenario))
if block.allow_ai_usage then
--MessageBox("allow_ai_usage: %s", tostring(unit))
unit.Prevent_AI_Usage(false)
end
if block.delete_after_scenario then
--MessageBox("deleting after scenario: %s", tostring(unit))
unit.Mark_Parent_Mode_Object_For_Death()
end
table.insert(block.block_track.unit_list, unit)
end
block.block_track.type_count = block.block_track.type_count - 1
if block.block_track.type_count <= 0 then
if type(block.callback) == "function" then
block.callback(block.block_track.unit_list)
end
table.remove(block_table, index)
Process_Reinforcements()
return
end
end
block_table[index][k] = nil
Process_Reinforcements()
return
end
end
end
new_units = nil
end
function Add_Reinforcement(object_type, player)
if type(object_type) == "string" then
object_type = Find_Object_Type(object_type)
end
Reinforce_Unit(object_type, false, player, true, false)
end
-- Reinforce units via transport, simultaneously.
function ReinforceList(type_list, entry_marker, player, allow_ai_usage, delete_after_scenario, ignore_reinforcement_rules, callback)
if type(ignore_reinforcement_rules) == "function" then
MessageBox("Received a function for 6th parameter; expected bool. Note the signature change, sorry.")
return
end
if player == nil then
MessageBox("expected a player for 3rd parameter; aborting")
return
end
table.insert(block_table, {})
index = table.getn(block_table)
block_track = {
type_count = table.getn(type_list),
unit_list = {}
}
for k, unit_type in pairs(type_list) do
ref_type = Find_Object_Type(unit_type)
btab = {
block = nil,
block_track = block_track,
ref_type = ref_type,
entry_marker = entry_marker,
player = player,
obey_zones = not ignore_reinforcement_rules,
allow_ai_usage = allow_ai_usage,
callback = callback,
delete_after_scenario = delete_after_scenario
}
table.insert(block_table[index], btab)
btab = nil
ref_type = nil
end
end
-- Spawn units simultaneously.
function SpawnList(type_list, entry_marker, player, allow_ai_usage, delete_after_scenario)
unit_list = {}
for k, unit_type in pairs(type_list) do
ref_type = Find_Object_Type(unit_type)
new_units= Spawn_Unit(ref_type, entry_marker, player)
for j, unit in pairs(new_units) do
table.insert(unit_list, unit)
if allow_ai_usage then
--MessageBox("allow_ai_usage: %s", tostring(unit))
unit.Prevent_AI_Usage(false)
else
unit.Prevent_AI_Usage(true) -- This doesn't happen automatically, unlike for Reinforce_Unit
end
if delete_after_scenario then
--MessageBox("deleting after scenario: %s", tostring(unit))
unit.Mark_Parent_Mode_Object_For_Death()
end
end
end
new_units = nil
return unit_list
end