home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mobiclic 46
/
Mobiclic46.iso
/
pc
/
DATA
/
COMMUNS
/
MOBICLIC_MENUS.CST
/
00221_Script_SCRIPTS_GENE_JLM
< prev
next >
Wrap
Text File
|
2002-08-21
|
35KB
|
841 lines
--scripts gΘnΘraux pour Mobiclic by ⌐Time line/jl moreau 2001
-------------------------------------------------
on turndizstuff_Mob WADSPRITE, WADWAY
case(WADWAY) of
"ON":
if sprite(WADSPRITE).left >= 640 then sprite(WADSPRITE).locH = sprite(WADSPRITE).locH - 800
"OFF":
if sprite(WADSPRITE).left < 640 then sprite(WADSPRITE).locH = sprite(WADSPRITE).locH + 800
end case
end
-------------------------------------------------
on turndizstuff WADSPRITE, WADWAY
case(WADWAY) of
"ON":
if sprite(WADSPRITE).left >= 800 then sprite(WADSPRITE).locH = sprite(WADSPRITE).locH - 800
"OFF":
if sprite(WADSPRITE).left < 800 then sprite(WADSPRITE).locH = sprite(WADSPRITE).locH + 800
end case
end
-------------------------------------------------
on gimme2digits ZENOMBRE
case(ZENOMBRE) <10 of
1:
reponse = "0"&string(ZENOMBRE)
0:
reponse = string(ZENOMBRE)
end case
return reponse
end
-------------------------------------------------
on gimmezeAlphabet_No WATCHAR
u = chartoNum(WATCHAR)
case(u>64 and u < 91) of
1:-- si c'est une capitale
reponse = u - 64
0:
case(u>96 and u < 123) of
1: -- si c'est un voyelle
reponse = u - 96
0:
reponse = 0
end case
end case
return reponse
end
-----------------------------------
on gimmezelowcaseletter WATNoAlpha
case(WATNoAlpha>96 and WATNoAlpha < 123) of
1:
reponse = numtoChar(WATNoAlpha)
0:
reponse = "erreur sur lettre"
end case
return reponse
end
-----------------------
on MAJ_DB_FRISE
global gdizDB,gcheminDB
gdizDB = New(Xtra "V12dbe",gcheminDB&"FRISE_DB.V12", "ReadOnly", "")
--1--) crΘation de l'instance d'une table V12 pour la table "INVENTIONS"
gdizTable = New(Xtra "V12table",mGetRef(gdizDB),"INVENTIONS")
mSelect(gdizTable)
--2--) remplissage de la liste tampon par pΘriode et ventilation dans des acteurs champs
Lresult = [[],[],[],[],[],[],[]]
repeat with i = 1 to 7
mSetCriteria(gdizTable, "REF_PERIODE", "=", i)
mOrderBy(gdizTable,"NO_INVENT")
mSelect(gdizTable)
Nb_enreg = mSelectCount(gdizTable)
Lresult[i] = mGetSelection(gdizTable,"list",1,Nb_enreg,"NO_INVENT","DATE_AFFICHEE", "DATE_REPERE", "TITRE_PICTO")
Nb = count( Lresult[i])
repeat with j = 1 to Nb
u = Lresult[i][j][2]
L = length(u)
Lresult[i][j][2] = u.char[2..L-1]
end repeat
member("localdata_FRISE_"&gimme2digits(i)).text = string(Lresult[i])
end repeat
gdizTable = 0
gdizDB = 0
end
------------------------------------------
on JINGLE WATTRACK,WATSOUND, WATMODE
--joue un son du dossier JINGLES, soit en "direct from disk" (WATMODE = OUT),
--soit α partir de la distribution JINGLE (WATMODE = IN)
put "son jingle jouΘ:"& WATSOUND
case(WATMODE) of
"IN":
puppetSound WATTRACK, WATSOUND
"OUT":
sound playFile WATTRACK, "@//COMMUNS/MOBICLIC_JINGLES/"&WATSOUND&".aif"
end case
end
-----------------------------------------
on gimmeQDraw_Center ZESPRITENo
--retourne le centre d'une forme QUICKDRAW situΘ sur la piste n░ ZESPRITENo
return point( (sprite(ZESPRITENo).right+sprite(ZESPRITENo).left )/2, (sprite(ZESPRITENo).Top + sprite(ZESPRITENo).Bottom)/2)
end
----------------------------------------
on locate_QDraw_bycenter ZESPRITENo, WATPLACE
-- positionne le centre d'un QuickDraw
zedelta = point(sprite(ZESPRITENo).width/2, sprite(ZESPRITENo).height/2)
sprite(ZESPRITENo).loc = WATPLACE - zedelta
end
-----------------------------
on lien
if the platform contains "Win" then
reponse = "/"
else
reponse = ":"
end if
return reponse
end
-------------------------------
on zizik WATMUS
num = char 6 to 7 of the movieName
sound(1).volume = 50
sound(1).play(member(WATMUS))
end
------------------------
on REL2ABS STRINGNoCYBER -- donne le n░ du cyber dans la classification tenant compte des cybers rΘcurents
global gL_transcoCyber
-- pour Θviter toute erreur on impose un chaine de la forme "XX" si par erreur l'argument passΘ est un nombre
-- ex: 5 au lieu de "05"
STRINGNoCYBER = gimme2digits(value(STRINGNoCYBER))
return gimme2digits(gL_transcoCyber.getProp("C"&STRINGNoCYBER))
end
--------------------
on ABS2REL STRINGNoCYBER-- donne le n░ du cyber dans l'ordre imposΘ chaquemois
global gL_transcoCyber
temp = 0
repeat with i = 1 to count(gL_transcoCyber)
if gL_transcoCyber[i] = STRINGNoCYBER then
temp = i
exit repeat
end if
end repeat
return gimme2digits(gL_transcoCyber.getPropAt(temp)).char[2..3]
end
--------------------
on getInfo_titre_module
global gL_Type_module, gNo_cyber, gL_recres, gNo_Mobi,gL_transcoCyber, gNoABS_cyber
niveauSon
gL_transcoCyber = value(member("RUBRIQUES").line[10])
if gNo_Mobi = VOID then gNo_Mobi = value(member("RUBRIQUES").line[8])
zenom = the movieName
case(zenom contains "calen") of
1: --on a affaire α un cybercalendrier
if gL_recres = VOID then
-- temp = value(member("RUBRIQUES").line[6])
-- gL_recres = []
-- repeat with i = 1 to count(temp)
-- gL_recres.add(value(REL2ABS(gimme2digits(temp[i]))))
-- end repeat
gL_recres = value(member("RUBRIQUES").line[6])
end if
gL_Type_module = ["CYBER", "NOP"]
case(zenom = "CALEND") of
1:--c'est le menu des cyber
gNoABS_cyber = "00"
gNo_cyber = "00"
0:--c'estun cyber
gNoABS_cyber = zenom.char[6..7] -- on renseigne le n░ABSOLU de cyber(sous forme d'une chaine de 2 caractΦres ex "07"
gNo_cyber = ABS2REL(zenom.char[6..7])-- on renseigne le n░relatif de cyber(sous forme d'une chaine de 2 caractΦres ex "07"
member("No_MODULE").text = gNo_cyber
member("TITRE_MODULE").text = member("selectMenus").line[6]-- on renseigne le titre du cyber de cyber
end case
0: -- on a affaire α une rubrique
tampon = value(member("selectMenus").line[6])
member("TITRE_MODULE").text = tampon[2]-- on renseigne le titre du cyber de cyber
member("No_MODULE").text = EMPTY -- le texte contenant le n░ est vidΘ
gL_Type_module = ["RUB",tampon[1]]
--tampon[1] contient "HIS" pour histoire, "SCI" pour ClicSciences, "GEO" pour gΘographie, "QUI" pour le Quiz...
end case
end
----------------
on compte_objets_GLI_DEPO RACINENOMOBJET, WATMODE
global gNb_Objets,gL_Objects_Home, gMode_GLI_DEPO
-- dans un jeu glisser-dΘposer" cette procΘdure:
-- compte le nombre d'objets α dΘplacer
-- RAZ la liste des positions de retour Θlastique des objets
-- initialise la variable de mode de jeu glisser-dΘposer :
-- 0 pour rΘbus, 1 pour retour si non bien placΘ; 2 pour Θchange possible des objets placΘs, 3 pour utilisation d'un "distributeur"
--on compte le nombre d'objets dΘplaτables
Nb_acteurs = the number of members of castLib 1
compteur = 0
repeat with i = 1 to Nb_acteurs
ZENOM = member(i).name
if ZENOM contains RACINENOMOBJET and not(ZENOM contains "_R") and not(ZENOM contains "_S") and not(ZENOM contains "_I") then
L = length(ZENOM)
ZENo = value(ZENOM.char[L-1..L])
compteur = max(compteur, ZENo)
end if
end repeat
gNb_Objets = compteur
gL_Objects_Home = []
gMode_GLI_DEPO = WATMODE
end
---------------------
on compte_Mots()
Nb_acteurs = the number of members of castLib 1
compteur = 0
repeat with i = 1 to Nb_acteurs
ZENOM = member(i).name
if ZENOM contains "MOT" and not(ZENOM contains "_R") and not(ZENOM contains "_S") and not(ZENOM contains "_I") then
L = length(ZENOM)
ZENo = value(ZENOM.char[L-1..L])
compteur = max(compteur, ZENo)
end if
end repeat
return compteur
end
-------------
on clic_zap ZETARGET, ZESOUNDTRACK
puppetSound ZESOUNDTRACK, 0
go ZETARGET
end
-------------------
on siestoune NBSECONDES
top_depart = the timer
top_arrivee = top_depart + 60*NBSECONDES
repeat while the timer < top_arrivee
end repeat
end
---------------
on getInfo_bandeauTitre
global gpiste_BandeauTitre, gEtatBandeau, gTitreFinalPos, gL_BandeauTitre_HomeH, gL_Type_module, gNb_cybers
if gNb_cybers = VOID then gNb_cybers = value(member("RUBRIQUES").line[4])
if gL_BandeauTitre_HomeH = VOID then gL_BandeauTitre_HomeH = [point(0,0),point(0,0), point(0,0)]
gL_BandeauTitre_HomeH[1] = sprite(gpiste_BandeauTitre).locH
gL_BandeauTitre_HomeH[2] = sprite(gpiste_BandeauTitre+1).locH
gL_BandeauTitre_HomeH[3] = sprite(gpiste_BandeauTitre+2).locH
gEtatBandeau = "KO"
largeurbandeau = sprite(gpiste_BandeauTitre).member.width
largeurActeurTitre = sprite(gpiste_BandeauTitre+ 1).width
gaucheduTitreCyber = member("TITRE_MODULE").charPosToLoc(1)
droiteBandeau = sprite(gpiste_BandeauTitre).right
droiteActeurTitre = sprite(gpiste_BandeauTitre+ 1).right
gTitreFinalPos = droiteBandeau - droiteActeurTitre + largeurActeurTitre - gaucheduTitreCyber - largeurbandeau/2 + 10
if gL_Type_module[1] = "RUB" then
sprite(gpiste_BandeauTitre).member = "BD_TITRE_"&gL_Type_module[2] -- on remplace le bandeau standars par le bandeau de rubrique adΘquat
end if
end
------------------------
on show_title
global gpiste_BandeauTitre, gEtatBandeau, gTitreFinalPos, gL_BandeauTitre_HomeH
gEtatBandeau = "OK"
delta = gTitreFinalPos[1] - gL_BandeauTitre_HomeH[1]
sprite(gpiste_BandeauTitre).locH = gTitreFinalPos[1]
sprite(gpiste_BandeauTitre + 1).locH = gL_BandeauTitre_HomeH[2] + float(delta)/2
sprite(gpiste_BandeauTitre + 2).locH = gL_BandeauTitre_HomeH[3] + float(delta)/2
updateStage
sprite(gpiste_BandeauTitre).locH = gTitreFinalPos[1]
sprite(gpiste_BandeauTitre + 1).locH = gL_BandeauTitre_HomeH[2] + delta
sprite(gpiste_BandeauTitre + 2).locH = gL_BandeauTitre_HomeH[3] + delta
updateStage
end
--------------------------
on hide_title
global gpiste_BandeauTitre, gEtatBandeau, gL_BandeauTitre_HomeH, gTitreFinalPos
sprite(gpiste_BandeauTitre).blend = 60
case(gEtatBandeau = "OK") of
1:
gEtatBandeau = "KO"
delta = gTitreFinalPos[1] - gL_BandeauTitre_HomeH[1]
sprite(gpiste_BandeauTitre).locH = gTitreFinalPos[1]
sprite(gpiste_BandeauTitre + 1).locH = gL_BandeauTitre_HomeH[2] + float(delta)/2
sprite(gpiste_BandeauTitre + 2).locH = gL_BandeauTitre_HomeH[3] + float(delta)/2
updateStage
sprite(gpiste_BandeauTitre).locH = gL_BandeauTitre_HomeH[1]
sprite(gpiste_BandeauTitre + 1).locH = gL_BandeauTitre_HomeH[2]
sprite(gpiste_BandeauTitre + 2).locH = gL_BandeauTitre_HomeH[3]
updateStage
0:
nothing
end case
-------------------------
on faire_bonne_impression WATMODE, WATTYPE,WATSTUFF,TITRE, PIED_DE_PAGE
-- WATMODE indique si on est en mode aperτu (1) ou en mode impression (0)
-- WATMEDIA indique le type de fichier α imprimer : acteur (nom d'acteur) ou Θcran ("E")
-- crΘation d'une instance de l'xtra d'impression----------------------------------------------------------
doc = new(xtra "PrintOMatic")
if not objectP(doc) then exit
-- rΘglages des marges
setPrintableMargins (doc)
setMargins doc, rect(42,42,42,42)
-- crΘation de la page
if (doPageSetup(doc)) then
newPage doc
-- initialisation des variables de format page
L_Page=getPageWidth(doc)
H_Page=getPageHeight(doc)
--initialisation de la police
setTextFont doc,"Dream of me *"
case(WATTYPE) of
"E": --impression d'Θcran
"M":--impression d'acteur
---------------- TETE DE LA PAGE -------------------
-- -- ligne horizontale haut de page
-- drawLine doc,point(0,10),point(L_Page,10)
-- -- titre
-- setTextJust doc,"centered"
-- setTextStyle doc,"bold"
-- setTextSize doc,14
-- drawText doc,TITRE ,point(L_Page/2, 25)
---------------- CORPS DE LA PAGE -------------------
-- placement du schΘma (taille propre, ramenΘe autoritairement α largeur max = L_Page
-- ou α la hauteur de page disponible(H_Page) si l'une des deux dimensions est trop grande
-- if ECONOMIE = 1 then
-- WATSTUFF = WATSTUFF&"_LIGHT"
-- end if
L = float(member(WATSTUFF).width)
H = float(member(WATSTUFF).height)
coef = H/L
case(L>=H) of
1:
L_schema = min(L, L_Page)
H_schema = (L_schema)*coef
0:
H_schema = min(H,H_Page-50)
L_schema = H_schema/coef
end case
drawPicture doc,member(WATSTUFF),rect(0,0,L_schema,H_schema)
----------------- PIED DE PAGE -------------------
-- ligne horizontale bas de page
-- drawLine doc,point(0,H_Page-30),point(L_Page,H_Page-30)
setTextJust doc,"left"
setTextStyle doc,"plain"
setTextSize doc,16
drawText doc,PIED_DE_PAGE,point(L_Page- 255,H_Page-15)
-- logo GF
drawPicture doc,member("LOGO_MILAN"),rect(L_Page- 41,H_Page-41,L_Page-1,H_Page-1)
setTextSize doc,8
end case
-- lancement de l'impression-----------------------------------------------------------
case(WATMODE) of
1:-- si on est en mode aperτu on affiche l'aperτu
printPreview doc
0:-- sinon on imprime
setProgressMsg doc, "Impression de la fiche "&TITRE&" en cours... "
if doJobSetup(doc) then print doc
end case
end if
end
------------------------------------------------------------------------------
on Eker_BG_JLM
global gpiste_Infos, gpisteDico, gpisteFond_Dico, gpisteFond_Infos, gpisteFond_infos, pisteAideRub, gNoABS_cyber
global gNo_cyber
L_taches = value(member("selectMenus").line[3]) -- on charge la liste des taches locales de l'Θquerre bleue
zestuff = the movieName
case(zestuff contains "CALEN") of
1: --c'est un cyber calend
if L_taches[2] = 1 then
zegoud_aide = "aide"&gNo_cyber
sprite(pisteAideRub + 1).member = zegoud_aide -- s'l y a appel au l'aide rubrique on charge le bon texte d'aide
sprite(pisteAideRub).member = "FOND_AIDE"
updateStage
zegoud_aide_H = sprite(pisteAideRub + 1).height
sprite(pisteAideRub + 1).locV = 480 - zegoud_aide_H -10
sprite(pisteAideRub).locV = 480 - zegoud_aide_H -70 + member("FOND_AIDE").height/2
end if
if L_taches[3] = 1 then
zegoud_dico = "dico"&gNo_cyber
sprite(gpisteDico).member = zegoud_dico -- s'l y a appel au dico on charge le bon texte dico
updateStage
zegoud_dico_H = sprite(gpisteDico).height
sprite(gpisteDico).locV = 480 - zegoud_dico_H -10
sprite(gpisteFond_Dico).locV = 480 - zegoud_dico_H -70 + member("FOND_DICO").height/2
end if
if L_taches[4] = 1 then
zegoud_infos = "infos"&gNo_cyber
sprite(gpiste_Infos).member = zegoud_infos -- s'l y a appel aux infos on charge le bon texte info
updateStage
zegoud_infos_H = sprite(gpiste_Infos).height
sprite(gpiste_Infos).locV = 480 - zegoud_infos_H -10
sprite(gpisteFond_Infos).locV = 480 - zegoud_infos_H -90 +member("FOND_INFOS").height/2
end if
0:
case(zestuff contains "LAN") of
1: -- c'est une rubrique langue
nothing
0: --c'est une rubrique ou.....
L = length(zestuff)
zeshortName = zestuff.char[1..L-4] --ex "FRISE" pour le movie "FRISE.dir"
if L_taches[2] = 1 then
zegoud_aide = "aide"&zeshortName
sprite(pisteAideRub + 1).member = zegoud_aide -- s'l y a appel au l'aide rubrique on charge le bon texte d'aide
sprite(pisteAideRub).member = "FOND_AIDE"
updateStage
zegoud_aide_H = sprite(pisteAideRub + 1).height
sprite(pisteAideRub + 1).locV = 480 - zegoud_aide_H -10
sprite(pisteAideRub).locV = 480 - zegoud_aide_H -70 + member("FOND_AIDE").height/2
end if
if L_taches[3] = 1 then
zegoud_dico = "dico"&zeshortName
sprite(gpisteDico).member = zegoud_dico -- s'l y a appel au dico on charge le bon texte dico
updateStage
zegoud_dico_H = sprite(gpisteDico).height
sprite(gpisteDico).locV = 480 - zegoud_dico_H -10
sprite(gpisteFond_Dico).locV = 480 - zegoud_dico_H -70 + member("FOND_DICO").height/2
end if
if L_taches[4] = 1 then
zegoud_infos = "infos"&zeshortName
sprite(gpiste_Infos).member = zegoud_infos -- s'l y a appel aux infos on charge le bon texte info
updateStage
zegoud_infos_H = sprite(gpiste_Infos).height
sprite(gpiste_Infos).locV = 480 - zegoud_infos_H -10
sprite(gpisteFond_Infos).locV = 480 - zegoud_infos_H -90 +member("FOND_INFOS").height/2
end if
end case
end case
end
-----------------
on compte_Famille RACINE_NOM
Nb_acteurs = the number of members of castLib 1
reponse = 0
repeat with i = 1 to Nb_acteurs
if member(i).name contains RACINE_NOM then
reponse = reponse + 1
end if
end repeat
return reponse
end
--------------------
on RAZ_pistes_son
coupeson(2)
coupeson(3)
end
-------------------
on gimmezeDroite ZE2POINTS
x1 = ZE2POINTS[1][1]
y1 = ZE2POINTS[1][2]
x2 = ZE2POINTS[2][1]
y2 = ZE2POINTS[2][2]
if abs(x1-x2) < 2 then
x2 = x1
else
if abs(y1-y2) < 2 then
y2 = y1
end if
end if
case(x1<>x2 and y1 <> y2) of
1:
-- cas gΘnΘral
a = float(y2 - y1)/(x2 - x1)
b = y1 - a*x1
reponse = [a,b]
0:
case(x1 = x2) of
1: --droite verticale
reponse = ["V", x1]
0: -- droite horizontale
reponse = ["H", y1]
end case
end case
return reponse
end
---------------------
on extractNo ZETEXT
L = length(ZETEXT)
reponse = value(ZETEXT.char[L-1..L])
return reponse
end
--------------------
on debut_cyber
go movie "@/calend"
end
-------------
on revoir_cyber
initFilm
go to movie(the movieName)
end
---------------
on suite_cyber
global gNo_cyber, gNb_cybers, gL_recres
zeNo = value(gNo_cyber)
case(member("selectMenus").line[6] contains "Cyberlecteur" or member("selectMenus").line[6] contains "Questionlecteur") of
1:--si on est dans un cyberlecteur (dΘcouplΘ en deux fichiers calenXX.dir et calenXX_1.dir)
case(the movieName contains "_1") of
0:-- si on est dans le premier des deux fichiers
go movie "@/calen"&REL2ABS(zeNo)&"_1"-- on va au second (exactement α son adresse absolue)
1:-- si on est dans le second
if zeNo < gNb_cybers then -- si ce n'est pas le dernier cyber du mois
case(gL_recres.getPos(zeNo + 1)) of
0:------------------ si le cyber suivant n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(zeNo + 1)-- on va au cyber suivant (exactement α son adresse absolue)
otherwise:---------- si le cyber suivant est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
if zeNo + 2 > gNb_cybers then-----si le rang de ce cyber + 2 dΘpasse le nombre de cybers du mois
go movie "@/calen"&REL2ABS("O1") -- on va au cyber n░1 (exactement α son adresse absolue)
else
go movie "@/calen"&REL2ABS(zeNo + 2)-- sinon, on va au cyber de rang courant + 2 (exactement α son adresse absolue)
end if
end case
else --si c'est le dernier cyber du mois
case(gL_recres.getPos(1)) of
0:-- si le premier cyber du mois n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(1)-- on va au premier cyber(exactement α son adresse absolue)
1:-- si le premier cyber du mois est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
go movie "@/calen"&REL2ABS(2)-- on va au 2Φme cyber(exactement α son adresse absolue)
end case
end if
end case
0:--si on n'est pas dans un cyberlecteur
if zeNo < gNb_cybers then -- si ce n'est pas le dernier cyber du mois
case(gL_recres.getPos(zeNo + 1)) of
0:------------------ si le cyber suivant n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(zeNo + 1)-- on va au cyber suivant (exactement α son adresse absolue)
otherwise:---------- si le cyber suivant est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
if zeNo + 2 > gNb_cybers then-----si le rang courant ce cyber + 2 dΘpasse le nombre de cybers du mois
go movie "@/calen"&REL2ABS(1) -- on va au cyber n░1 (exactement α son adresse absolue)
else
go movie "@/calen"&REL2ABS(zeNo + 2)-- sinon, on va au cyber de rang courant + 2 (exactement α son adresse absolue)
end if
end case
else --si c'est le dernier cyber du mois
case(gL_recres.getPos(1)) of
0:-- si le premier cyber du mois n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(1)-- on va au premier cyber(exactement α son adresse absolue)
1:-- si le premier cyber du mois est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
go movie "@/calen"&REL2ABS(2)-- on va au 2Φme cyber(exactement α son adresse absolue)
end case
end if
end case
end
--------------
on retour_cyber
global gNo_cyber, gNb_cybers, gL_recres
zeNo = value(gNo_cyber)
put zeno
case(member("selectMenus").line[6] contains "Cyberlecteur" or member("selectMenus").line[6] contains "Questionlecteur") of
1:--si on est dans un cyberlecteur (dΘcouplΘ en deux fichiers calenXX.dir et calenXX_1.dir)
case(the movieName contains "_1") of
1:-- si on est dans le 2Φme des deux fichiers
go frame "ATTENTE" of movie "@/calen"&REL2ABS(zeNo)-- on va au Premier (exactement α son adresse absolue)
0:-- si on est dans le premier
if zeNo > 1 then --si ce n'est pas le premier cyber du mois
case(gL_recres.getPos(zeNo - 1)) of
0:------------------ si le cyber prΘcΘdent n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(zeNo - 1)-- on va au cyber prΘcΘdent (exactement α son adresse absolue)
otherwise:---------- si le cyber prΘcΘdent est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
if zeNo - 2 < 1 then-----si le rang courant ce cyber - 2 est plus petit que 1
go movie "@/calen"&REL2ABS(gNb_cybers) -- on va au dernier cyberdu mois (exactement α son adresse absolue)
else
go movie "@/calen"&REL2ABS(zeNo - 2)-- sinon, on va au cyber de rang courant - 2 (exactement α son adresse absolue)
end if
end case
else-- si c'est le premier cyber du mois
case(gL_recres.getPos(zeNo - 1)) of
0:-- si le dernier cyber du mois n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(gNb_cybers) -- on va au dernier cyber du mois (exactement α son adresse absolue)
1:-- si le dernier cyber du mois est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
go movie "@/calen"&REL2ABS(gNb_cybers-1)-- on va α l'avant- dernier cyber du mois (exactement α son adresse absolue)
end case
end if
end case
0:--si on n'est pas dans un cyberlecteur
if zeNo > 1 then --si ce n'est pas le premier cyber du mois
put gL_recres.getPos(zeNo - 1)
case(gL_recres.getPos(zeNo - 1)) of
0:------------------ si le cyber prΘcΘdent n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(zeNo - 1)-- on va au cyber prΘcΘdent (exactement α son adresse absolue)
otherwise:---------- si le cyber prΘcΘdent est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
if zeNo - 2 < 1 then-----si le rang courant ce cyber - 2 est plus petit que 1
go movie "@/calen"&REL2ABS(gNb_cybers) -- on va au dernier cyberdu mois (exactement α son adresse absolue)
else
go movie "@/calen"&REL2ABS(zeNo - 2)-- sinon, on va au cyber de rang courant - 2 (exactement α son adresse absolue)
end if
end case
else-- si c'est le premier cyber du mois
case(gL_recres.getPos(zeNo - 1)) of
0:-- si le dernier cyber du mois n'est pas une rΘcrΘ
go movie "@/calen"&REL2ABS(gNb_cybers) -- on va au dernier cyber du mois (exactement α son adresse absolue)
1:-- si le dernier cyber du mois est une rΘcrΘ, comme il ne paut y avoir deux rΘcrΘs consΘcutives
go movie "@/calen"&REL2ABS(gNb_cybers-1)-- on va α l'avant- dernier cyber du mois (exactement α son adresse absolue)
end case
end if
end case
end
---------------
on localdata Noligne--extrait la ligne Noligne du champ localdata
return value(member("localdata").line[Noligne])
end
-----------------------
on jump_intro ZEGOUDLABEL
global L_gmemPassage
if L_gmemPassage = VOID then L_gmemPassage = []
zemoovy_nem = the movieName.char[1..length(the movieName)-4]
if L_gmemPassage.getPos(zemoovy_nem) > 0 then
go ZEGOUDLABEL
spritesMenus()
hide_title()
else
L_gmemPassage.add(zemoovy_nem)
end if
end
---------------------
on sous_titrage --message envoyΘ par l'Θquerre bleue α sa fermeture aprΦs clic sur item 5("voir/masquer sous-titres")
global gFlag_soustitrage, gLMem_MagicWindoz_lok
if gLMem_MagicWindoz_lok = VOID or gLMem_MagicWindoz_lok = [] then RAZ_magicWindoz_lok()
IF gFlag_soustitrage = VOID then gFlag_soustitrage = 0
case(gFlag_soustitrage) of
0:
gFlag_soustitrage = 1
if windowpresent("SOUS_TITRE") = 0 then
member("SOUS_TITRAGE").text = EMPTY
window("SOUS_TITRE").rect = gLMem_MagicWindoz_lok[1]
window("SOUS_TITRE").filename = "@//COMMUNS/MOBICLIC_SOUS_TITRAGE"
window("SOUS_TITRE").windowType = 2
window("SOUS_TITRE").modal = 0
window("SOUS_TITRE").visible = 1
window("SOUS_TITRE").open()
end if
1:
gFlag_soustitrage = 0
if windowpresent("SOUS_TITRE") = 1 then
member("SOUS_TITRAGE").text = EMPTY
window("SOUS_TITRE").forget()
end if
end case
end
----------------------
on gere_soustitrage ID_SON-- procΘdure lancΘe dans les procΘdures "joueson()"
global gFlag_soustitrage
if ID_SON contains "sons" then
L = length(ID_SON)
ID_SON =ID_SON.char[6..L]
end if
temp = trouve_soustitre(ID_SON)
if temp > 0 then
member("SOUS_TITRAGE").text = member("LISTE_SOUS_TITRES").LINE[temp]
end if
end
-----------------------
on trouve_soustitre CHAINE
global gNb_soustitres_Mobiclic
if gNb_soustitres_Mobiclic = VOID then gNb_soustitres_Mobiclic = member("LISTE_SONS_POUR_SOUSTITRAGE").line.count
No_ligne = 0
repeat with i = 1 to gNb_soustitres_Mobiclic
if member("LISTE_SONS_POUR_SOUSTITRAGE").line[i] = CHAINE then
No_ligne = i
exit repeat
end if
end repeat
return No_ligne
end
-----------------------
--on exitFrame
-- global gFlag_soustitrage
-- if gFlag_soustitrage = 1 and soundBusy(3) = 0 then member("SOUS_TITRAGE").text = EMPTY
-- pass
--end
-----------------------
on RAZ_magicWindoz_lok
global gLMem_MagicWindoz_lok, gL_MagicWindoz_lok, gL_magicWindowscolors
x0 = the stageLeft
y0 = the stageTop
x1 = the stageRight
y1 = the stageBottom
if gL_magicWindowscolors = VOID then gL_magicWindowscolors = ["YELLOW","GREEN","RED","BLUE"]
-- if gLMem_MagicWindoz_lok = VOID then
gLMem_MagicWindoz_lok= [[],[],[],[],[],[]]
gLMem_MagicWindoz_lok[1] = rect( x0, y0 ,x0 + 430 ,y0 + 68) -- position initiale dela fenΩtre "yellow window"
gLMem_MagicWindoz_lok[2] = rect(x1-72, y0 ,x1 , y0 +250) -- position initiale dela fenΩtre "green window"
gLMem_MagicWindoz_lok[3] = rect(x1-312, y1-62 ,x1 , y1) -- position initiale dela fenΩtre "red window"
gLMem_MagicWindoz_lok[4] = rect(x0 ,y1-280 ,x0 + 74,y1) -- position initiale dela fenΩtre "blue window"
gLMem_MagicWindoz_lok[5] = rect(x0, y1 ,x0+640 , y1 +80) -- position initiale dela fenΩtre commentaires
-- end if
case(the paramCount) of
0:
gL_MagicWindoz_lok = gLMem_MagicWindoz_lok.duplicate()
1:
gL_MagicWindoz_lok[param(1)] = gLMem_MagicWindoz_lok[param(1)]
end case
end
-----------------------
on manage_magicWindow COLOR, MODE
global gL_cornerwindows_Flags,gL_MagicWindoz_lok, gL_magicWindowscolors
if gL_MagicWindoz_lok = VOID then RAZ_magicWindoz_lok()
if gL_cornerwindows_Flags = VOID then gL_cornerwindows_Flags = [0,0,0,0] --coin HG(jaune), coin HD(vert), coin BD(rouge), coin BG(bleu)
temp = magicW_No(COLOR)
case(gL_cornerwindows_Flags[temp]) of
0:--si la fenΩtre-Θquerre n'est pas dΘployΘe
gL_cornerwindows_Flags[temp]= 1
if windowpresent(COLOR&"_WINDOW") = 0 then -- si la fenΩtre n'a pas dΘja ΘtΘ ouverte au moins 1 fois
window(COLOR&"_WINDOW").rect = gL_MagicWindoz_lok[temp]
window(COLOR&"_WINDOW").filename = "@//COMMUNS/M_"&COLOR&"_WINDOW"
window(COLOR&"_WINDOW").windowType = member(COLOR&"_WINDOW_MASK")--ceci n'opΦre qu'en mode runtime
window(COLOR&"_WINDOW").modal = 0
window(COLOR&"_WINDOW").visible = 1
else
window(COLOR&"_WINDOW").rect = gL_MagicWindoz_lok[temp]
end if
window(COLOR&"_WINDOW").open()
1:--si la fenΩtre-Θquerre est dΘployΘe
gL_cornerwindows_Flags[temp] = 0
if windowpresent(COLOR&"_WINDOW") = 1 then
close_magicWindow(COLOR,MODE)
end if
end case
end
----------------------
on magicW_No ZECOLOR
global gL_magicWindowscolors
return gL_magicWindowscolors.getPos(ZECOLOR)
end
------------------
on close_magicWindow COLOR,MODE
global gL_cornerwindows_Flags, gL_MagicWindoz_lok, gLmem_MagicWindoz_lok
temp = magicW_No(COLOR)
gL_cornerwindows_Flags[temp] = 0
test = (MODE = "SPE" and intersect(gL_MagicWindoz_lok[temp], gLmem_MagicWindoz_lok[temp]) <> rect(0,0,0,0) or MODE = "STD")
if test = 1 then
RAZ_magicWindoz_lok(temp)
end if
window(COLOR&"_WINDOW").close()
end
----------------------
on RAZ_MAGIC_WINDOW COLOR
temp = COLOR&"_WINDOW"
if windowPresent(temp) then
tell window temp
go to frame "RAZ_params"
end tell
end if
end
--------------
on imprimer_laBd WATMODE, WATTYPE,TITRE, PIED_DE_PAGE, VERSION,COLORMODE
global gL_printdispo
-- WATMODE indique si on est en mode aperτu (1) ou en mode impression (0)
-- WATMEDIA indique le type de fichier α imprimer : acteur (nom d'acteur) ou Θcran ("E")
-- crΘation d'une instance de l'xtra d'impression----------------------------------------------------------
doc = new(xtra "PrintOMatic")
if not objectP(doc) then exit
-- rΘglages des marges
setPrintableMargins (doc)
setMargins doc, rect(42,42,42,42)
-- crΘation de la page
if (doPageSetup(doc)) then
newPage doc
-- initialisation des variables de format page
L_Page=getPageWidth(doc)
H_Page=getPageHeight(doc)
--initialisation de la police
setTextFont doc,"Arial"
case(WATTYPE) of
"E": --impression d'Θcran
"M":--impression d'acteur
---------------- TETE DE LA PAGE -------------------
-- -- ligne horizontale haut de page
-- drawLine doc,point(0,10),point(L_Page,10)
-- -- titre
setTextJust doc,"center"
setTextStyle doc,"bold"
setTextSize doc,14
drawText doc,TITRE ,point(L_Page/2, 0)
---------------- CORPS DE LA PAGE -------------------
case(VERSION) of
"enfant":
x0 = -20
y0 = 10
caleGauche = x0
caleHaut = y0
repeat with i = 1 to count(gL_printdispo)
repeat with j = 1 to count(gL_printdispo[i])
W = member("TYPECASE_"&gimme2digits(gL_printdispo[i][j])).width
H = member("TYPECASE_"&gimme2digits(gL_printdispo[i][j])).height
drawPicture doc,member("MINIATURE_"&gimme2digits(calculNolineaire(gL_printdispo,i,j))),rect(calegauche,caleHaut,calegauche + W,caleHaut + H)
calegauche = calegauche + W + 7
end repeat
caleGauche = x0
caleHaut = caleHaut + H + 16
end repeat
otherwise:
------rΘglage couleur
case(COLORMODE) of
"NOIR":
NOM = VERSION&"_N"
"COULEUR":
NOM = VERSION&"_C"
end case
-- placement du schΘma (taille propre, ramenΘe autoritairement α largeur max = L_Page
-- ou α la hauteur de page disponible(H_Page) si l'une des deux dimensions est trop grande
L = float(member(NOM).width)
H = float(member(NOM).height)
coef = H/L
case(L>=H) of
1:
L_schema = min(L, L_Page)
H_schema = (L_schema)*coef
0:
H_schema = min(H,H_Page-50)
L_schema = H_schema/coef
end case
x0 = 0
y0 = 10
drawPicture doc,member(NOM),rect(x0,y0,x0 + L_schema,y0 + H_schema)
end case
end case
----------------- PIED DE PAGE -------------------
-- ligne horizontale bas de page
-- drawLine doc,point(0,H_Page-30),point(L_Page,H_Page-30)
setTextJust doc,"left"
setTextStyle doc,"plain"
setTextSize doc,16
-- drawText doc,PIED_DE_PAGE,point(L_Page- 300,H_Page-5)
-- logo GF
-- drawPicture doc,member("LOGO_MILAN"),rect(L_Page- 40,H_Page-41,L_Page ,H_Page-1)
setTextSize doc,8
end if
-- lancement de l'impression-----------------------------------------------------------
case(WATMODE) of
1:-- si on est en mode aperτu on affiche l'aperτu
printPreview doc
0:-- sinon on imprime
setProgressMsg doc, "Impression de la fiche "&TITRE&" en cours... "
if doJobSetup(doc) then
print doc
end if
end case
end
-------------------------
on calculNolineaire ZELISTE,MoSOUSLISTE, NoELEMENTSOUSLISTE
--dans une liste de listes renvoie le n░ linΘaire d'un ΘlΘment d'une dzes sous-listes
temp = 0
repeat with i = 1 to MoSOUSLISTE-1
temp = temp + count(ZELISTE[i])
end repeat
return temp + NoELEMENTSOUSLISTE
end