Files
gtav-src/tools_ng/dcc/debug/max2011/scripts/pipeline/ui/lodfiddler.ms
T
2025-09-29 00:52:08 +02:00

101 lines
3.2 KiB
Plaintext
Executable File

--
-- File:: pipeline/ui/lodfiddler.ms
-- Description:: LOD Fiddler
--
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-- Rollouts
-----------------------------------------------------------------------------
rollout objlodset "LOD Tools" (
hyperlink lnkHelp "Help?" address:"https://devstar.rockstargames.com/wiki/index.php/LOD_Toolkit#LOD_Tools" align:#right color:(color 0 0 255) hoverColor:(color 0 0 255) visitedColor:(color 0 0 255)
spinner lodmult "LOD * " range:[0,100,1]
spinner lodval "LOD value > " range:[1,3000,200]
button Lodchange "Change LOD" width:133 height:26 across:2
button colourLOD "Colour LOD" width:133 height:26
button colourtxd "Colour TXD" width:133 height:26 across:2
button colourfaces "Colour Poly" width:133 height:26
button selectobj "Select" width:133 height:26
on selectobj pressed do
(obtxdlist=#()
for objc =1 to rootNode.children.count do
(
-- ignore objects without Gta Object attribute class
if (getattrclass rootNode.children[objc]) == "Gta Object" do
(
If (classof objc) !=XRefObject do(
currentlod = getattr rootnode.children[objc] (getattrindex "Gta Object" "LOD distance")
if currentlod >= lodval.value do
(
obname=(rootnode.children[objc])
append obtxdList obname
)
)
)
)
select obtxdlist
)
on lodchange pressed do
(
for lodloop = 1 to selection.count do
(
currentlod = getattr selection[lodloop] (getattrindex "Gta Object" "LOD distance")
newlod = currentlod*lodmult.value
setattr selection[lodloop] (getattrindex "Gta Object" "LOD distance") newlod
)
)
on colourLOD pressed do
(
for lodloop = 1 to selection.count do
(
currentlod = getattr selection[lodloop] (getattrindex "Gta Object" "LOD distance")
lodcol = currentlod as integer
if currentlod<200 then selection[lodloop].wirecolor = [lodcol,lodcol,lodcol]
if currentlod>200 then selection[lodloop].wirecolor = [0,lodcol,lodcol]
if currentlod>299 then selection[lodloop].wirecolor = red
if currentlod == 100 then selection[lodloop].wirecolor = green
print currentlod
)
)
on colourfaces pressed do
(
for lodloop = 1 to selection.count do
(
polycount=selection[lodloop].faces.count
selection[lodloop].wirecolor = [polycount,0,0]
)
)
on colourtxd pressed do
(
txdlist=#()
txdcolour=#()
for obj in rootNode.children do (
-- ignore objects without Gta Object attribute class
if (getattrclass obj) == "Gta Object" do (
txdName = getattr obj (getattrindex "Gta Object" "TXD")
if (findItem txdList txdName) == 0 do (
append txdList txdName
)
)
)
---setsup colors
for txdlists=1 to txdlist.count do
(
txdcolour[txdlists] = [(random 0 255),(random 0 255),(random 0 255)]
)
for obj =1 to selection.count do
(
txdName = getattr selection[obj] (getattrindex "Gta Object" "TXD")
objtxd=findItem txdList txdName
selection[obj].wirecolor = txdcolour[objtxd]
)
)
)