"It's the end"
This commit is contained in:
Antoine Vignau 2023-08-26 10:28:36 +02:00
parent 729e3d4afd
commit f4dc12d669
12 changed files with 535 additions and 16091 deletions

View File

@ -1041,8 +1041,7 @@ PROCEDURE mots_clicables(texte$)
ENDIF
'
ENDIF
INC pointeur_mot% !SI LE MOT N'EST PAS ISOLE (EX="CLIC" et "CLICABLE") ON
CONTINUE LA RECHERCHE
INC pointeur_mot% !SI LE MOT N'EST PAS ISOLE (EX="CLIC" et "CLICABLE") ON CONTINUE LA RECHERCHE
UNTIL affichage!=TRUE !SI LE MOT A ETE SURLIGNE (OU DU MOINS QU'IL EXISTE)
CLR pointeur_mot%,affichage! !ON SORT...
NEXT i%

Binary file not shown.

View File

@ -1 +0,0 @@
ToutADisparu=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,6 @@ tblTEXTES ds 4*NB_TEXTES
*--- Variables Atari ST
nbTEXTES ds 2
nbTEXTES2 ds 2 ; nombre de textes indiquŽ dans le fichier .TEX
i ds 2 ; un index
nb_lignes ds 2 ; nombre de lignes de texte (c'est pour centrer)
localOFFSET ds 2 ; offset de chaque rangŽe
@ -32,8 +31,7 @@ rvb1 ds 2 ; index 1/5/9/D
rvb2 ds 2 ; index 2/6/A/E
index_mot ds 2 ; un autre index qui pointe
nb_mots ds 2 ; nombre de mots dans la scene
mot_clique ds 2 ; index du mot cliquŽ
mot_ancien ds 2 ; index du mot prŽcŽdemment cliquŽ
numero_mot ds 2 ; index du mot cliquŽ apr<70>s condition
valeur_condition ds 2 ; valeur condition 2B xx ou 2D yy
aventure ds 2
nombre_scenes ds 2
@ -45,6 +43,8 @@ escape ds 2 ; BOOL - TRUE or FALSE
fgSUITEFORCEE ds 2 ; BOOL - TRUE or FALSE
mot ds 128 ; le mot ˆ chercher (jusqu'au caract<63>re espace)
mot_upper ds 128 ; le m<>me mot mais en IIgs majusculanisŽ
option_mot ds 128 ; la copie du premier mot cherchŽ
ligne_commentaire ; la phrase de commentaire "mot" : explication
ds 128
@ -52,8 +52,7 @@ ligne_commentaire ; la phrase de commentaire "mot" : explication
ligne_max ds max_colonnes ; une ligne du texte
texte ds max_colonnes*max_lignes ; the text from the .TXT file
texte_liens ds max_colonnes*max_lignes ; FALSE: not a link, TRUE est un mot cliquable
texte_index ds max_colonnes*max_lignes ; numŽro du mot
texte_color ds max_colonnes*max_lignes ; FALSE: not a link, TRUE est un mot cliquable
texte_final ds max_colonnes*max_lignes ; the final text - known as b$ in Atari ST
ds 2

View File

@ -25,8 +25,7 @@ colorWHITE = 15
* load_font
*-----------------------
load_font
jsr font_it
load_font jsr font_it
bcc lf_ok
pha
@ -41,8 +40,7 @@ lf_ok rts
*--- Really load the font
font_it
PushWord #$0A00 ; Taille 10
font_it PushWord #$0A00 ; Taille 10
PushWord #$0016 ; Courier
PushWord #0
_InstallFont
@ -185,6 +183,11 @@ load_textes
tya
jsr unpackLZ4
lda lenDATA
sta proEOF
lda lenDATA+2
sta proEOF+2
PushLong ptrIMAGE
PushLong ptrTEXTES
PushLong lenDATA
@ -224,11 +227,7 @@ it1 lda ptrTEXTES
adc proEOF+2
sta dpTO+2
*--- Nombre de textes en little endian
lda [dpFROM] ; le premier word est le nombre de textes
xba
sta nbTEXTES2 ; pour comparer avec notre valeur
*--- Saute le nombre de textes (en little endian)
lda dpFROM ; += 2
clc
@ -281,11 +280,20 @@ it5 lda dpFROM+2 ; did we reach the end of the file?
* get_textes(textes%)
*-----------------------
get_textes cmp #0
get_textes lda scene_actuelle
beq get_textes1
cmp nbTEXTES
bcc get_textes2
beq get_textes2
pha
PushLong #pgmSTR1
PushLong #pgmSTR2
PushLong #errSTR3
PushLong #errSTR2
_TLTextMountVolume
pla
get_textes1 sec
rts
@ -333,7 +341,7 @@ generique jsr switch_640
@cprint #gen_str5;17
@cprint #gen_str6;18
jsr waitEVENT
jsr attente
_SetBackColor
_SetForeColor
@ -356,8 +364,7 @@ gen_str8 asc 'Antoine Vignau & Olivier Zardini'00
*-----------------------
* tag
tag
PushLong #old_pattern
tag PushLong #old_pattern
_GetPenPat
PushLong #the_pattern ; blue pattern
@ -446,6 +453,7 @@ ca_restart lda escape
jsr switch_320
lda #TRUE
ldx ptrMENU+2
ldy ptrMENU
jsr fadeIN
@ -491,7 +499,7 @@ ca_exit PushLong #old_pattern
*----------- Wait for a click
ca_choice jsr waitEVENT
ca_choice jsr attente
cmp #mouseDownEvt
bne ca_choice
@ -915,8 +923,8 @@ prepare_texte
]lp lda #texteSPACE
sta texte_final,x
lda #colorBLACK
sta texte_liens,x
stz texte_index,x
sta texte_color,x
* stz texte_index,x
inx
cpx #max_colonnes*max_lignes
bcc ]lp
@ -1175,6 +1183,7 @@ affiche_texte
* et on affiche enfin
lda #TRUE
ldx ptrFOND+2
ldy ptrFOND
jsr fadeIN
@ -1185,7 +1194,7 @@ affiche_texte
PushWord #modeForeCopy
_SetTextMode
PushLong #texte_liens
PushLong #texte_color
PushLong #texte_final
PushWord #3 ; x
PushWord printY ; y
@ -1203,7 +1212,7 @@ affiche_texte
debut_aventure
lda #-1
sta scene_ancienne
sta mot_ancien
* sta mot_ancien
lda #$d2 ; initialise la cha”ne de commentaire
sta ligne_commentaire
@ -1259,19 +1268,18 @@ fin rts
* nouvelle_scene(scene ˆ charger)
nouvelle_scene
cmp #0 ; not 0
lda scene_actuelle
beq ns_99
cmp scene_ancienne
beq ns_98
* cmp scene_ancienne
* beq ns_98
ldx scene_actuelle
stx scene_ancienne
* ldx scene_actuelle
* stx scene_ancienne
dec
tax
lda #TRUE
sep #$20
sta scene_visitee,x
sta scene_visitee-1,x
rep #$20
ns_98 lda #FALSE
@ -1279,224 +1287,7 @@ ns_98 lda #FALSE
ns_99 rts
*-----------------------
* CLIC_MOT - OK
*-----------------------
* clic_mot
* on regarde sur quel mot on a cliquŽ
clic_mot
lda taskWHERE+2 ; X
cmp #marge_gauche*largeur_caractere
bcc tc_ko
cmp #640-{2*largeur_caractere}
bcs tc_ko
sec
sbc #marge_gauche*largeur_caractere
clc
adc #7
lsr
lsr
lsr
sta motX
pha
lda taskWHERE ; Y
sec
sbc offsetY ; dŽcalage liŽ au centrage du texte
clc
adc #9
asl
tax
lda y_text2,x
clc
adc motY
sta motY2 ; la ligne
lda y_text,x
sta motOFFSET ; l'offset dans le texte
clc
adc 1,s
tax
pla
lda texte_index,x
and #$ff
bne tc_2
tc_ko sec ; pas de mot
rts
*--- on a un mot
tc_2 ldx mot_clique ; on sauvegarde l'ancien mot
stx mot_ancien
sta mot_clique ; et le nouveau
lda motOFFSET ; on en a encore besoin
clc
adc #texte_final
sta dpFROM
*- on cherche le dŽbut
ldy motX
]lp cpy #0 ; condition de sortie : on est ˆ gauche
beq tc_debut
lda (dpFROM),y
and #$ff
cmp #'A'-1 ; instrSPACE
bcc tc_debutok ; beq
dey
bra ]lp
tc_debutok iny
tc_debut sty motX ; on a le debut
ldx #0
sep #$20
]lp cpy #max_colonnes
bcs tc_fin
lda (dpFROM),y
cmp #'A'-1 ; #instrSPACE
bcc tc_fin ; beq
sta mot,x
iny
inx
bne ]lp ; on a recopiŽ le mot
tc_fin stz mot,x ; fin de cha”ne
rep #$20
lda motX ; corrige la marge
clc
adc #marge_gauche
sta motX
clc
rts
*-----------------------
* AFFICHE_COMMENTAIRE
*-----------------------
* affiche_commentaire
affiche_commentaire
cmp #0
bne ac_1
rts
ac_1 dec ; prend la scene
pha ; calcul l'index dans la dimension NB_MOTS
pha
pha ; index de sc<73>ne
PushWord #NB_MOTS ; taille d'une dimension
_Multiply
lda 1,s ; calcule l'offset pour les deux tableaux utiles
asl
sta 1,s
lda mot_clique
dec
asl
clc
adc 1,s
sta localOFFSET
pla
pla
*--- on construit la chane
* 1- le mot
lda localOFFSET
clc
adc #fonction_mots
sta dpFROM
lda (dpFROM)
sta dpINDEX
lda ptrINDEX+2
sta dpINDEX+2
sep #$20
ldy #0
]lp lda [dpINDEX],y
cmp #instrSPACE
beq ac_2
sta ligne_commentaire+1,y
iny
bne ]lp
* 2- la sŽparation
ac_2 tyx
rep #$20
lda #$20d3 ; double quote fermant + espace "-" -"
sta ligne_commentaire+1,x
lda #$203a ; deux-points + espace "-: -"
sta ligne_commentaire+3,x
* 3- le commentaire
lda localOFFSET
clc
adc #phrase
sta dpFROM
lda (dpFROM)
sta dpINDEX
lda ptrINDEX+2
sta dpINDEX+2
sep #$20
ldy #0
]lp lda [dpINDEX],y
beq ac_3
sta ligne_commentaire+5,x
iny
inx
cpx #126 ; len max
bcc ]lp
ac_3 stz ligne_commentaire+5,x ; pour finir
rep #$20
*--- PrŽpare l'Žcran
PushLong #old_pattern
_GetPenPat
pha
_GetForeColor
pha
_GetTextMode
PushLong #black_pattern ; black pattern
_SetPenPat
PushLong #commentRECT
_PaintRect
PushWord #15
_SetForeColor
PushWord #modeForeCopy
_SetTextMode
ldx #^ligne_commentaire
ldy #ligne_commentaire
lda #19
jsr cprint
_SetTextMode
_SetForeColor
_SetPenPat
rts
*---
commentRECT dw 182,16,192,623
mx %00
*-----------------------
* SURLIGNER_MOT
@ -1914,7 +1705,7 @@ attente jmp waitEVENT ; LoGo - check if we support keypresses as well
*-----------------------
* image(scene ˆ charger)
image cmp #0 ; not 0
image lda scene_actuelle ; not 0
beq image_ko
dec
asl
@ -1994,10 +1785,13 @@ affiche_image
ai_1 jsr switch_320
jsr noircit_ecran
lda #TRUE
ldx ptrIMAGE+2
ldy ptrIMAGE
jsr fadeIN
jsr waitEVENT
jsr attente
jsr fadeOUT ; noircit_ecran
jmp switch_640
@ -2007,7 +1801,7 @@ ai_1 jsr switch_320
* suite_forcee(scene)
suite_forcee
cmp #0
lda scene_actuelle
beq sf_false
dec ; prend la scene
@ -2029,14 +1823,33 @@ suite_forcee
lda ptrINDEX+2
sta dpINDEX+2 ; et met son pointeur 32-bits
ldy #6-2 ; len('suite ') sur 16-bits
* ldy #6-2 ; len('suite ') sur 16-bits
*]lp lda [dpINDEX],y
* sta mot,y
* cmp strSUITE,y
* bne sf_false
* dey
* dey
* bpl ]lp
lda #0
tax
txy
sep #$20 ; mot_upper$=UPPER$(mot$)
ldy #6-1
]lp lda [dpINDEX],y
tax
lda tblATARI,x
tax
lda tblUPPER,x
cmp strSUITE,y
bne sf_false
dey
dey
bpl ]lp
rep #$20
lda #aiguillage
clc
adc localOFFSET
@ -2045,40 +1858,266 @@ suite_forcee
lda (dpFROM) ; la prochaine sc<73>ne
and #$ff
sta scene_actuelle
lda #TRUE
bra sf_99
sf_false lda #FALSE
sf_false rep #$20
lda #FALSE
sf_99 sta fgSUITEFORCEE
rts
strSUITE asc 'suite '
strSUITE asc 'SUITE '
*-----------------------
* CLIC_MOT - OK
*-----------------------
* clic_mot
* on regarde sur quel mot on a cliquŽ
clic_mot lda taskWHERE+2 ; X
cmp #marge_gauche*largeur_caractere
bcc tc_ko
cmp #640-{2*largeur_caractere}
bcs tc_ko
sec
sbc #marge_gauche*largeur_caractere
clc
adc #7
lsr
lsr
lsr
sta motX
pha
lda taskWHERE ; Y
sec
sbc offsetY ; dŽcalage liŽ au centrage du texte
clc
adc #9
asl
tax
lda y_text2,x
clc
adc motY
sta motY2 ; la ligne
lda y_text,x
sta motOFFSET ; l'offset dans le texte
clc
adc 1,s
tax
pla
* on a un mot mais on ne sait pas lequel
* lda texte_index,x
lda texte_color,x
and #$ff
bne tc_2
tc_ko sec ; pas de mot
rts
*--- on a un mot
tc_2
* ldx mot_clique ; on sauvegarde l'ancien mot
* stx mot_ancien
* sta mot_clique ; et le nouveau
lda motOFFSET ; on en a encore besoin
clc
adc #texte_final
sta dpFROM
*- on cherche le dŽbut
ldy motX
]lp cpy #0 ; condition de sortie : on est ˆ gauche
beq tc_debut
lda (dpFROM),y
and #$ff
cmp #'A'-1 ; instrSPACE
bcc tc_debutok ; beq
dey
bra ]lp
tc_debutok iny
tc_debut sty motX ; on a le debut
ldx #0
sep #$20
]lp cpy #max_colonnes
bcs tc_fin
lda (dpFROM),y
cmp #'A'-1 ; #instrSPACE
bcc tc_fin ; beq
sta mot,x
iny
inx
bne ]lp ; on a recopiŽ le mot
tc_fin stz mot,x ; fin de cha”ne
rep #$20
lda motX ; corrige la marge
clc
adc #marge_gauche
sta motX
clc ; on a un mot
rts
*-----------------------
* AIGUILLAGE
*-----------------------
* aiguille(scene)
* parce que le tableau aiguillag existe
* parce que le tableau aiguillage existe
* si on est ici, on sait qu'on a un mot
aiguille ldx mot_clique ; a-t-on cliquŽ de nouveau sur le m<>me mot ?
cpx mot_ancien
beq ai_entry
aiguille
* lda scene_actuelle
* sta scene_ancienne
stz numero_mot ; l'index du mot en sortie, le vrai !
*--- mot_upper$=UPPER$(mot$)
lda #0 ; on init les registres (mais pourquoi ?)
tax
tay
sep #$20 ; mot_upper$=UPPER$(mot$)
ldx #0
]lp lda mot,x
tay
lda tblATARI,y
tay
lda tblUPPER,y
sta mot_upper,x
inx
cpx #128
bcc ]lp
rep #$20
*--- pointeur_mots|(scene_actuelle|)
pha ; calcul l'index dans la dimension NB_MOTS
pha
lda scene_actuelle
dec
pha
PushWord #NB_MOTS ; taille d'une dimension
_Multiply
pla
asl
sta localOFFSET
clc
adc #fonction_mots
sta dpFROM ; on pointe sur fonction_mots(scene_actuelle)
pla
lda #1
sta i
*--- FOR i|=1 TO pointeur_mots|(scene_actuelle|)
aig_fori rep #$20
lda i ; prend l'adresse du mot
dec
asl ; dans ptrINDEX
tay
lda (dpFROM),y
sta dpINDEX
lda ptrINDEX+2
sta dpINDEX+2
lda #0 ; on initialise les registres
tax
tay
sep #$20 ; on majusculinise le mot
]lp lda [dpINDEX],y
cmp #instrSPACE
beq aig_finmot
tax
lda tblATARI,x ; from Atari to IIgs
tax
lda tblUPPER,x ; to upper case
cmp mot_upper,y
bne aig_nexti
iny
cpy #128
bcc ]lp
aig_finmot lda #0 ; on met un zero final
sta mot_upper,y
jsr aiguille_condition ; on teste la condition
bcs aig_nexti ; non satisfaite
lda i ; satisfaite
sta numero_mot
*--- NEXT i%
aig_nexti inc i
lda i
cmp nb_mots
bcc aig_fori
beq aig_fori
*-----------------------
*--- IF numero_mot|<>0
aig_suite rep #$20 ; on sort
lda numero_mot
bne ai_onaunmot
* lda scene_ancienne
* sta scene_actuelle
rts
*--- IF option_mot$=mot$
ai_onaunmot sep #$20
ldx #0
]lp lda mot_upper,x
cmp option_mot,x
bne ai_diff
cmp #0 ; fin de cha”ne
beq ai_entry
inx
cpx #128
bcc ]lp
*--- ELSE
ai_diff ldx #0 ; option_mot$=mot$
]lp lda mot_upper,x
sta option_mot,x
inx
cpx #128
bcc ]lp
rep #$20
lda #1 ; fait clignoter
jsr surligner_mot
pla
jsr affiche_commentaire
lda #FALSE
ai_false lda #FALSE
sta deplacement
rts
*---
mx %10
ai_entry cmp #0
beq ai_false
ai_entry rep #$20 ; m<>me mot
lda scene_actuelle
dec ; prend la scene
pha ; calcul l'index dans la dimension NB_MOTS
pha
@ -2095,19 +2134,198 @@ ai_entry cmp #0
sta dpFROM ; on pointe sur l'index du premier mot
pla
ldy mot_clique ; 1..+
ldy numero_mot ; 1..+
dey
lda (dpFROM),y ; la prochaine sc<73>ne
and #$ff
sta scene_actuelle
lda #TRUE
sta deplacement
rts
ai_false lda #FALSE
sta deplacement
mx %00
*-----------------------
* AIGUILLE_CONDITION
*-----------------------
* aiguille_condition
* test de la condition pour
* la routine aiguille
* test_condition
* on entre en A=8-bits
* on doit ressortir en A=8-bits
* si le mot est cliquable on remplit texte_color
mx %00
aiguille_condition
rep #$20
* condition&=condition&(scene_actuelle|,i%)
lda i
dec
asl
clc
adc localOFFSET
tax
lda condition,x ; xx2B ou yy2D
pha
and #$ff00 ; index dans scene_visitee
xba
tax
lda scene_visitee-1,x
and #$ff
tax ; true ou false
pla
and #$00ff ; 2B ou 2D
* IF (condition&>0 AND scene_visitee!(ABS(condition&))=TRUE) OR (condition&<0 AND scene_visitee!(ABS(-condition&))=FALSE)
cmp #'+'
bne ac_moins
cpx #TRUE
beq ac_oui
bne ac_non
ac_moins cpx #FALSE
bne ac_non
ac_oui sep #$20
clc
rts
ac_non sep #$20
sec
rts
mx %00
*-----------------------
* AFFICHE_COMMENTAIRE
*-----------------------
* affiche_commentaire
affiche_commentaire
lda scene_actuelle
bne ac_1
rts
ac_1 dec ; prend la scene
pha ; calcul l'index dans la dimension NB_MOTS
pha
pha ; index de sc<73>ne
PushWord #NB_MOTS ; taille d'une dimension
_Multiply
lda 1,s ; calcule l'offset pour les deux tableaux utiles
asl
sta 1,s
lda numero_mot
dec
asl
clc
adc 1,s
sta localOFFSET
pla
pla
*--- on construit la chane
* 1- le mot
lda localOFFSET
clc
adc #fonction_mots
sta dpFROM
lda (dpFROM)
sta dpINDEX
lda ptrINDEX+2
sta dpINDEX+2
sep #$20
ldy #0
]lp lda [dpINDEX],y
cmp #instrSPACE
beq ac_2
sta ligne_commentaire+1,y
iny
bne ]lp
* 2- la sŽparation
ac_2 tyx
rep #$20
lda #$20d3 ; double quote fermant + espace "-" -"
sta ligne_commentaire+1,x
lda #$203a ; deux-points + espace "-: -"
sta ligne_commentaire+3,x
* 3- le commentaire
lda localOFFSET
clc
adc #phrase
sta dpFROM
lda (dpFROM)
sta dpINDEX
lda ptrINDEX+2
sta dpINDEX+2
sep #$20
ldy #0
]lp lda [dpINDEX],y
beq ac_3
sta ligne_commentaire+5,x
iny
inx
cpx #126 ; len max
bcc ]lp
ac_3 stz ligne_commentaire+5,x ; pour finir
rep #$20
*--- PrŽpare l'Žcran
PushLong #old_pattern
_GetPenPat
pha
_GetForeColor
pha
_GetTextMode
PushLong #black_pattern ; black pattern
_SetPenPat
PushLong #commentRECT
_PaintRect
PushWord #15
_SetForeColor
PushWord #modeForeCopy
_SetTextMode
ldx #^ligne_commentaire
ldy #ligne_commentaire
lda #19
jsr cprint
_SetTextMode
_SetForeColor
_SetPenPat
rts
*---
commentRECT dw 182,16,192,623
*-----------------------
* CHARGE_IMAGE - OK
*-----------------------
@ -2191,11 +2409,12 @@ help lda mainWIDTH ; save current width
sta oldWIDTH
jsr saveBACK ; save background
jsr switch_640 ; switch to 640
lda #TRUE
ldx ptrFOND+2
ldy ptrFOND
jsr fadeIN
PushLong #old_pattern ; save current pattern
_GetPenPat
@ -2241,8 +2460,8 @@ help4
@cprint #help_str12;12
@cprint #help_str14;14
@cprint #help_str16;16
help9 jsr waitEVENT
jsr attente
*--- Restore all
@ -2285,8 +2504,8 @@ help_str16 asc 'OA-Q : quitter le jeu'00
* mots_clicables(texte$)
mots_clicables
lda #-1 ; force un mot diffŽrent en entrŽe de sc<73>ne
sta mot_ancien
* lda #-1 ; force un mot diffŽrent en entrŽe de sc<73>ne
* sta mot_ancien
lda #0 ; on init les registres (mais pourquoi ?)
tax
@ -2395,7 +2614,7 @@ mc_99 rep #$20 ; on sort
* test_condition
* on entre en A=8-bits
* on doit ressortir en A=8-bits
* si le mot est cliquable on remplit texte_liens
* si le mot est cliquable on remplit texte_color
mx %00
@ -2441,10 +2660,10 @@ tc_addmot ply ; marque le mot dans les buffers
dey
bmi tc_ok ; on sort sans dŽpiler
lda #colorWHITE
sta texte_liens,x
lda index_mot
inc
sta texte_index,x
sta texte_color,x
* lda index_mot
* inc
* sta texte_index,x
bra ]lp
tc_prendpas ply
@ -2454,7 +2673,7 @@ tc_ok sep #$20
rts
mx %00
*-----------------------
* MUSIQUE - OK
*-----------------------
@ -2475,10 +2694,11 @@ fin_musique
* MON BEAU CURSEUR
*-----------------------
monCURSEUR dw 16,4
monCURSEUR
dw 16,4
hex 0000000000000000 ; data
hex 00000000000000F0
hex 0000000000000000
hex 000000000000FFF0
hex 000000000000F0F0
hex 0000000000FFF0F0
hex 00000000FFF00FF0

View File

@ -114,7 +114,7 @@ fgRESTART = 2
tdc
sta myDP
*--- Version du systeme
jsl GSOS
@ -254,15 +254,16 @@ main jsr fadeOUT
*---
mainLOOP lda scene_actuelle
jsr nouvelle_scene ; on initialise la scène
lda scene_actuelle
mainLOOP jsr nouvelle_scene ; on initialise la scène
jsr image ; on charge une image éventuelle
lda scene_actuelle
jsr get_textes ; on détermine le texte
jsr prepare_texte ; que l'on prepare le texte
jsr suite_forcee ; a-t-on des mots cliquables ?
lda fgSUITEFORCEE
cmp #TRUE
beq noMOTS
jsr mots_clicables ; on y ajoute les mots cliquables
jsr affiche_texte ; et on l'affiche
noMOTS jsr affiche_texte ; et on l'affiche
*----------------------------------------
* TASK MASTER (no more)
@ -294,11 +295,8 @@ taskLOOP inc VBLCounter0
cmp #FALSE
bne main
lda fgSUITEFORCEE
cmp #TRUE
beq mainLOOP
lda deplacement ; si on doit bouger, on fait un...
ora fgSUITEFORCEE
cmp #TRUE
beq mainLOOP ; ...grand saut
bne taskLOOP ; ...sinon on attend
@ -356,10 +354,7 @@ tblKEYADDRESS
doMOUSEDOWN
doMOUSEUP lda scene_actuelle ; a-t-on des mots cliquables ?
jsr suite_forcee
lda fgSUITEFORCEE
doMOUSEUP lda fgSUITEFORCEE
cmp #FALSE
beq mup1
rts ; non, on sort
@ -367,8 +362,7 @@ doMOUSEUP lda scene_actuelle ; a-t-on des mots cliquables ?
mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$
bcc mup2 ; oui
rts
mup2 lda scene_actuelle
jsr aiguille ; on aiguille le joueur si c'est le second clic
mup2 jsr aiguille ; on aiguille le joueur (1 ou 2 clics)
rts
*-----------------------------------
@ -639,13 +633,11 @@ doQUIT jsr suspendMUSIC ; NTP off
meQUIT jsr stopNTP
meQUIT0
PushWord #refIsHandle
meQUIT0 PushWord #refIsHandle
PushLong SStopREC
_ShutDownTools
meQUIT1
PushWord myID
meQUIT1 PushWord myID
_DisposeAll
PushWord mainID
@ -741,15 +733,16 @@ we_1 inc VBLCounter0
*--------------------------------------
fadeIN sty Debut
stx Debut+2
fadeIN pha
sty Debut
stx Debut+2
_HideCursor
ldy #$2000
sty Arrivee
ldx #$00e1
stx Arrivee+2
ldy #$2000
sty Arrivee
ldx #$00e1
stx Arrivee+2
ldy #$7e00
lda #0
@ -758,12 +751,16 @@ fadeIN sty Debut
iny
bpl ]lp
ldy #$7dfe
]lp lda [Debut],y
sta [Arrivee],y
dey
dey
bpl ]lp
pla ; ne copie pas les données
cmp #FALSE ; si à FALSE
beq fadeIN1
ldy #$7dfe
]lp lda [Debut],y
sta [Arrivee],y
dey
dey
bpl ]lp
fadeIN1 lda Debut
clc
@ -1108,6 +1105,8 @@ verSTR1 str 'System 6.0.1 Required!'
verSTR2 str 'Press a key to quit'
fntSTR1 str 'Courier.10 font missing'
fntSTR2 str 'Please install it!'
pgmSTR1 str 'Data parsing error'
pgmSTR2 str 'Please report!'
tolSTR1 str 'Error while loading tools'
memSTR1 str 'Cannot allocate memory'
filSTR1 str 'Cannot load file'
@ -1126,7 +1125,7 @@ taskDATA ds 4 ; wmTaskData +16
taskTBL da doNOT ; 0 Null
da doMOUSEDOWN ; 1 mouseDownEvt
da doMOUSEUP ; 2 mouseUpEvt
da doNOT ; 2 mouseUpEvt
da doKEYDOWN ; 3 keyDownEvt
da doNOT
da doNOT ; 5 autoKeyEvt

View File

@ -10,7 +10,7 @@ Fran
Ces histoires sont accompagnŽes d'une musique choisie alŽatoirement par le programme, ainsi que d'images pour renforcer l'immersion dans les lieux visitŽs. Chaque sc<73>ne peut comporter des liens cliquables lorsque le texte est Žcrit en caract<63>res blancs Un clic vous permet de choisir le mot, deux clics de confirmer votre choix, votre dŽcision et ainsi de conditionner la suite du jeu. Toute l'interactivitŽ du jeu se trouve dans vos choix.
Nous retrouvons un fonctionnement en "point & click" plus ŽvoluŽ que celui utilisŽ pour "L'ŽgŽrie" deux annŽes plus t™t. La fiction numŽrique associŽe au th<74>me de la perte de l'<27>tre cher reste prŽsente dans les trois Žpisodes sous des formes distinctes que nous vous invitons ˆ dŽcouvrir en jouant.
La navigation se fait par liens hypertexte, c'est ainsi plus ŽvoluŽ que celle utilisŽe pour "L'ŽgŽrie". La fiction numŽrique associŽe au th<74>me de la perte de l'<27>tre cher reste prŽsente dans les trois Žpisodes sous des formes distinctes que nous vous invitons ˆ dŽcouvrir en jouant.
Pour jouer, rien de plus simple : une souris pour dŽcider. Nous avons intŽgrŽ quelques raccourcis clavier :
- pomme-ouverte-O pour charger une partie prŽcŽdemment sauvegardŽe,

Binary file not shown.

Binary file not shown.