608 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			608 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
exports('GetBikerGangObject', function()
 | 
						|
    return BikerGang
 | 
						|
end)
 | 
						|
 | 
						|
AddEventHandler('onClientResourceStop', function(res)
 | 
						|
    if GetCurrentResourceName() ~= res then
 | 
						|
        return
 | 
						|
    end
 | 
						|
 | 
						|
    BikerGang.Clubhouse.ClearAll()
 | 
						|
end)
 | 
						|
 | 
						|
BikerGang = {
 | 
						|
    Name = {
 | 
						|
        Colors = {
 | 
						|
            black = 0,
 | 
						|
            gray = 1,
 | 
						|
            white = 2,
 | 
						|
            orange = 3,
 | 
						|
            red = 4,
 | 
						|
            green = 5,
 | 
						|
            yellow = 6,
 | 
						|
            blue = 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
 | 
						|
        },
 | 
						|
        name = "",
 | 
						|
        color = 0,
 | 
						|
        font = 0,
 | 
						|
 | 
						|
        Set = function(name, color, font)
 | 
						|
            BikerGang.Name.name = name
 | 
						|
            BikerGang.Name.color = color
 | 
						|
            BikerGang.Name.font = font
 | 
						|
            BikerGang.Clubhouse.ClubName.stage = 0
 | 
						|
        end
 | 
						|
    },
 | 
						|
    Emblem = {
 | 
						|
        Logo = {
 | 
						|
            eagle = "MPClubPreset1",
 | 
						|
            skull = "MPClubPreset2",
 | 
						|
            ace = "MPClubPreset3",
 | 
						|
            brassKnuckles = "MPClubPreset4",
 | 
						|
            UR = "MPClubPreset5",
 | 
						|
            fox = "MPClubPreset6",
 | 
						|
            city = "MPClubPreset7",
 | 
						|
            dices = "MPClubPreset8",
 | 
						|
            target = "MPClubPreset9"
 | 
						|
        },
 | 
						|
        emblem = "MPClubPreset1",
 | 
						|
        rot = 90.0, -- Rotation for 0.0 to 360.0
 | 
						|
 | 
						|
        Set = function(logo, rotation)
 | 
						|
            BikerGang.Emblem.emblem = logo
 | 
						|
            BikerGang.Emblem.rot = rotation
 | 
						|
            BikerGang.Clubhouse.Emblem.stage = 0
 | 
						|
        end
 | 
						|
    },
 | 
						|
    Clubhouse = {
 | 
						|
        interiorId1 = 246273,
 | 
						|
        interiorId2 = 246529,
 | 
						|
 | 
						|
        Members = {
 | 
						|
            President = {
 | 
						|
                needToLoad = false,
 | 
						|
                loaded = false,
 | 
						|
                renderId = -1,
 | 
						|
                textureDict = "",
 | 
						|
                pedheadshot = -1,
 | 
						|
                target = "memorial_wall_president",
 | 
						|
                prop = "bkr_prop_rt_memorial_president",
 | 
						|
                stage = 0,
 | 
						|
 | 
						|
                Init = function()
 | 
						|
                    DrawEmptyRect(BikerGang.Clubhouse.Members.President.target, BikerGang.Clubhouse.Members.President.prop)
 | 
						|
                end,
 | 
						|
                Enable = function(state)
 | 
						|
                    BikerGang.Clubhouse.Members.President.needToLoad = state
 | 
						|
                end,
 | 
						|
                Set = function(ped)
 | 
						|
                    BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.President, ped)
 | 
						|
                end,
 | 
						|
                Clear = function()
 | 
						|
                    BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.President)
 | 
						|
                end
 | 
						|
            },
 | 
						|
            VicePresident = {
 | 
						|
                needToLoad = false,
 | 
						|
                loaded = false,
 | 
						|
                renderId = -1,
 | 
						|
                textureDict = "",
 | 
						|
                pedheadshot = -1,
 | 
						|
                target = "memorial_wall_vice_president",
 | 
						|
                prop = "bkr_prop_rt_memorial_vice_pres",
 | 
						|
                stage = 0,
 | 
						|
 | 
						|
                Init = function()
 | 
						|
                    DrawEmptyRect(BikerGang.Clubhouse.Members.VicePresident.target, BikerGang.Clubhouse.Members.VicePresident.prop)
 | 
						|
                end,
 | 
						|
                Enable = function(state)
 | 
						|
                    BikerGang.Clubhouse.Members.VicePresident.needToLoad = state
 | 
						|
                end,
 | 
						|
                Set = function(ped)
 | 
						|
                    BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.VicePresident, ped)
 | 
						|
                end,
 | 
						|
                Clear = function()
 | 
						|
                    BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.VicePresident)
 | 
						|
                end
 | 
						|
            },
 | 
						|
            RoadCaptain = {
 | 
						|
                needToLoad = false,
 | 
						|
                loaded = false,
 | 
						|
                renderId = -1,
 | 
						|
                textureDict = "",
 | 
						|
                pedheadshot = -1,
 | 
						|
                target = "memorial_wall_active_01",
 | 
						|
                prop = "bkr_prop_rt_memorial_active_01",
 | 
						|
                stage = 0,
 | 
						|
 | 
						|
                Init = function()
 | 
						|
                    DrawEmptyRect(BikerGang.Clubhouse.Members.RoadCaptain.target, BikerGang.Clubhouse.Members.RoadCaptain.prop)
 | 
						|
                end,
 | 
						|
                Enable = function(state)
 | 
						|
                    BikerGang.Clubhouse.Members.RoadCaptain.needToLoad = state
 | 
						|
                end,
 | 
						|
                Set = function(ped)
 | 
						|
                    BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.RoadCaptain, ped)
 | 
						|
                end,
 | 
						|
                Clear = function()
 | 
						|
                    BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.RoadCaptain)
 | 
						|
                end
 | 
						|
            },
 | 
						|
            Enforcer = {
 | 
						|
                needToLoad = false,
 | 
						|
                loaded = false,
 | 
						|
                renderId = -1,
 | 
						|
                textureDict = "",
 | 
						|
                pedheadshot = -1,
 | 
						|
                target = "memorial_wall_active_02",
 | 
						|
                prop = "bkr_prop_rt_memorial_active_02",
 | 
						|
                stage = 0,
 | 
						|
 | 
						|
                Init = function()
 | 
						|
                    DrawEmptyRect(BikerGang.Clubhouse.Members.Enforcer.target, BikerGang.Clubhouse.Members.Enforcer.prop)
 | 
						|
                end,
 | 
						|
                Enable = function(state)
 | 
						|
                    BikerGang.Clubhouse.Members.Enforcer.needToLoad = state
 | 
						|
                end,
 | 
						|
                Set = function(ped)
 | 
						|
                    BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.Enforcer, ped)
 | 
						|
                end,
 | 
						|
                Clear = function()
 | 
						|
                    BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.Enforcer)
 | 
						|
                end
 | 
						|
            },
 | 
						|
            SergeantAtArms = {
 | 
						|
                needToLoad = false,
 | 
						|
                loaded = false,
 | 
						|
                renderId = -1,
 | 
						|
                textureDict = "",
 | 
						|
                pedheadshot = -1,
 | 
						|
                target = "memorial_wall_active_03",
 | 
						|
                prop = "bkr_prop_rt_memorial_active_03",
 | 
						|
                stage = 0,
 | 
						|
 | 
						|
                Init = function()
 | 
						|
                    DrawEmptyRect(BikerGang.Clubhouse.Members.SergeantAtArms.target, BikerGang.Clubhouse.Members.SergeantAtArms.prop)
 | 
						|
                end,
 | 
						|
                Enable = function(state)
 | 
						|
                    BikerGang.Clubhouse.Members.SergeantAtArms.needToLoad = state
 | 
						|
                end,
 | 
						|
                Set = function(ped)
 | 
						|
                    BikerGang.Clubhouse.Members.Set(BikerGang.Clubhouse.Members.SergeantAtArms, ped)
 | 
						|
                end,
 | 
						|
                Clear = function()
 | 
						|
                    BikerGang.Clubhouse.Members.Clear(BikerGang.Clubhouse.Members.SergeantAtArms)
 | 
						|
                end
 | 
						|
            },
 | 
						|
            Set = function(member, ped)
 | 
						|
                member.Clear()
 | 
						|
                member.pedheadshot = GetPedheadshot(ped)
 | 
						|
 | 
						|
                if member.pedheadshot ~= -1 then
 | 
						|
                    member.textureDict = GetPedheadshotTxdString(member.pedheadshot)
 | 
						|
 | 
						|
                    local IsTextureDictLoaded = LoadStreamedTextureDict(member.textureDict)
 | 
						|
 | 
						|
                    if not IsTextureDictLoaded then
 | 
						|
                        Citizen.Trace("ERROR: BikerClubhouseDrawMembers - Textures dictionnary \"" .. tostring(member.textureDict) .. "\" cannot be loaded.")
 | 
						|
                    end
 | 
						|
                else
 | 
						|
                    Citizen.Trace("ERROR: BikerClubhouseDrawMembers - PedHeadShot not ready.")
 | 
						|
                end
 | 
						|
            end,
 | 
						|
            Clear = function(member)
 | 
						|
                if IsNamedRendertargetRegistered(member.target) then
 | 
						|
                    ReleaseNamedRendertarget(GetHashKey(member.target))
 | 
						|
                end
 | 
						|
 | 
						|
                if member.pedheadshot ~= -1 then
 | 
						|
                    UnregisterPedheadshot(member.pedheadshot)
 | 
						|
                end
 | 
						|
 | 
						|
                if member.textureDict ~= "" then
 | 
						|
                    SetStreamedTextureDictAsNoLongerNeeded(member.textureDict)
 | 
						|
                end
 | 
						|
 | 
						|
                member.renderId = -1
 | 
						|
                member.textureDict = ""
 | 
						|
                member.pedheadshot = -1
 | 
						|
                member.stage = 0
 | 
						|
            end
 | 
						|
        },
 | 
						|
 | 
						|
        ClubName = {
 | 
						|
            needToLoad = false,
 | 
						|
            loaded = false,
 | 
						|
            target = "clubname_blackboard_01a",
 | 
						|
            prop = "bkr_prop_clubhouse_blackboard_01a",
 | 
						|
            renderId = -1,
 | 
						|
            movieId = -1,
 | 
						|
            stage = 0,
 | 
						|
 | 
						|
            Init = function()
 | 
						|
                DrawEmptyRect(BikerGang.Clubhouse.ClubName.target, BikerGang.Clubhouse.ClubName.prop)
 | 
						|
            end,
 | 
						|
            Enable = function(state)
 | 
						|
                BikerGang.Clubhouse.ClubName.needToLoad = state
 | 
						|
            end,
 | 
						|
            Clear = function()
 | 
						|
                if IsNamedRendertargetRegistered(BikerGang.Clubhouse.ClubName.target) then
 | 
						|
                    ReleaseNamedRendertarget(GetHashKey(BikerGang.Clubhouse.ClubName.target))
 | 
						|
                end
 | 
						|
 | 
						|
                if HasScaleformMovieFilenameLoaded(BikerGang.Clubhouse.ClubName.movieId) then
 | 
						|
                    SetScaleformMovieAsNoLongerNeeded(BikerGang.Clubhouse.ClubName.movieId)
 | 
						|
                end
 | 
						|
 | 
						|
                BikerGang.Clubhouse.ClubName.renderId = -1
 | 
						|
                BikerGang.Clubhouse.ClubName.movieId = -1
 | 
						|
                BikerGang.Clubhouse.ClubName.stage = 0
 | 
						|
            end
 | 
						|
        },
 | 
						|
 | 
						|
        Emblem = {
 | 
						|
            needToLoad = false,
 | 
						|
            loaded = false,
 | 
						|
            target = "clubhouse_table",
 | 
						|
            prop = "bkr_prop_rt_clubhouse_table",
 | 
						|
            renderId = -1,
 | 
						|
            movieId = -1,
 | 
						|
            stage = 0,
 | 
						|
 | 
						|
            Enable = function(state)
 | 
						|
                BikerGang.Clubhouse.Emblem.needToLoad = state
 | 
						|
            end,
 | 
						|
            Init = function()
 | 
						|
                DrawEmptyRect(BikerGang.Clubhouse.Emblem.target, BikerGang.Clubhouse.Emblem.prop)
 | 
						|
            end,
 | 
						|
            Clear = function()
 | 
						|
                if IsNamedRendertargetRegistered(BikerGang.Clubhouse.Emblem.target) then
 | 
						|
                    ReleaseNamedRendertarget(GetHashKey(BikerGang.Clubhouse.Emblem.target))
 | 
						|
                end
 | 
						|
 | 
						|
                BikerGang.Clubhouse.Emblem.renderId = -1
 | 
						|
                BikerGang.Clubhouse.Emblem.stage = 0
 | 
						|
            end
 | 
						|
        },
 | 
						|
 | 
						|
        MissionsWall = {
 | 
						|
            Missions = {
 | 
						|
                Titles = {
 | 
						|
                    byThePoundUpper = "BDEAL_DEALN",
 | 
						|
                    byThePound = "DEAL_DEALN",
 | 
						|
                    prisonerOfWarUpper = "BIGM_RESCN",
 | 
						|
                    prisonerOfWar = "CELL_BIKER_RESC",
 | 
						|
                    gunsForHire = "LR_INTRO_ST",
 | 
						|
                    weaponOfChoice = "CELL_BIKER_CK",
 | 
						|
                    gunrunningUpper = "GB_BIGUNLOAD_U",
 | 
						|
                    gunrunning = "GB_BIGUNLOAD_T",
 | 
						|
                    nineTenthsOfTheLawUpper = "SB_INTRO_TITLE",
 | 
						|
                    nineTenthsOfTheLaw = "SB_MENU_TITLE",
 | 
						|
                    jailbreakUpper = "FP_INTRO_TITLE",
 | 
						|
                    jailbreak = "FP_MENU_TITLE",
 | 
						|
                    crackedUpper = "SC_INTRO_TITLE",
 | 
						|
                    cracked = "SC_MENU_TITLE",
 | 
						|
                    fragileGoodsUpper = "DV_SH_BIG",
 | 
						|
                    fragileGoods = "DV_SH_TITLE",
 | 
						|
                    torchedUpper = "BA_SH_BIG",
 | 
						|
                    torched = "BA_SH_TITLE",
 | 
						|
                    outriderUpper = "SHU_SH_BIG",
 | 
						|
                    outrider = "SHU_SH_TITLE"
 | 
						|
                },
 | 
						|
                Descriptions = {
 | 
						|
                    byThePound = "DEAL_DEALND",
 | 
						|
                    prisonerOfWar = "CELL_BIKER_RESD",
 | 
						|
                    gunsForHire = "GFH_MENU_DESC",
 | 
						|
                    weaponOfChoice = "CELL_BIKER_CKD",
 | 
						|
                    gunrunning = "GB_BIGUNLOAD_D",
 | 
						|
                    nineTenthsOfTheLaw = "SB_MENU_DESC",
 | 
						|
                    jailbreak = "FP_MENU_DESC",
 | 
						|
                    cracked = "SC_MENU_DESC",
 | 
						|
                    fragileGoods = "DV_MENU_DESC",
 | 
						|
                    torched = "BA_MENU_DESC",
 | 
						|
                    outrider = "SHU_MENU_DESC"
 | 
						|
                },
 | 
						|
                Pictures = {
 | 
						|
                    byThePound = "CHM_IMG0", -- Pickup car parked
 | 
						|
                    prisonerOfWar = "CHM_IMG8", -- Police with man down
 | 
						|
                    gunsForHire = "CHM_IMG4", -- Limo
 | 
						|
                    weaponOfChoice = "CHM_IMG10", -- Prisoner being beaten
 | 
						|
                    gunrunning = "CHM_IMG3", -- Shipment
 | 
						|
                    nineTenthsOfTheLaw = "CHM_IMG6", -- Wheeling
 | 
						|
                    jailbreak = "CHM_IMG5", -- Prison bus
 | 
						|
                    cracked = "CHM_IMG1", -- Safe
 | 
						|
                    fragileGoods = "CHM_IMG2", -- Lost Van
 | 
						|
                    torched = "CHM_IMG9", -- Explosive crate
 | 
						|
                    outrider = "CHM_IMG7" -- Sport ride
 | 
						|
                },
 | 
						|
            },
 | 
						|
            needToLoad = false,
 | 
						|
            loaded = false,
 | 
						|
            target = "clubhouse_Plan_01a",
 | 
						|
            prop = "bkr_prop_rt_clubhouse_plan_01a",
 | 
						|
            renderId = -1,
 | 
						|
            movieId = -1,
 | 
						|
            stage = 0,
 | 
						|
            Position = {
 | 
						|
                none = -1,
 | 
						|
                left = 0,
 | 
						|
                middle = 1,
 | 
						|
                right = 2
 | 
						|
            },
 | 
						|
 | 
						|
            Init = function()
 | 
						|
                if not DrawEmptyRect(BikerGang.Clubhouse.MissionsWall.target, BikerGang.Clubhouse.MissionsWall.prop) then
 | 
						|
                    Citizen.Trace("ERROR: BikerGang.Clubhouse.MissionsWall.Init() - DrawEmptyRect - Timeout")
 | 
						|
                end
 | 
						|
            end,
 | 
						|
            Enable = function(state)
 | 
						|
                BikerGang.Clubhouse.MissionsWall.needToLoad = state
 | 
						|
            end,
 | 
						|
            SelectMission = function(position)
 | 
						|
                if BikerGang.Clubhouse.MissionsWall.movieId ~= -1 then
 | 
						|
                    BeginScaleformMovieMethod(BikerGang.Clubhouse.MissionsWall.movieId, "SET_SELECTED_MISSION")
 | 
						|
                    ScaleformMovieMethodAddParamInt(position) -- Mission index 0 to 2 (-1 = no mission)
 | 
						|
                    EndScaleformMovieMethod()
 | 
						|
                end
 | 
						|
            end,
 | 
						|
            SetMission = function(position, title, desc, textDict, x, y)
 | 
						|
                if BikerGang.Clubhouse.MissionsWall.needToLoad then
 | 
						|
                    if not HasScaleformMovieFilenameLoaded(BikerGang.Clubhouse.MissionsWall.movieId) then
 | 
						|
                        BikerGang.Clubhouse.MissionsWall.movieId = LoadScaleform("BIKER_MISSION_WALL")
 | 
						|
                    end
 | 
						|
 | 
						|
                    if BikerGang.Clubhouse.MissionsWall.movieId ~= -1 then
 | 
						|
                        if position > -1 then
 | 
						|
                            BeginScaleformMovieMethod(BikerGang.Clubhouse.MissionsWall.movieId, "SET_MISSION")
 | 
						|
                            ScaleformMovieMethodAddParamInt(position) -- Mission index 0 to 2 (-1 = no mission)
 | 
						|
                            ScaleformMovieMethodAddParamTextureNameString(title)
 | 
						|
                            ScaleformMovieMethodAddParamTextureNameString(desc)
 | 
						|
                            ScaleformMovieMethodAddParamPlayerNameString(textDict)
 | 
						|
                            ScaleformMovieMethodAddParamFloat(x) -- Mission 0: world coordinates X
 | 
						|
                            ScaleformMovieMethodAddParamFloat(y) -- Mission 0: world coordinates Y
 | 
						|
                            EndScaleformMovieMethod()
 | 
						|
                        else
 | 
						|
                            -- Remove all missions
 | 
						|
                            for key, value in pairs(BikerGang.Clubhouse.MissionsWall.Position) do
 | 
						|
                                BikerGang.Clubhouse.MissionsWall.RemoveMission(value)
 | 
						|
                            end
 | 
						|
 | 
						|
                            BikerGang.Clubhouse.MissionsWall.SelectMission(BikerGang.Clubhouse.MissionsWall.Position.none)
 | 
						|
                        end
 | 
						|
                    end
 | 
						|
                end
 | 
						|
            end,
 | 
						|
            RemoveMission = function(position)
 | 
						|
                BeginScaleformMovieMethod(BikerGang.Clubhouse.MissionsWall.movieId, "HIDE_MISSION")
 | 
						|
                ScaleformMovieMethodAddParamInt(position)
 | 
						|
                EndScaleformMovieMethod()
 | 
						|
            end,
 | 
						|
            Clear = function()
 | 
						|
                -- Removing missions
 | 
						|
                BikerGang.Clubhouse.MissionsWall.SelectMission(BikerGang.Clubhouse.MissionsWall.Position.none)
 | 
						|
                BikerGang.Clubhouse.MissionsWall.SetMission(BikerGang.Clubhouse.MissionsWall.Position.none)
 | 
						|
 | 
						|
                -- Releasing handles
 | 
						|
                if IsNamedRendertargetRegistered(BikerGang.Clubhouse.MissionsWall.prop) then
 | 
						|
                    ReleaseNamedRendertarget(GetHashKey(BikerGang.Clubhouse.MissionsWall.prop))
 | 
						|
                end
 | 
						|
 | 
						|
                if HasScaleformMovieFilenameLoaded(BikerGang.Clubhouse.MissionsWall.movieId) then
 | 
						|
                    SetScaleformMovieAsNoLongerNeeded(BikerGang.Clubhouse.MissionsWall.movieId)
 | 
						|
                end
 | 
						|
 | 
						|
                -- Resetting
 | 
						|
                BikerGang.Clubhouse.MissionsWall.renderId = -1
 | 
						|
                BikerGang.Clubhouse.MissionsWall.movieId = -1
 | 
						|
                BikerGang.Clubhouse.MissionsWall.stage = 0
 | 
						|
            end
 | 
						|
        },
 | 
						|
 | 
						|
        ClearAll = function()
 | 
						|
            BikerGang.Clubhouse.ClubName.Clear()
 | 
						|
            BikerGang.Clubhouse.ClubName.loaded = false
 | 
						|
 | 
						|
            BikerGang.Clubhouse.Emblem.Clear()
 | 
						|
            BikerGang.Clubhouse.Emblem.loaded = false
 | 
						|
 | 
						|
            BikerGang.Clubhouse.MissionsWall.Clear()
 | 
						|
            BikerGang.Clubhouse.MissionsWall.loaded = false
 | 
						|
 | 
						|
            for key, member in pairs(BikerGang.Clubhouse.Members) do
 | 
						|
                if type(member) == "table" then
 | 
						|
                    member.Clear()
 | 
						|
                    member.loaded = false
 | 
						|
                end
 | 
						|
            end
 | 
						|
        end
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Citizen.CreateThread(function()
 | 
						|
    -- Removing the black texture
 | 
						|
    BikerGang.Clubhouse.Members.President.Init()
 | 
						|
    BikerGang.Clubhouse.Members.VicePresident.Init()
 | 
						|
    BikerGang.Clubhouse.Members.RoadCaptain.Init()
 | 
						|
    BikerGang.Clubhouse.Members.Enforcer.Init()
 | 
						|
    BikerGang.Clubhouse.Members.SergeantAtArms.Init()
 | 
						|
 | 
						|
    BikerGang.Clubhouse.ClubName.Init()
 | 
						|
    BikerGang.Clubhouse.Emblem.Init()
 | 
						|
    BikerGang.Clubhouse.MissionsWall.Init()
 | 
						|
 | 
						|
    while true do
 | 
						|
        if BikerGang.Clubhouse.ClubName.needToLoad or BikerGang.Clubhouse.Emblem.needToLoad or BikerGang.Clubhouse.MissionsWall.needToLoad or BikerGang.Clubhouse.Members.President.needToLoad or BikerGang.Clubhouse.Members.VicePresident.needToLoad or BikerGang.Clubhouse.Members.RoadCaptain.needToLoad or BikerGang.Clubhouse.Members.Enforcer.needToLoad or BikerGang.Clubhouse.Members.SergeantAtArms.needToLoad then
 | 
						|
            -- If we are inside a clubhouse, then we load
 | 
						|
            if Global.Biker.isInsideClubhouse1 or Global.Biker.isInsideClubhouse2 then
 | 
						|
                -- Club name
 | 
						|
                if BikerGang.Clubhouse.ClubName.needToLoad then
 | 
						|
                    DrawClubName(BikerGang.Name.name, BikerGang.Name.color, BikerGang.Name.font)
 | 
						|
 | 
						|
                    BikerGang.Clubhouse.ClubName.loaded = true
 | 
						|
                elseif BikerGang.Clubhouse.ClubName.loaded then
 | 
						|
                    BikerGang.Clubhouse.ClubName.Clear()
 | 
						|
                    BikerGang.Clubhouse.ClubName.loaded = false
 | 
						|
                end
 | 
						|
 | 
						|
                -- Emblem
 | 
						|
                if BikerGang.Clubhouse.Emblem.needToLoad then
 | 
						|
                    DrawEmblem(BikerGang.Emblem.emblem, BikerGang.Emblem.rot)
 | 
						|
 | 
						|
                    BikerGang.Clubhouse.Emblem.loaded = true
 | 
						|
                elseif BikerGang.Clubhouse.Emblem.loaded then
 | 
						|
                    BikerGang.Clubhouse.Emblem.Clear()
 | 
						|
                    BikerGang.Clubhouse.Emblem.loaded = false
 | 
						|
                end
 | 
						|
 | 
						|
                -- Missions wall
 | 
						|
                if BikerGang.Clubhouse.MissionsWall.needToLoad then
 | 
						|
                    DrawMissions()
 | 
						|
 | 
						|
                    BikerGang.Clubhouse.MissionsWall.loaded = true
 | 
						|
                elseif BikerGang.Clubhouse.MissionsWall.loaded then
 | 
						|
                    BikerGang.Clubhouse.MissionsWall.Clear()
 | 
						|
                    BikerGang.Clubhouse.MissionsWall.loaded = false
 | 
						|
                end
 | 
						|
 | 
						|
                -- Members: President
 | 
						|
                for key, member in pairs(BikerGang.Clubhouse.Members) do
 | 
						|
                    if type(member) == "table" then
 | 
						|
                        if member.needToLoad then
 | 
						|
                            DrawMember(member)
 | 
						|
                            member.loaded = true
 | 
						|
                        elseif member.loaded then
 | 
						|
                            member.Clear()
 | 
						|
                            member.loaded = false
 | 
						|
                        end
 | 
						|
                    end
 | 
						|
                end
 | 
						|
 | 
						|
                Citizen.Wait(0) -- We need to call all this every frame
 | 
						|
            else
 | 
						|
                -- Not in a clubhouse
 | 
						|
                Citizen.Wait(1000)
 | 
						|
            end
 | 
						|
        else
 | 
						|
            -- No load needed
 | 
						|
            Citizen.Wait(1000)
 | 
						|
        end
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
function DrawClubName(name, color, font)
 | 
						|
    if BikerGang.Clubhouse.ClubName.stage == 0 then
 | 
						|
        if BikerGang.Clubhouse.ClubName.renderId == -1 then
 | 
						|
            BikerGang.Clubhouse.ClubName.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.ClubName.target, BikerGang.Clubhouse.ClubName.prop)
 | 
						|
        end
 | 
						|
 | 
						|
        if BikerGang.Clubhouse.ClubName.movieId == -1 then
 | 
						|
            BikerGang.Clubhouse.ClubName.movieId = RequestScaleformMovie("CLUBHOUSE_NAME")
 | 
						|
        end
 | 
						|
 | 
						|
        BikerGang.Clubhouse.ClubName.stage = 1
 | 
						|
    elseif BikerGang.Clubhouse.ClubName.stage == 1 then
 | 
						|
        if HasScaleformMovieLoaded(BikerGang.Clubhouse.ClubName.movieId) then
 | 
						|
            local parameters = {
 | 
						|
                p0 = {type = "string", value = name},
 | 
						|
                p1 = {type = "int", value = color},
 | 
						|
                p2 = {type = "int", value = font}
 | 
						|
            }
 | 
						|
 | 
						|
            SetupScaleform(BikerGang.Clubhouse.ClubName.movieId, "SET_CLUBHOUSE_NAME", parameters)
 | 
						|
 | 
						|
            BikerGang.Clubhouse.ClubName.stage = 2
 | 
						|
        else
 | 
						|
            BikerGang.Clubhouse.ClubName.movieId = RequestScaleformMovie("CLUBHOUSE_NAME")
 | 
						|
        end
 | 
						|
    elseif BikerGang.Clubhouse.ClubName.stage == 2 then
 | 
						|
        SetTextRenderId(BikerGang.Clubhouse.ClubName.renderId)
 | 
						|
        SetScriptGfxDrawOrder(4)
 | 
						|
        SetScriptGfxDrawBehindPausemenu(true)
 | 
						|
        SetScriptGfxAlign(73, 73)
 | 
						|
        DrawScaleformMovie(BikerGang.Clubhouse.ClubName.movieId, 0.0975, 0.105, 0.235, 0.35, 255, 255, 255, 255, 0)
 | 
						|
        SetTextRenderId(GetDefaultScriptRendertargetRenderId())
 | 
						|
        ResetScriptGfxAlign()
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function DrawEmblem(texturesDict, rotation)
 | 
						|
    if BikerGang.Clubhouse.Emblem.stage == 0 then
 | 
						|
        if BikerGang.Clubhouse.Emblem.renderId == -1 then
 | 
						|
            BikerGang.Clubhouse.Emblem.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.Emblem.target, BikerGang.Clubhouse.Emblem.prop)
 | 
						|
        end
 | 
						|
 | 
						|
        local IsTextureDictLoaded = LoadStreamedTextureDict(texturesDict)
 | 
						|
 | 
						|
        if not IsTextureDictLoaded then
 | 
						|
            Citizen.Trace("ERROR: DrawEmblem - Textures dictionnary cannot be loaded.")
 | 
						|
        end
 | 
						|
 | 
						|
        BikerGang.Clubhouse.Emblem.stage = 1
 | 
						|
    elseif BikerGang.Clubhouse.Emblem.stage == 1 then
 | 
						|
        BikerGang.Clubhouse.Emblem.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.Emblem.target, BikerGang.Clubhouse.Emblem.prop)
 | 
						|
        BikerGang.Clubhouse.Emblem.stage = 2
 | 
						|
    elseif BikerGang.Clubhouse.Emblem.stage == 2 then
 | 
						|
        SetTextRenderId(BikerGang.Clubhouse.Emblem.renderId)
 | 
						|
        SetScriptGfxAlign(73, 73)
 | 
						|
        SetScriptGfxDrawOrder(4)
 | 
						|
        SetScriptGfxDrawBehindPausemenu(true)
 | 
						|
        DrawInteractiveSprite(texturesDict, texturesDict, 0.5, 0.5, 1.0, 1.0, rotation, 255, 255, 255, 255);
 | 
						|
        ResetScriptGfxAlign()
 | 
						|
        SetTextRenderId(GetDefaultScriptRendertargetRenderId())
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function DrawMissions()
 | 
						|
    if BikerGang.Clubhouse.MissionsWall.stage == 0 then
 | 
						|
        if BikerGang.Clubhouse.MissionsWall.renderId == -1 then
 | 
						|
            BikerGang.Clubhouse.MissionsWall.renderId = CreateNamedRenderTargetForModel(BikerGang.Clubhouse.MissionsWall.target, BikerGang.Clubhouse.MissionsWall.prop)
 | 
						|
        end
 | 
						|
 | 
						|
        BikerGang.Clubhouse.MissionsWall.stage = 1
 | 
						|
    elseif BikerGang.Clubhouse.MissionsWall.stage == 1 then
 | 
						|
        if HasScaleformMovieLoaded(BikerGang.Clubhouse.MissionsWall.movieId) then
 | 
						|
            BikerGang.Clubhouse.MissionsWall.stage = 2
 | 
						|
        else
 | 
						|
            BikerGang.Clubhouse.MissionsWall.movieId = RequestScaleformMovie("BIKER_MISSION_WALL")
 | 
						|
        end
 | 
						|
    elseif BikerGang.Clubhouse.MissionsWall.stage == 2 then
 | 
						|
        SetTextRenderId(BikerGang.Clubhouse.MissionsWall.renderId)
 | 
						|
        SetScriptGfxDrawOrder(4)
 | 
						|
        SetScriptGfxDrawBehindPausemenu(false)
 | 
						|
        DrawScaleformMovie(BikerGang.Clubhouse.MissionsWall.movieId, 0.5, 0.5, 1.0, 1.0, 255, 255, 255, 255, 0)
 | 
						|
        SetTextRenderId(GetDefaultScriptRendertargetRenderId())
 | 
						|
        SetScaleformFitRendertarget(BikerGang.Clubhouse.MissionsWall.movieId, true)
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function DrawMember(member)
 | 
						|
    if member.stage == 0 then
 | 
						|
        member.stage = 1
 | 
						|
    elseif member.stage == 1 then
 | 
						|
        member.renderId = CreateNamedRenderTargetForModel(member.target, member.prop)
 | 
						|
        member.stage = 2
 | 
						|
    elseif member.stage == 2 then
 | 
						|
        if HasStreamedTextureDictLoaded(member.textureDict) then
 | 
						|
            SetTextRenderId(member.renderId)
 | 
						|
            SetScriptGfxAlign(73, 73)
 | 
						|
            DrawInteractiveSprite(member.textureDict, member.textureDict, 0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255)
 | 
						|
            ResetScriptGfxAlign()
 | 
						|
            SetTextRenderId(GetDefaultScriptRendertargetRenderId())
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 |