Hyperlinks work!

This commit is contained in:
Antoine Vignau 2023-08-21 14:43:25 +02:00
parent ab5da6cb27
commit 78fab679f2
6 changed files with 4881 additions and 4806 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -42,26 +42,21 @@ valeur_condition ds 2 ; valeur condition 2B xx ou 2D yy
aventure ds 2 aventure ds 2
nombre_scenes ds 2 nombre_scenes ds 2
scene_actuelle ds 2 scene_actuelle ds 2
scene_nouvelle ds 2 scene_ancienne ds 2
deplacement ds 2 ; BOOL - TRUE (new scene) or FALSE (same scene) deplacement ds 2 ; BOOL - TRUE (new scene) or FALSE (same scene)
image_chargee ds 2 ; WORD - TRUE or FALSE image_chargee ds 2 ; WORD - TRUE or FALSE
escape ds 2 ; BOOL - TRUE or FALSE escape ds 2 ; BOOL - TRUE or FALSE
fgSUITEFORCEE 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 ds 128 ; le mot ˆ chercher (jusqu'au caract<63>re espace)
option_mot ds 128 ; le mot est enregistrŽ s'il est dans la liste
* Le texte ˆ afficher * Le texte ˆ afficher
ligne_max ds max_colonnes ; une ligne du texte ligne_max ds max_colonnes ; une ligne du texte
asc "TEXTE"
texte ds max_colonnes*max_lignes ; the text from the .TXT file texte ds max_colonnes*max_lignes ; the text from the .TXT file
asc "TEXTE_FINAL"
texte_final ds max_colonnes*max_lignes ; the final text - known as b$ in Atari ST texte_final ds max_colonnes*max_lignes ; the final text - known as b$ in Atari ST
ds 2 ds 2
asc "TEXTE_LIENS"
texte_liens ds max_colonnes*max_lignes ; FALSE: not a link, TRUE est un mot cliquable texte_liens ds max_colonnes*max_lignes ; FALSE: not a link, TRUE est un mot cliquable
asc "TEXTE_INDEX"
texte_index ds max_colonnes*max_lignes ; numŽro du mot texte_index ds max_colonnes*max_lignes ; numŽro du mot
* Toujours en dŽcalŽ : index 1 dŽmarre ˆ 0 (NB_TEXTES est toujours > au nombre de sc<EFBFBD>nes) * Toujours en dŽcalŽ : index 1 dŽmarre ˆ 0 (NB_TEXTES est toujours > au nombre de sc<EFBFBD>nes)

View File

@ -889,7 +889,6 @@ doDIESE jsr next_index
jsr next_index jsr next_index
lda localOFFSET ; 0/25/50 => 0/50/100 lda localOFFSET ; 0/25/50 => 0/50/100
asl
clc clc
adc localPOINT ; += adc localPOINT ; +=
tax tax
@ -1209,7 +1208,10 @@ skipME
debut_aventure debut_aventure
lda #1 lda #1
sta scene_actuelle sta scene_actuelle
lda #-1
sta scene_ancienne
sta mot_ancien
ldx #1 ldx #1
sep #$20 sep #$20
lda #FALSE lda #FALSE
@ -1257,17 +1259,22 @@ fin rts
nouvelle_scene nouvelle_scene
cmp #0 ; not 0 cmp #0 ; not 0
beq ns_99 beq ns_99
cmp scene_ancienne
beq ns_98
ldx scene_actuelle
stx scene_ancienne
dec dec
tax tax
lda #TRUE lda #TRUE
sep #$20 sep #$20
sta scene_visitee,x sta scene_visitee,x
rep #$20 rep #$20
lda #FALSE ns_98 lda #FALSE
sta deplacement sta deplacement
stz option_mot
ns_99 rts ns_99 rts
*----------------------- *-----------------------
@ -1311,11 +1318,6 @@ tc_2 ldx mot_clique ; on sauvegarde l'ancien mot
* affiche_commentaire * affiche_commentaire
affiche_commentaire affiche_commentaire
sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts rts
*----------------------- *-----------------------
@ -1736,8 +1738,7 @@ suite_forcee
lda #TRUE lda #TRUE
bra sf_99 bra sf_99
sf_false lda #FALSE sf_false lda #FALSE
sf_99 sta deplacement sf_99 sta fgSUITEFORCEE
sta fgSUITEFORCEE
rts rts
strSUITE asc 'suite ' strSUITE asc 'suite '
@ -1748,7 +1749,12 @@ strSUITE asc 'suite '
* aiguille(scene) * aiguille(scene)
* parce que le tableau aiguillag existe * parce que le tableau aiguillag existe
aiguille cmp #0 aiguille ldx mot_clique ; a-t-on cliquŽ de nouveau sur le m<>me mot ?
cpx mot_ancien
beq ai_entry
jmp affiche_commentaire
ai_entry cmp #0
beq ai_false beq ai_false
dec ; prend la scene dec ; prend la scene
@ -1763,20 +1769,17 @@ aiguille cmp #0
sta dpFROM ; on pointe sur l'index du premier mot sta dpFROM ; on pointe sur l'index du premier mot
pla pla
ldy mot_clique ldy mot_clique ; 1..+
dey dey
lda (dpFROM),y ; la prochaine sc<73>ne lda (dpFROM),y ; la prochaine sc<73>ne
and #$ff and #$ff
sta scene_actuelle sta scene_actuelle
lda #TRUE lda #TRUE
sta deplacement sta deplacement
lda #FALSE
sta fgSUITEFORCEE
rts rts
ai_false lda #FALSE ai_false lda #FALSE
sta deplacement sta deplacement
sta fgSUITEFORCEE
rts rts
*----------------------- *-----------------------
@ -1786,7 +1789,7 @@ ai_false lda #FALSE
charge_image charge_image
rts rts
1F9C
*----------------------- *-----------------------
* IMAGE_ECRAN - OK * IMAGE_ECRAN - OK
*----------------------- *-----------------------

View File

@ -148,6 +148,11 @@ FALSE = 0
tdc tdc
sta myDP sta myDP
lda #SUITE_DATA
stal $300
lda #^SUITE_DATA
stal $302
*--- Version du systeme *--- Version du systeme
jsl GSOS jsl GSOS
@ -246,6 +251,12 @@ okMEM1 sty ptrIMAGE
okTOOL _HideMenuBar okTOOL _HideMenuBar
_InitCursor _InitCursor
PushWord #0
PushWord #%11111111_11111111
PushWord #0
_FlushEvents
pla
PushLong #0 PushLong #0
_GetPort _GetPort
PullLong mainPORT PullLong mainPORT
@ -268,6 +279,12 @@ okTOOL _HideMenuBar
jsr initialisation_absolue jsr initialisation_absolue
jsr generique jsr generique
PushWord #0
PushWord #%11111111_11111111
PushWord #0
_FlushEvents
pla
*----------------------- *-----------------------
* MAIN - OK * MAIN - OK
*----------------------- *-----------------------
@ -281,15 +298,20 @@ main
*--- *---
mainLOOP lda scene_actuelle mainLOOP lda scene_actuelle
jsr nouvelle_scene jsr nouvelle_scene ; on initialise la scène
lda scene_actuelle lda scene_actuelle
jsr image jsr image ; on charge une image éventuelle
lda scene_actuelle lda scene_actuelle
jsr get_textes ; prend le texte de l'écran jsr get_textes ; on détermine le texte
jsr prepare_texte ; prepare le texte jsr prepare_texte ; que l'on prepare le texte
jsr mots_clicables ; ajoute les mots cliquables jsr mots_clicables ; on y ajoute les mots cliquables
jsr affiche_texte ; affiche le texte jsr affiche_texte ; et on l'affiche
jsr attente ; attend sur l'image
PushWord #0
PushWord #%11111111_11111111
PushWord #0
_FlushEvents
pla
*---------------------------------------- *----------------------------------------
* TASK MASTER (no more) * TASK MASTER (no more)
@ -297,6 +319,8 @@ mainLOOP lda scene_actuelle
taskLOOP inc VBLCounter0 taskLOOP inc VBLCounter0
* jsr DEBUG
* PushWord #0 * PushWord #0
* PushWord #%11111111_11111111 * PushWord #%11111111_11111111
* PushLong #taskREC * PushLong #taskREC
@ -312,11 +336,36 @@ taskLOOP inc VBLCounter0
tax tax
jsr (taskTBL,x) jsr (taskTBL,x)
lda fgSUITEFORCEE
cmp #TRUE
beq mainLOOP
lda deplacement ; si on doit bouger, on fait un... lda deplacement ; si on doit bouger, on fait un...
cmp #TRUE cmp #TRUE
beq mainLOOP ; ...grand saut beq mainLOOP ; ...grand saut
bne taskLOOP ; ...sinon on attend bne taskLOOP ; ...sinon on attend
*---------- DEBUG
DEBUG
lda #' '
sta theSTRING
sta theSTRING+2
PushWord scene_actuelle
PushLong #theSTRING
PushWord #4
_Int2Hex
PushWord #150
PushWord #150
_MoveTo
PushLong #theSTRING
_DrawCString
rts
theSTRING asc ' '00
*----------------------------------- Gestion du keyDown *----------------------------------- Gestion du keyDown
* on gère les open-apple-qqch * on gère les open-apple-qqch
@ -387,16 +436,10 @@ doMOUSEUP
mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$ mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$
bcc mup2 ; oui bcc mup2 ; oui
rts rts
mup2 lda scene_actuelle
mup2 lda mot_clique ; a-t-on cliqué de nouveau sur le même mot ?
cmp mot_ancien
beq mup3
jsr affiche_commentaire
rts
mup3 lda scene_actuelle
jsr aiguille ; on aiguille le joueur si c'est le second clic jsr aiguille ; on aiguille le joueur si c'est le second clic
rts rts
*----------------------------------- *-----------------------------------
* AUTRES ROUTINES * AUTRES ROUTINES
*----------------------------------- *-----------------------------------
@ -507,8 +550,7 @@ copyPATH
*--- Charge le fichier de sauvegarde en mémoire *--- Charge le fichier de sauvegarde en mémoire
loadALL loadALL jsl GSOS
jsl GSOS
dw $2010 dw $2010
adrl proOPENGAME adrl proOPENGAME
bcs loadKO99 bcs loadKO99
@ -523,21 +565,22 @@ loadALL
dw $2014 dw $2014
adrl proCLOSE adrl proCLOSE
loadKO99 loadKO99 rts
rts
*--- *---
loadPART loadPART ldx #2
ldx #NB_INDICATEURS lda #aventure
ldy #C1 jsr loadIT
ldx #2
lda #scene_actuelle
jsr loadIT jsr loadIT
ldx #2 ldx #NB_TEXTES
ldy #P ldy #scene_visitee
loadIT loadIT stx proREADGAME+8
stx proREADGAME+8
sty proREADGAME+4 sty proREADGAME+4
jsl GSOS jsl GSOS
dw $2012 dw $2012
@ -546,8 +589,7 @@ loadIT
*--- Enregistre le fichier de sauvegarde *--- Enregistre le fichier de sauvegarde
saveALL saveALL jsl GSOS
jsl GSOS
dw $2002 dw $2002
adrl proDESTROYGAME adrl proDESTROYGAME
@ -571,21 +613,22 @@ saveALL
dw $2014 dw $2014
adrl proCLOSE adrl proCLOSE
saveKO99 saveKO99 rts
rts
*--- *---
savePART savePART ldx #2
ldx #NB_INDICATEURS lda #aventure
ldy #C1 jsr saveIT
ldx #2
lda #scene_actuelle
jsr saveIT jsr saveIT
ldx #2 ldx #NB_TEXTES
ldy #P ldy #scene_visitee
saveIT saveIT stx proWRITEGAME+8
stx proWRITEGAME+8
sty proWRITEGAME+4 sty proWRITEGAME+4
jsl GSOS jsl GSOS
dw $2013 dw $2013

Binary file not shown.