CarScripts = { { "cars/car_buggy1.lua", "cars/car_buggy2.lua", "cars/car_buggy3.lua", "cars/car_buggy4.lua" }, { "cars/car_hammer1.lua", "cars/car_hammer2.lua", "cars/car_hammer3.lua", "cars/car_hammer4.lua" }, { "cars/car_sports1.lua", "cars/car_sports2.lua", "cars/car_sports3.lua", "cars/car_sports4.lua" } } CarModels = { { "cars/high/car_buggy1.mesh", "cars/high/car_buggy2.mesh", "cars/high/car_buggy3.mesh", "cars/high/car_buggy4.mesh" }, { "cars/high/car_hammer1.mesh", "cars/high/car_hammer2.mesh", "cars/high/car_hammer3.mesh", "cars/high/car_hammer4.mesh" }, { "cars/high/car_sports1.mesh", "cars/high/car_sports2.mesh", "cars/high/car_sports3.mesh", "cars/high/car_sports4.mesh" } } CarActors = { "CarSelection1", "CarSelection2", "CarSelection3", "CarSelection4", "CarSelection5",} CarColours = { 1, 1, 1, 1,} GirlAndCarAnims = { { {"garage/buggy01.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/buggy02.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/buggy03.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/buggy04.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, }, { {"garage/hummer01.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/hummer02.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/hummer03.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/hummer04.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, }, { {"garage/sport01.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/sport02.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/sport03.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, {"garage/sport04.anm","garage/buggy01_2cam.anm","garage/buggy01_3cam.anm"}, }, } function changeCarColor(_carName, _colorNdx) SetEffectParamFloat(_carName, "chasis", "g_channel1OffsetU", (_colorNdx - 1) * ( 256.0/1024.0 )) --SetEffectParamFloat(_carName, "rueda", "g_channel1OffsetU", (_colorNdx - 1) * ( 256.0/1024.0 )) end function getColorByPlayerId(_playerId) local colorId = CarColours[SelectedCar] + _playerId - 1 local newColorId = math.mod(colorId, 4) + 1 log("-------------------- Color del player '" .. _playerId .. "' -> (" .. colorId .. ", " .. newColorId .. ")") return newColorId end function titleText(_bForeGround) local fontStr = "fontTRN_bg.fnt" local layerFlag = LF_PANELS+1 if _bForeGround then fontStr = "fontTRN_fg.fnt" layerFlag = LF_PANELS + 2 end return { scale = 0.15, font = fontStr, overlap = g_TextOverlap, text = g_Text.selectCar, align = E_ALIGN_LEFT, layer = layerFlag } end function changePaintText(bForeGround) local fontStr = "fontTRN_bg.fnt" local layerFlag = LF_PANELS if bForeGround then fontStr = "fontTRN_fg.fnt" layerFlag = LF_PANELS + 1 end return { scale = 0.08, font = fontStr, overlap = g_TextOverlap, text = "Touch to change paint", align = E_ALIGN_LEFT, layer = layerFlag } end function backText() return { scale = 0.1, font = "fontTRN_fg.fnt", overlap = g_TextOverlap, text = g_Text.backButton, align = E_ALIGN_LEFT, layer = LF_PANELS+1} end function raceText() if GameMode == E_MODE_TOURNAMENT then return { name = "boton_amarillo", scale = 0.1, font = "fontTRN_fg.fnt", overlap = g_TextOverlap, text = g_Text.nextButton, align = E_ALIGN_LEFT, layer = LF_PANELS+1} else return { name = "boton_amarillo", scale = 0.1, font = "fontTRN_fg.fnt", overlap = g_TextOverlap, text = g_Text.raceButton, align = E_ALIGN_LEFT, layer = LF_PANELS+1} end end function preloadCarSelectionResources() --for the currently selected cup local index = 1 while(index <= 4) do CreateActor("ActorGeom", { name = CarActors[index], model = CarModels[CupSelected][index] }) DeactivateActor(CarActors[index]) index = index + 1 end end function releaseCarSelectionResources() local index = 1 while(index <= 5) do log("Destroying: " .. CarActors[index]) DestroyActor(CarActors[index]) index = index + 1 end end function getCan() return { model = "menu/can.mesh", name = "paint_can", layer = LF_PANELS+1} end function GarageScrollSetup() log("entro en GarageScrollSetup()") DestroyActor("GarageScroll") CreateActor("ActorGeom", { name = "GarageScroll", model = "garage/garage_scroll.mesh" }) if g_backToGarage then log("!!!!!!garage/garage_back" .. SelectedCar .. ".anm") SetActorAnim("GarageScroll", { anim = "garage/garage_back" .. SelectedCar .. ".anm", loop = false,velocity = 1.7}); else log("!!!!!!garage/garage_scroll_start.anm") SetActorAnim("GarageScroll", { anim = "garage/garage_scroll_start.anm", loop = false, velocity = 1.7}) end EnqueueExecuteScript("GarageScroll", [[ SetHScroll("GarageScroll", "garage/garage_scroll.anm", true, 4, 0.2, 0.4, true); SelectScrollItem(true,]] .. SelectedCar - 1 .. [[)]]) end function ScrollHSelectItem(_car) Sound.PlaySound(g_ScrollSound) local oldSelectedCar = oldSelectedCar SelectedCar = _car + 1 --log("SelectedCar " .. SelectedCar) if isCarLocked(CupSelected, SelectedCar) then log("!!!!!!setting it grey") SetEffectParamColor("boton_amarillo", "amarillo", "g_matDiffuse", {0.2, 0.2, 0.2, 1.0} ) --SetEffectParamColor("Menu", "amarillo", "g_ambientColor", {0.0, 0.0, 0.0, 1.0} ) --DeactivateActor("Menu") --ActivateActor("Menu") DeactivateActor("paint_can") else log("!!!!!!setting it yellow") SetEffectParamColor("boton_amarillo", "amarillo", "g_matDiffuse", {0.98, 0.854, 0.0, 1.0} ) --SetEffectParamColor("Menu", "amarillo", "g_ambientColor", {0.98, 0.854, 0.0, 1.0} ) --DeactivateActor("Menu") --ActivateActor("Menu") ActivateActor("paint_can") end end function carInstance(_carIndex) return {model = CarModels[CupSelected][math.mod(_carIndex - 1, 4) + 1], name = CarActors[math.mod(_carIndex - 1, 5) + 1], layer = LF_PANELS} end function isCarLocked(_cup, _car) -- Cada coche está asociado a un nivel de dificultad if _car==1 or GetBestCupState(_cup, _car-2) == CUP_GOLD then return false else return true end end --[[function isCarLocked(_cup, _car) -- Cada coche está asociado a un nivel de dificultad return false end]] function turnGrey(_car) var = { g_lightStyle = 1.0, g_diffuseMapChannel = 0.0, g_usingEnvironment = 0.0, --g_usingAlpha = true, } SetEffectParamColor(CarActors[_car], "chasis", "g_ambientColor", {0.4,0.4,0.4,1.0}) SetEffectParamColor(CarActors[_car], "chasis", "g_matDiffuse", {0.0,0.0,0.0,1.0}) SetEffectParamColor(CarActors[_car], "chasis", "g_matSpecular", {0.0,0.0,0.0,1.0}) SetEffectStaticParams(CarActors[_car],"chasis", var) SetEffectParamColor(CarActors[_car], "cristal", "g_ambientColor", {0.4,0.4,0.4,1.0}) SetEffectParamColor(CarActors[_car], "cristal", "g_matDiffuse", {0.0,0.0,0.0,1.0}) SetEffectParamColor(CarActors[_car], "cristal", "g_matSpecular", {0.0,0.0,0.0,1.0}) SetEffectStaticParams(CarActors[_car],"cristal", var) SetEffectParamColor(CarActors[_car], "rueda", "g_ambientColor", {0.4,0.4,0.4,1.0}) SetEffectParamColor(CarActors[_car], "rueda", "g_matDiffuse", { 0.0,0.0,0.0,1.0}) SetEffectParamColor(CarActors[_car], "rueda", "g_matSpecular", {0.0,0.0,0.0,1.0}) SetEffectStaticParams(CarActors[_car],"rueda", var) end function setLockedCars() for car = 1, 5, 1 do local carNdx = math.mod(car - 1, 4) + 1 if isCarLocked(CupSelected, carNdx) then turnGrey(car) SetActorAnim("sticker" .. car, "garage/sticker.anm", true, ""); end end end function stickerInstance(_index) --log("CarModels[" .. CupSelected .. "][" .. math.mod(_carIndex - 1, 4) + 1 .. "] carInstance: " .. CarModels[CupSelected][math.mod(_carIndex - 1, 4) + 1]) if isCarLocked(CupSelected,math.mod(_index - 1, 4) + 1) then log("sticker".. _index) return {model = "garage/sticker.mesh", name = "sticker".. _index, layer = LF_PANELS+1} end end