Skip to content

Commit 5f39593

Browse files
Fix door model 3089 transparency by setting draw_last flag
1 parent 1e4319d commit 5f39593

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

[gameplay]/mapfixes/meta.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
<setting name="*atrium_lobby_interior" value="[true]" friendlyname="Atrium Lobby Interior" desc="Enable Commerce Atrium lobby open-world interior" accept="true,false"/>
1313
<setting name="*doherty_garage_interior" value="[true]" friendlyname="Doherty Garage Interior" desc="Enable Doherty Safehouse Garage open-world interior" accept="true,false"/>
1414
<setting name="*undamaged_crackfactory_with_interior" friendlyname="Undamaged SF Crack Factory" value="[true]" desc="Enable restored Undamaged SF Crack Factory with open-world interior" accept="true,false"/>
15+
<setting name="*model_transparency_fixes" friendlyname="Model Transparency Fixes" value="[true]" desc="Apply some fixes to certain models which have bugged transparency in GTA" accept="true,false"/>
1516
</settings>
1617
</meta>

[gameplay]/mapfixes/scripts/client/main.lua

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
addEvent("mapfixes:client:loadAllComponents", true)
22
addEvent("mapfixes:client:togOneComponent", true)
33

4-
local function loadOneMapFixComponent(name, data)
4+
local function loadOneMapFixComponent(name, data, wasToggled)
55
-- Clear the previous elements if any
66
local createdElements = data.createdElements
77
if createdElements then
@@ -34,9 +34,22 @@ local function loadOneMapFixComponent(name, data)
3434
setGarageOpen(garageID, false)
3535
end
3636
end
37+
-- Revert previously set model flags
38+
local modelFlagsToSet = data.modelFlagsToSet
39+
if modelFlagsToSet then
40+
for _, v in pairs(modelFlagsToSet) do
41+
engineSetModelFlag(v[1], v[2], not v[3])
42+
end
43+
end
3744

3845
-- Don't proceed if the component is disabled
3946
if not data.enabled then
47+
48+
-- Force restream world after unloading this component
49+
-- only if it was the only one toggled
50+
if wasToggled then
51+
engineRestreamWorld()
52+
end
4053
return
4154
end
4255

@@ -60,7 +73,6 @@ local function loadOneMapFixComponent(name, data)
6073
if allocatedID then
6174
if not data.allocatedIDs then data.allocatedIDs = {} end
6275
data.allocatedIDs[#data.allocatedIDs + 1] = allocatedID
63-
6476
object = createObject(allocatedID, v.x, v.y, v.z, v.rx, v.ry, v.rz)
6577
if object then
6678
engineSetModelPhysicalPropertiesGroup(allocatedID, v.physicalPropertiesGroup)
@@ -94,6 +106,18 @@ local function loadOneMapFixComponent(name, data)
94106
setGarageOpen(garageID, true)
95107
end
96108
end
109+
-- Set model flags if any
110+
if modelFlagsToSet then
111+
for _, v in pairs(modelFlagsToSet) do
112+
engineSetModelFlag(v[1], v[2], v[3])
113+
end
114+
end
115+
116+
-- Force restream world after loading this component
117+
-- only if it was the only one toggled
118+
if wasToggled then
119+
engineRestreamWorld()
120+
end
97121
end
98122

99123
local function loadMapFixComponents(mapFixComponentStatuses)
@@ -105,6 +129,7 @@ local function loadMapFixComponents(mapFixComponentStatuses)
105129
loadOneMapFixComponent(name, data)
106130
end
107131
end
132+
engineRestreamWorld()
108133
end
109134
addEventHandler("mapfixes:client:loadAllComponents", localPlayer, loadMapFixComponents, false)
110135

@@ -116,7 +141,7 @@ local function toggleOneMapFixComponent(name, enable)
116141
return
117142
end
118143
data.enabled = (enable == true)
119-
loadOneMapFixComponent(name, data)
144+
loadOneMapFixComponent(name, data, true)
120145
if eventName ~= "onClientResourceStop" then
121146
outputDebugString("Map fix component '" .. name .. "' is now " .. (data.enabled and "enabled" or "disabled"))
122147
end
@@ -127,5 +152,6 @@ local function unloadAllMapFixComponents()
127152
for name, _ in pairs(mapFixComponents) do
128153
toggleOneMapFixComponent(name, false)
129154
end
155+
engineRestreamWorld()
130156
end
131157
addEventHandler("onClientResourceStop", resourceRoot, unloadAllMapFixComponents, false)

[gameplay]/mapfixes/scripts/shared/data.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,9 @@ mapFixComponents = {
9090
{ 11236, 25, -2164.4531, -255.39062, 38.125, 0 }, -- crackfactwalke
9191
},
9292
},
93+
["model_transparency_fixes"] = {
94+
modelFlagsToSet = {
95+
{ 3089, 'draw_last', true }, -- ab_casdorLok (brown door with glass window)
96+
}
97+
},
9398
}

0 commit comments

Comments
 (0)