click click

This commit is contained in:
Antoine Vignau 2023-08-20 16:04:48 +02:00
parent af0aaebf79
commit 84f4b4d035
6 changed files with 5206 additions and 4704 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -15,9 +15,6 @@ DEBUT_DATA = * ; C'est vachement pratique pour tout effacer !
*--- Variables Apple IIgs
nbTEXTES ds 2
nbTEXTES2 ds 2 ; nombre de textes indiquŽ dans le fichier .TEX
tblTEXTES ds 4*NB_TEXTES
*--- Pour la sauvegarde
@ -27,6 +24,8 @@ P ds 1
*--- Variables Atari ST
nbTEXTES ds 2
nbTEXTES2 ds 2 ; nombre de textes indiquŽ dans le fichier .TEX
i ds 2 ; un index
localOFFSET ds 2 ; offset de chaque rangŽe
localPOINT ds 2 ; index du mot
@ -37,23 +36,20 @@ rvb5 ds 2
rvbA ds 2
index_mot ds 2 ; un autre index qui pointe
nb_mots ds 2 ; nombre de mots dans la scene
aventure ds 2
nombre_scenes ds 2
scene_actuelle ds 2
scene_nouvelle ds 2
deplacement ds 2 ; BOOL - TRUE (new scene) or FALSE (same scene)
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
image_chargee ds 2 ; WORD - TRUE or FALSE
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)
option_mot ds 128 ; le mot est enregistrŽ s'il est dans la liste
* Le texte ˆ afficher
LES_TEXTES = *
asc "LIGNE_MAX"
ligne_max ds max_colonnes ; une ligne du texte
asc "TEXTE"
texte ds max_colonnes*max_lignes ; the text from the .TXT file
@ -67,36 +63,22 @@ texte_index ds max_colonnes*max_lignes ; num
* Toujours en dŽcalŽ : index 1 dŽmarre ˆ 0 (NB_TEXTES est toujours > au nombre de sc<EFBFBD>nes)
asc "SUITE_DATA"
SUITE_DATA = * ; C'est vachement pratique pour tout effacer (encore) !
asc "FONCTION_MOTS"
fonction_mots ds NB_TEXTES*NB_MOTS*2 ; PNTR - mots qui vont "rŽagir"
asc "AIGUILLAGE"
aiguillage ds NB_TEXTES*NB_MOTS ; BYTE - scene correspondant au mot
asc "CONDITION"
condition ds NB_TEXTES*NB_MOTS*2 ; WORD - scene devant avoir ete vue (ou non si nŽgatif)
asc "POINTEUR_MOTS"
pointeur_mots ds NB_TEXTES ; BYTE - nombre de mots pour chaque scene
asc "SCENE_VISITEE"
scene_visitee ds NB_TEXTES ; BOOL - le joueur est-il passŽ par cette sc<73>ne ?
asc "PHRASE"
phrase ds NB_TEXTES*NB_MOTS*2 ; PNTR - phrases explicatives de chaque mot
asc "IMAGE_A_CHARGER"
image_a_charger ds NB_TEXTES*2 ; PNTR - nom des fichiers image ˆ charger ˆ chaque sc<73>ne
asc "ROUGE1"
rouge1 ds NB_TEXTES ; les composants RVB pour le fond
asc "VERT1"
vert1 ds NB_TEXTES
asc "BLEU1"
bleu1 ds NB_TEXTES
asc "ROUGE2"
rouge2 ds NB_TEXTES
asc "VERT2"
vert2 ds NB_TEXTES
asc "BLEU2"
bleu2 ds NB_TEXTES
asc "FIN_DATA"
FIN_DATA = * ; Ben, ouais !
ds 2 ; padding, we never know :-)

View File

@ -1430,6 +1430,32 @@ y_coord = *
]y = ]y+hauteur_caractere
--^
x_text = *
]x = 0 ; Premi<6D>re colonne
lup max_colonnes
dw ]x
dw ]x
dw ]x
dw ]x
]x = ]x+1
--^
y_text = *
]y = 0 ; Premi<6D>re ligne
lup max_lignes
dw ]y
dw ]y
dw ]y
dw ]y
dw ]y
dw ]y
dw ]y
dw ]y
dw ]y
dw ]y
]y = ]y+max_colonnes
--^
*---
* Apple Atari
@ -1682,6 +1708,61 @@ sf_99 sta deplacement
strSUITE asc 'suite '
*-----------------------
* TEST_CURSEUR
*-----------------------
* test_curseur
* on regarde si le curseur se trouve sur un mot cliquable
test_curseur
lda taskWHERE+2
sta x1
lda taskWHERE
sta y1
lda taskWHERE+2 ; X
sec
sbc #marge_gauche*largeur_caractere
bpl tc_1
lda #0
tc_1 asl
tax
lda x_text,x
bmi tc_2
sta x2
pha
lda taskWHERE ; Y
asl
tax
lda y_text,x
sta y2
clc
adc 1,s
tax
sta idx
pla ; on a l'index dans le texte
lda texte_liens,x
and #$ff
cmp #FALSE
beq tc_2
sep #$20 ; c'est un mot cliquable
ldal $c034
inc
stal $c034
rep #$20
tc_2 rts
x1 ds 2
y1 ds 2
x2 ds 2
y2 ds 2
idx ds 2
*-----------------------
* CHARGE_IMAGE - OK
*-----------------------
@ -1731,7 +1812,7 @@ fadeout_mid
rts
*-----------------------
* PALETTE_TEXTE - OK
* PALETTE - OK
*-----------------------
* palette_texte
@ -2004,19 +2085,6 @@ tc_ok
* sep %20
rts
*-----------------------
* DEBUG - OK
*-----------------------
mx %10
DEBUG ldal $c034
inc
stal $c034
rts
mx %00
*-----------------------
* MUSIQUE - OK
*-----------------------

View File

@ -107,13 +107,15 @@ keyDownEvt = $0003
dpFROM = $80
dpTO = dpFROM+4
dpINDEX = $90 ; pointeur vers les INDEX
dpINDEX = dpFROM+$10 ; pointeur vers les INDEX
dpTEXTES = dpINDEX+4 ; pointeur vers les TEXTES
Debut = $a0
Debut = dpINDEX+$10
Arrivee = Debut+4
Second = Arrivee+4
*---
mode_320 = $00
mode_640 = $80
@ -146,16 +148,6 @@ FALSE = 0
tdc
sta myDP
lda #mots_clicables
stal $300
lda #^mots_clicables
stal $302
lda #LES_TEXTES
stal $310
lda #^LES_TEXTES
stal $312
*--- Version du systeme
jsl GSOS
@ -297,13 +289,6 @@ mainLOOP lda scene_actuelle
jsr prepare_texte ; prepare le texte
jsr mots_clicables ; ajoute les mots cliquables
jsr affiche_texte ; affiche le texte
* lda scene_actuelle
* cmp #$47
* bne okboss
* brk $bd
*okboss
jsr attente ; attend sur l'image
*----------------------------------------
@ -312,6 +297,8 @@ mainLOOP lda scene_actuelle
taskLOOP inc VBLCounter0
jsr test_curseur
* PushWord #0
* PushWord #%11111111_11111111
* PushLong #taskREC
@ -398,42 +385,30 @@ doMOUSEUP
cmp #FALSE
beq mup1
rts
mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$
*--- LOGO
lda scene_actuelle
inc
cmp nombre_scenes
bcc okok
lda #1
okok sta scene_actuelle
lda #TRUE
mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$
bcs mup9 ; on sort sans clic sur un mot
jsr aiguillage ; on aiguille le joueur
lda #TRUE ; aiguillons les amis !
sta deplacement
rts
mup9 rts
*-----------------------------------
* AUTRES ROUTINES
*-----------------------------------
*----------------------------------- Switch to 320 mode
switch_320
lda #0
switch_320 lda #0 ; Switch to 320 mode
ldy #screen_320
bra switch_res
*----------------------------------- Switch to 640 mode
switch_640
lda #$80
switch_640 lda #$80 ; Switch to 640 mode
ldy #screen_640
*-----------
switch_res
sty mainWIDTH
switch_res sty mainWIDTH
pha
pha
_SetMasterSCB
@ -750,15 +725,15 @@ waitEVENT inc VBLCounter0
*--------------------------------------
fadeIN sty Debut
stx Debut+2
fadeIN sty Debut
stx Debut+2
_HideCursor
_HideCursor
ldy #$2000
sty Arrivee
ldx #$00e1
stx Arrivee+2
ldy #$2000
sty Arrivee
ldx #$00e1
stx Arrivee+2
ldy #$7e00
lda #0

Binary file not shown.