close to the end

This commit is contained in:
Antoine Vignau 2024-02-04 21:08:00 +01:00
parent 3cd87fc0f9
commit 991473de1e
6 changed files with 4463 additions and 4628 deletions

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -96,40 +96,48 @@ nombre_paragraphes = 65 ; NOMBRE MAXI DE TEXTES
nombre_objets = 8 ; NOMBRE D'OBJETS nombre_objets = 8 ; NOMBRE D'OBJETS
nombre_peches = 7 ; NOMBRE DE PECHES nombre_peches = 7 ; NOMBRE DE PECHES
MES_DONNEES = * ; on dŽmarre l'index ˆ 1...
indicateur ds nombre_indicateurs+1 indicateur ds nombre_indicateurs+1
objet ds nombre_paragraphes+1 objet ds nombre_paragraphes+1
peche ds nombre_paragraphes+1 peche ds nombre_paragraphes+1
condition ds nombre_paragraphes+1 condition ds nombre_paragraphes+1
consequence ds nombre_paragraphes+1 consequence ds nombre_paragraphes+1
deja_lu ds nombre_paragraphes+1 deja_lu ds nombre_paragraphes+1
visibilite ds nombre_objets+1
texteDEBUT ds 4 texteDEBUT ds 4
ds nombre_paragraphes*4 ; un long ds nombre_paragraphes*4 ; un long
MES_DONNEES = * ; on dŽmarre l'index ˆ 1...
asc "ICONE_OBJETS"
icone_objets ds nombre_objets+1 ; ICONES ALLUM<55>ES OU ETEINTES
asc "ICONE_PECHES"
icone_peches ds nombre_peches+1
asc "OBJET_SELECTIONNE"
objet_selectionne ds 2 ; l'objet selectionne objet_selectionne ds 2 ; l'objet selectionne
asc "PECHE_SELECTIONNE"
peche_selectionne ds 2 ; le peche selectionne peche_selectionne ds 2 ; le peche selectionne
asc "TEXTE_SELECTIONNE"
texte_selectionne ds 2 ; le texte ˆ afficher texte_selectionne ds 2 ; le texte ˆ afficher
asc "TEXTES_ENCORE_PRESENTS"
textes_encore_presents ds 2 ; false or true textes_encore_presents ds 2 ; false or true
FIN_DATA = * FIN_DATA = *
*--- *--- The Text Edit control
icone_objets ds nombre_objets+1 ; ICONES ALLUM<55>ES OU ETEINTES teCONTROL dw 9
icone_peches ds nombre_peches+1 ; (+1 POUR L'INDICATEUR DE SUITE...)
*--- *---
fenetre_x dw 10,10,10,120,10,10,10,10,10 fenetre_x dw 0,10,10,10,120,10,10,10,10,10
fenetre_y dw 100,100,100,10,100,100,100,10,100 fenetre_y dw 0,100,100,100,10,100,100,100,10,100
fenetre_xx dw 310,310,310,310,310,310,310,200,310 fenetre_xx dw 0,310,310,310,310,310,310,310,200,310
fenetre_yy dw 190,190,190,190,190,190,190,190,190 fenetre_yy dw 0,190,190,190,190,190,190,190,190,190
*--- *---
objetTEXT da objetSTR1 ; !NOM DE CHAQUE OBJET objetTEXT da $bdbd ; !NOM DE CHAQUE OBJET
da objetSTR1
da objetSTR2 da objetSTR2
da objetSTR3 da objetSTR3
da objetSTR4 da objetSTR4
@ -147,14 +155,15 @@ objetSTR6 asc "BIJOUX"
objetSTR7 asc "CLES" objetSTR7 asc "CLES"
objetSTR8 asc "ARGENT" objetSTR8 asc "ARGENT"
objet_x dw 238,222,195,0,27,131,276,133 objet_x dw 0,238,222,195,0,27,131,276,133
objet_y dw 51,110,0,17,55,32,19,69 objet_y dw 0,51,110,0,17,55,32,19,69
objet_xx dw 283,268,266,57,106,178,319,188 objet_xx dw 0,283,268,266,57,106,178,319,188
objet_yy dw 88,151,39,54,103,64,50,101 objet_yy dw 0,88,151,39,54,103,64,50,101
*--- *---
pecheTEXT da pecheSTR1 ; NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...) pecheTEXT da $bdbd ; NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...)
da pecheSTR1
da pecheSTR2 da pecheSTR2
da pecheSTR3 da pecheSTR3
da pecheSTR4 da pecheSTR4
@ -170,10 +179,10 @@ pecheSTR5 asc "LUXURE"
pecheSTR6 asc "COLERE" pecheSTR6 asc "COLERE"
pecheSTR7 asc "PARESSE" pecheSTR7 asc "PARESSE"
peche_x dw 184,0,46,276,92,138,230 peche_x dw 0,184,0,46,276,92,138,230
peche_y dw 162,162,162,162,162,162,162 peche_y dw 0,162,162,162,162,162,162,162
peche_xx dw 227,43,89,319,135,181,273 peche_xx dw 0,227,43,89,319,135,181,273
peche_yy dw 199,199,199,199,199,199,199 peche_yy dw 0,199,199,199,199,199,199,199
*--- Sound files *--- Sound files
* SNDxy.SND where x is the scene, y the file index (0..9) * SNDxy.SND where x is the scene, y the file index (0..9)

View File

@ -110,14 +110,20 @@ lt_err1 jsl GSOS
lt_err2 rts lt_err2 rts
*----------------------- *-----------------------
* GESTION DES ICONES * TEST LA FIN DU JEU
*----------------------- *-----------------------
test_icone test_fin
lda #0 ; from 1 rts
*-----------------------
* GESTION DES ICONES DES PECHES
*-----------------------
test_peche stz peche_selectionne
lda #1 ; from 1
]lp pha ]lp pha
asl
asl
asl asl
tax tax
lda taskWHERE+2 ; compare le X lda taskWHERE+2 ; compare le X
@ -135,52 +141,50 @@ test_icone
bcc icone_ko bcc icone_ko
pla ; on a notre ic™ne pla ; on a notre ic™ne
inc sta peche_selectionne
* sta instruction2 clc
rts rts
icone_ko icone_ko pla
pla
inc inc
cmp #nombre_objets-1 ; et non plus nombre_icones cmp #nombre_peches ; et non plus nombre_icones
bcc ]lp bcc ]lp
beq ]lp
sec
rts rts
*--- *---
efface_icone ; X is object efface_peche ; X is object
cpx #0 cpx #0
beq ei1 beq ei1
jsr set_icone jsr set_peche
_HideCursor _HideCursor
PushLong #iconParamPtr PushLong #fondParamPtr
_PaintPixels _PaintPixels
_ShowCursor _ShowCursor
ei1 rts ei1 rts
*--- *---
affiche_icone ; X is object affiche_peche ; X is object
cpx #0 cpx #0
beq ai1 beq ai1
jsr set_icone jsr set_peche
_HideCursor _HideCursor
PushLong #fondParamPtr PushLong #iconParamPtr
_PaintPixels _PaintPixels
_ShowCursor _ShowCursor
ai1 rts ai1 rts
*--- *---
set_icone txa set_peche txa
dec
asl asl
asl
asl ; because we are 16-bit
tax tax
lda peche_y,x lda peche_y,x ; x is 2..4..6..8
sta iconToSourceRect sta iconToSourceRect
sta iconToDestPoint sta iconToDestPoint
lda peche_x,x lda peche_x,x
@ -214,19 +218,19 @@ fondToSourceLocInfo
dw mode_320 ; mode 320 dw mode_320 ; mode 320
ds 4 ; ptrFOND - $0000 on entry, high set after _NewHandle ds 4 ; ptrFOND - $0000 on entry, high set after _NewHandle
dw 160 dw 160
dw 0,0,199,319 dw 0,0,200,320
iconToSourceLocInfo iconToSourceLocInfo
dw mode_320 ; mode 320 dw mode_320 ; mode 320
adrl $8000 ; ptrICON - $8000 on entry, high set after _NewHandle adrl $8000 ; ptrICON - $8000 on entry, high set after _NewHandle
dw 160 dw 160
dw 0,0,199,319 dw 0,0,200,320
iconToDestLocInfo iconToDestLocInfo
dw mode_320 ; mode 320 dw mode_320 ; +0 mode 320
adrl ptrE12000 adrl ptr012000 ; +2
dw 160 dw 160
dw 0,0,199,319 dw 0,0,200,320
iconToSourceRect iconToSourceRect
dw 3,0,109,272 dw 3,0,109,272
@ -237,11 +241,10 @@ iconToDestPoint
* GESTION DES OBJETS * GESTION DES OBJETS
*----------------------- *-----------------------
test_objet test_objet stz objet_selectionne
lda #0 ; from 1
lda #1 ; from 1
]lp pha ]lp pha
asl
asl
asl asl
tax tax
lda taskWHERE+2 ; compare le X lda taskWHERE+2 ; compare le X
@ -259,15 +262,15 @@ test_objet
bcc objet_ko bcc objet_ko
pla ; on a notre ic™ne pla ; on a notre ic™ne
inc sta objet_selectionne
* sta instruction2 clc
rts rts
objet_ko objet_ko pla
pla
inc
cmp #nombre_objets ; et non plus nombre_objets cmp #nombre_objets ; et non plus nombre_objets
bcc ]lp bcc ]lp
beq ]lp
sec
rts rts
*--- *---
@ -278,7 +281,7 @@ efface_objet ; X is object
jsr set_objet jsr set_objet
_HideCursor _HideCursor
PushLong #iconParamPtr PushLong #fondParamPtr
_PaintPixels _PaintPixels
_ShowCursor _ShowCursor
eo1 rts eo1 rts
@ -291,7 +294,7 @@ affiche_objet ; X is object
jsr set_objet jsr set_objet
_HideCursor _HideCursor
PushLong #fondParamPtr PushLong #iconParamPtr
_PaintPixels _PaintPixels
_ShowCursor _ShowCursor
ao1 rts ao1 rts
@ -299,12 +302,9 @@ ao1 rts
*--- *---
set_objet txa set_objet txa
dec
asl asl
asl
asl ; because we are 16-bit
tax tax
lda objet_y,x lda objet_y,x ; x is 2..4..6..8
sta iconToSourceRect sta iconToSourceRect
sta iconToDestPoint sta iconToDestPoint
lda objet_x,x lda objet_x,x
@ -391,122 +391,6 @@ tblLANG asc 'us' ; 0
asc 'hi' asc 'hi'
asc 'us' ; 19 asc 'us' ; 19
*-----------------------
* XX - OK
*-----------------------
xx
rts
*-----------------------
* MAIN - OK
*-----------------------
main
rts
*-----------------------
* VIGIL - OK
*-----------------------
* vigil(max_x%,max_y%,max_xx%,max_yy%,sauvegarde!)
vigil
rts
*-----------------------
* TEST_FIN - OK
*-----------------------
teste_fin
* lda paragraphes_lus
* sec
* sbc pointeur_paragraphes
* cmp #1
* bne tf_99
*
* jmp the_end
*
tf_99 rts
*-----------------------
* DEMANDE_OBJET
*-----------------------
demande_objet
* ldx #1
*]lp lda reference_peche-1,x
* and #$ff
* cmp #8
* beq do_1
*
* lda deja_lu,x
* and #$ff
* cmp #FALSE
* bne do_1
*
* lda indicateur_paragraphes_prealables-1,x
* and #$ff
* tay
* lda indicateur-1,y
* and #$ff
* cmp #TRUE
* bne do_1
*
* lda reference_objet-1,x
* and #$ff
* tay
* sep #$20
* lda #TRUE
* sta icone_objets-1,y
*
*do_1 inx
* cpx pointeur_paragraphes
* bcc ]lp
* beq ]lp
*-------- Affichage des objets
ldx #1
]lp phx
lda icone_objets-1,x
and #$ff
cmp #TRUE
bne do_2
jsr affiche_objet
do_2 plx
inx
cpx #nombre_objets
bcc ]lp
beq ]lp
*-------- Attend un clic
rts
*-----------------------
*
*-----------------------
demande_peche
rts
*-----------------------
*
*-----------------------
recherche_references
rts
*-----------------------
*
*-----------------------
affiche_image
rts
*----------------------- *-----------------------
* THE_END - OK * THE_END - OK
*----------------------- *-----------------------
@ -523,28 +407,6 @@ the_end
sta fgTHEEND sta fgTHEEND
rts rts
*-----------------------
* PRE_SCROLLING
*-----------------------
* pre_scrolling
pre_scrolling
rts
*-----------------------
* SCROLLING - OK
*-----------------------
scrolling
rts
*-----------------------
* VERIF - OK
*-----------------------
verif
rts
*----------------------- *-----------------------
* CHOIX D'ENTREE - OK * CHOIX D'ENTREE - OK
*----------------------- *-----------------------
@ -590,10 +452,10 @@ init PushWord #$ffff
*----------------------- *-----------------------
init2 init2
ldx #FIN_DATA-DEBUT_DATA * ldx #FIN_DATA-DEBUT_DATA
]lp stz fgTHEEND,x *]lp stz fgTHEEND,x
dex * dex
bne ]lp * bne ]lp
ldx #0 ; l'indicateur 0 est toujours vrai ldx #0 ; l'indicateur 0 est toujours vrai
sep #$20 sep #$20
@ -754,7 +616,6 @@ test_objets stz textes_encore_presents
sep #$30 sep #$30
ldx #1 ldx #1
]lp stz icone_objets,x ]lp stz icone_objets,x
stz visibilite,x
inx inx
cpx #nombre_objets cpx #nombre_objets
bcc ]lp bcc ]lp
@ -770,7 +631,7 @@ test_objets stz textes_encore_presents
bne to_1 bne to_1
ldy objet,x ldy objet,x
lda #TRUE lda #TRUE
sta visibilite,y sta icone_objets,y
sta textes_encore_presents sta textes_encore_presents
to_1 inx to_1 inx
@ -780,8 +641,22 @@ to_1 inx
rep #$30 rep #$30
* LoGo - Voir comment on traite la fin *-------- Affichage des objets
ldx #1
]lp phx
lda icone_objets,x
and #$ff
cmp #TRUE
bne to_2
jsr affiche_objet
to_2 plx
inx
cpx #nombre_objets
bcc ]lp
beq ]lp
rts rts
*----------------------- *-----------------------
@ -811,13 +686,32 @@ test_peches sep #$30
bne tp_1 bne tp_1
ldy peche,x ldy peche,x
lda #TRUE lda #TRUE
sta icone_peches-1,y sta icone_peches,y
tp_1 inx tp_1 inx
cpx #nombre_paragraphes cpx #nombre_paragraphes
bcc ]lp bcc ]lp
beq ]lp beq ]lp
rep #$30 rep #$30
*-------- Affichage des peches
ldx #1
]lp phx
lda icone_peches,x
and #$ff
cmp #TRUE
bne do_2
jsr affiche_peche
do_2 plx
inx
cpx #nombre_peches
bcc ]lp
beq ]lp
rts
rts rts
*----------------------- *-----------------------
@ -861,7 +755,7 @@ aiguillage stz texte_selectionne
bne ai_next bne ai_next
lda texte_selectionne lda texte_selectionne
bne ai_next bne ai_next
stx texte_selectionne stx texte_selectionne ; on a trouvŽ un texte
ai_next inx ai_next inx
cpx #nombre_paragraphes cpx #nombre_paragraphes
bcc ]lp bcc ]lp

View File

@ -217,7 +217,7 @@ okMEM1 sty ptrIMAGE
pla pla
brl meQUIT0 brl meQUIT0
*--- *--- Test default shadowing...
okTOOL PushWord #0 okTOOL PushWord #0
_GetMasterSCB _GetMasterSCB
@ -226,6 +226,7 @@ okTOOL PushWord #0
lda #^ptrE12000 ; shadowing is off, use slow RAM lda #^ptrE12000 ; shadowing is off, use slow RAM
sta ptrSCREEN+2 sta ptrSCREEN+2
sta iconToDestLocInfo+4
*--- Et la musique... *--- Et la musique...
@ -283,11 +284,9 @@ entryPOINT
*----------------------- *-----------------------
@fadein ptrFOND;#TRUE @fadein ptrFOND;#TRUE
jsr waitEVENT
@fadein ptrICONES;#TRUE
mainLOOP jsr teste_fin mainLOOP jsr test_fin
jsr demande_objet jsr test_objets
*---------------------------------------- *----------------------------------------
* TASK MASTER * TASK MASTER
@ -380,24 +379,31 @@ doMUSIK rts
* on compare les coordonnées avec celles du incontent * on compare les coordonnées avec celles du incontent
* si dans le même rectangle, on traite * si dans le même rectangle, on traite
doMOUSEDOWN doMOUSEUP lda objet_selectionne ; on a déjà un objet, saute
bne domu_2
doMOUSEUP * 1. vérifie si on a cliqué dans un objet
* lda fgSUITEFORCEE
* cmp #FALSE jsr test_objet ; on teste
* beq mup1 bcc domu_1 ; on a clique dans un objet
* rts ; non, on sort
*
*mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$
* bcc mup2 ; oui
* rts
*mup2 jsr aiguille ; on aiguille le joueur (1 ou 2 clics)
rts rts
domu_1 jmp test_peches ; on a clique dans un objet, affiche les peches qui correspondent
* 2. on a déjà un objet, a-t-on cliqué dans un péché ?
domu_2 lda peche_selectionne ; on a aussi déjà un péché, saute
bne domu_4
jsr test_peche ; on teste
bcc domu_3
rts
domu_3 jmp aiguillage ; choisit le texte correspondant
domu_4 rts
*----------------------------------- Gestion des controles *----------------------------------- Gestion des controles
doCONTROL doCONTROL lda taskREC+38
lda taskREC+38
asl asl
tax tax
jmp (ctrlTBL,x) jmp (ctrlTBL,x)
@ -406,8 +412,7 @@ doCONTROL
* FENETRES * FENETRES
*---------------------------------------- *----------------------------------------
PAINTMAIN PAINTMAIN PushLong wiMAIN
PushLong wiMAIN
_DrawControls _DrawControls
rtl rtl
@ -1246,8 +1251,8 @@ taskDATA ds 4 ; wmTaskData +16
ds 4 ; wmLastClickPt +42 ds 4 ; wmLastClickPt +42
taskTBL da doNOT ; 0 Null taskTBL da doNOT ; 0 Null
da doMOUSEDOWN ; 1 mouseDownEvt da doNOT ; 1 mouseDownEvt
da doNOT ; 2 mouseUpEvt da doMOUSEUP ; 2 mouseUpEvt
da doKEYDOWN ; 3 keyDownEvt da doKEYDOWN ; 3 keyDownEvt
da doNOT da doNOT
da doNOT ; 5 autoKeyEvt da doNOT ; 5 autoKeyEvt