163 lines
5.2 KiB
Lua
163 lines
5.2 KiB
Lua
exports('GetFinanceOrganizationObject', function()
|
|
return FinanceOrganization
|
|
end)
|
|
|
|
AddEventHandler('onClientResourceStop', function(res)
|
|
if GetCurrentResourceName() ~= res then
|
|
return
|
|
end
|
|
|
|
FinanceOrganization.Office.Clear()
|
|
end)
|
|
|
|
FinanceOrganization = {
|
|
Name = {
|
|
Colors = {
|
|
black = 0,
|
|
gray = 1,
|
|
yellow = 2,
|
|
blue = 3,
|
|
orange = 5,
|
|
red = 6,
|
|
green = 7
|
|
},
|
|
Fonts = {
|
|
font1 = 0,
|
|
font2 = 1,
|
|
font3 = 2,
|
|
font4 = 3,
|
|
font5 = 4,
|
|
font6 = 5,
|
|
font7 = 6,
|
|
font8 = 7,
|
|
font9 = 8,
|
|
font10 = 9,
|
|
font11 = 10,
|
|
font12 = 11,
|
|
font13 = 12
|
|
},
|
|
Style = {
|
|
normal = 3,
|
|
light = 1
|
|
},
|
|
name = "",
|
|
style = 0,
|
|
color = 0,
|
|
font = 0,
|
|
|
|
Set = function(name, style, color, font)
|
|
FinanceOrganization.Name.name = name
|
|
FinanceOrganization.Name.style = style
|
|
FinanceOrganization.Name.color = color
|
|
FinanceOrganization.Name.font = font
|
|
FinanceOrganization.Office.stage = 0
|
|
end
|
|
},
|
|
Office = {
|
|
needToLoad = false,
|
|
loaded = false,
|
|
target = "prop_ex_office_text",
|
|
prop = "ex_prop_ex_office_text",
|
|
renderId = -1,
|
|
movieId = -1,
|
|
stage = 0,
|
|
|
|
Init = function()
|
|
DrawEmptyRect(FinanceOrganization.Office.target, FinanceOrganization.Office.prop)
|
|
end,
|
|
Enable = function(state)
|
|
FinanceOrganization.Office.needToLoad = state
|
|
end,
|
|
Clear = function()
|
|
if IsNamedRendertargetRegistered(FinanceOrganization.Office.target) then
|
|
ReleaseNamedRendertarget(GetHashKey(FinanceOrganization.Office.target))
|
|
end
|
|
|
|
if HasNamedScaleformMovieLoaded(FinanceOrganization.Office.movieId) then
|
|
SetScaleformMovieAsNoLongerNeeded(FinanceOrganization.Office.movieId)
|
|
end
|
|
|
|
FinanceOrganization.Office.renderId = -1
|
|
FinanceOrganization.Office.movieId = -1
|
|
FinanceOrganization.Office.stage = 0
|
|
end
|
|
}
|
|
}
|
|
|
|
Citizen.CreateThread(function()
|
|
FinanceOrganization.Office.Init()
|
|
|
|
while true do
|
|
if FinanceOrganization.Office.needToLoad then
|
|
-- Need to load
|
|
if Global.FinanceOffices.isInsideOffice1 or Global.FinanceOffices.isInsideOffice2 or Global.FinanceOffices.isInsideOffice3 or Global.FinanceOffices.isInsideOffice4 then
|
|
DrawOrganizationName(FinanceOrganization.Name.name, FinanceOrganization.Name.style, FinanceOrganization.Name.color, FinanceOrganization.Name.font)
|
|
|
|
FinanceOrganization.Office.loaded = true
|
|
|
|
Citizen.Wait(0) -- We need to call all this every frame
|
|
else
|
|
Citizen.Wait(1000) -- We are not inside an office
|
|
end
|
|
elseif FinanceOrganization.Office.loaded then
|
|
-- Loaded and need to unload
|
|
FinanceOrganization.Office.Clear()
|
|
FinanceOrganization.Office.loaded = false
|
|
|
|
Citizen.Wait(1000) -- We can wait longer when we don't need to display text
|
|
else
|
|
-- Not needed to load
|
|
Citizen.Wait(1000) -- We can wait longer when we don't need to display text
|
|
end
|
|
end
|
|
end)
|
|
|
|
function DrawOrganizationName(name, style, color, font)
|
|
if FinanceOrganization.Office.stage == 0 then
|
|
if FinanceOrganization.Office.renderId == -1 then
|
|
FinanceOrganization.Office.renderId = CreateNamedRenderTargetForModel(FinanceOrganization.Office.target, FinanceOrganization.Office.prop)
|
|
end
|
|
|
|
if FinanceOrganization.Office.movieId == -1 then
|
|
FinanceOrganization.Office.movieId = RequestScaleformMovie("ORGANISATION_NAME")
|
|
end
|
|
|
|
FinanceOrganization.Office.stage = 1
|
|
elseif FinanceOrganization.Office.stage == 1 then
|
|
if HasScaleformMovieLoaded(FinanceOrganization.Office.movieId) then
|
|
local parameters = {
|
|
p0 = {
|
|
type = "string",
|
|
value = name
|
|
},
|
|
p1 = {
|
|
type = "int",
|
|
value = style
|
|
},
|
|
p2 = {
|
|
type = "int",
|
|
value = color
|
|
},
|
|
p3 = {
|
|
type = "int",
|
|
value = font
|
|
}
|
|
}
|
|
|
|
SetupScaleform(FinanceOrganization.Office.movieId, "SET_ORGANISATION_NAME", parameters)
|
|
|
|
FinanceOrganization.Office.stage = 2
|
|
else
|
|
FinanceOrganization.Office.movieId = RequestScaleformMovie("ORGANISATION_NAME")
|
|
end
|
|
elseif FinanceOrganization.Office.stage == 2 then
|
|
SetTextRenderId(FinanceOrganization.Office.renderId)
|
|
SetScriptGfxDrawOrder(4)
|
|
SetScriptGfxDrawBehindPausemenu(true)
|
|
SetScriptGfxAlign(73, 73)
|
|
DrawScaleformMovie(FinanceOrganization.Office.movieId, 0.196, 0.245, 0.46, 0.66, 255, 255, 255, 255, 0)
|
|
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
|
|
ResetScriptGfxAlign()
|
|
end
|
|
end
|