162 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			162 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 HasScaleformMovieFilenameLoaded(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
 | 
