mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-02 21:31:33 +00:00
works continue
This commit is contained in:
parent
173c3832f5
commit
2cd5537f56
@ -338,6 +338,12 @@ PROCEDURE initialisation_tableaux
|
||||
CASE "#" !UN MOT CLICABLE?
|
||||
scene|=ASC(LEFT$(ligne$,1)) !ON LIT LE NUMERO DE LA SCENE
|
||||
'
|
||||
|
||||
0 1 2 3 4
|
||||
01234567890123456789012345678901234567890
|
||||
#1suite +1G0
|
||||
#2plage +13Fred retourne sur la plage0
|
||||
|
||||
INC pointeur_mots|(scene|) !ET UN MOT EN PLUS!
|
||||
espace%=INSTR(ligne$," ",2) !ON REPERE LE CARACTERE ESPACE
|
||||
fonction_mot$(scene|,pointeur_mots|(scene|))=MID$(ligne$,2,espace%-2)
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -36,13 +36,9 @@ scene ds 2
|
||||
deplacement ds 2
|
||||
fichier ds 2
|
||||
espace ds 2
|
||||
phrase ds 2
|
||||
longueur ds 2
|
||||
index ds 2
|
||||
pointeur ds 2
|
||||
fonction_mots ds 2
|
||||
aiguillage ds 2
|
||||
conditions ds 2
|
||||
numero_mot ds 2 ; WORD
|
||||
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
|
||||
@ -51,20 +47,36 @@ escape ds 2 ; WORD - TRUE or FALSE
|
||||
|
||||
* Toujours en dŽcalŽ : index 1 dŽmarre ˆ 0 (NB_TEXTES est toujours > au nombre de sc<EFBFBD>nes)
|
||||
|
||||
rouge1 ds NB_TEXTES ; les composants RVB pour le fond
|
||||
asc "SUITE_DATA"
|
||||
SUITE_DATA = * ; C'est vachement pratique pour tout effacer !
|
||||
|
||||
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
|
||||
|
||||
scene_visitee ds NB_TEXTES ; BYTE - par scene, on met true ou false
|
||||
image_a_charger ds NB_TEXTES*2 ; WORD - par scene, on y met le pointeur vers le nom de l'image
|
||||
pointeur_mots ds NB_TEXTES ; BYTE - par scene, nombre de mots
|
||||
|
||||
texte$ ds 2
|
||||
b$ ds 2
|
||||
|
||||
asc "FIN_DATA"
|
||||
FIN_DATA = * ; Ben, ouais !
|
||||
|
||||
ds 2 ; padding, we never know :-)
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
NB_INDICATEURS = 10
|
||||
NB_MOTS = 25 ; on ne peut pas avoir plus de 25 mots par ecran
|
||||
NB_TEXTES = 512 ; nombre de textes du jeu
|
||||
NB_TEXTES = 160 ; nombre de textes du jeu
|
||||
|
||||
*-----------------------
|
||||
* load_font
|
||||
@ -671,6 +671,7 @@ initialisation_textes
|
||||
* INITIALISATION_TABLEAUX - OK
|
||||
*-----------------------
|
||||
|
||||
instrSPACE = $20
|
||||
instrDIESE = $23
|
||||
instrECOMM = $26
|
||||
instrPERCE = $25
|
||||
@ -685,6 +686,14 @@ initialisation_tableaux
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2
|
||||
|
||||
*--- Initialise les valeurs du jeu
|
||||
|
||||
ldx #SUITE_DATA ; on efface tout
|
||||
]lp stz |$0000,x
|
||||
inx
|
||||
cpx #FIN_DATA
|
||||
bcc ]lp
|
||||
|
||||
*--- Initialise les valeurs RVB
|
||||
|
||||
ldx #1 ; RVB par dŽfaut
|
||||
@ -704,19 +713,6 @@ initialisation_tableaux
|
||||
beq ]lp
|
||||
rep #$20
|
||||
|
||||
*--- Initialise le tableau des pointeurs d'image
|
||||
|
||||
ldy #1
|
||||
]lp tya
|
||||
asl
|
||||
tax
|
||||
stz image_a_charger-2,x
|
||||
iny
|
||||
cpy #NB_TEXTES
|
||||
bcc ]lp
|
||||
beq ]lp
|
||||
rep #$20
|
||||
|
||||
*--- Decode chaque ligne
|
||||
|
||||
itab_loop lda [dpINDEX] ; read a byte
|
||||
@ -813,8 +809,96 @@ doECOMM jsr next_index
|
||||
|
||||
doDIESE jsr next_index
|
||||
dec
|
||||
sta localSCENE
|
||||
tax ; la scene
|
||||
|
||||
sep #$20 ; un mot en plus
|
||||
inc pointeur_mots,x
|
||||
lda pointeur_mots,x
|
||||
dec
|
||||
sta localPOINT
|
||||
rep #$20
|
||||
|
||||
pha ; calcul l'index dans la dimension NB_MOTS
|
||||
pha
|
||||
phx ; index de sc<73>ne
|
||||
PushWord #NB_MOTS ; taille d'une dimension
|
||||
_Multiply
|
||||
pla
|
||||
sta localOFFSET ; 0=>0, 1=>25, 2=>50
|
||||
pla
|
||||
|
||||
*-- fonction_mot$(scene|,pointeur_mots|(scene|))=MID$(ligne$,2,espace%-2)
|
||||
|
||||
jsr next_index
|
||||
|
||||
lda localOFFSET ; 0/25/50 => 0/50/100
|
||||
asl
|
||||
pha
|
||||
lda localPOINT ; 0/1/2 => 0/2/4
|
||||
asl
|
||||
clc
|
||||
adc 1,s ; +=
|
||||
tax
|
||||
pla
|
||||
|
||||
lda dpINDEX ; sauve l'offset du mot
|
||||
sta fonction_mots,x
|
||||
|
||||
jsr next_index
|
||||
|
||||
*--- Maintenant, on parcout le tableau jusqu'ˆ l'espace
|
||||
|
||||
]lp jsr next_index
|
||||
cmp #instrSPACE
|
||||
bne ]lp
|
||||
|
||||
*--- condition&(scene|,pointeur_mots|(scene|)) =
|
||||
*--- ASC(MID$(ligne$,espace%+2,1))*VAL(MID$(ligne$,espace%+1,1)+"1")
|
||||
*--- Ici, on ne fait pas le calcul de la version Atari pour le moment
|
||||
|
||||
jsr next_index
|
||||
|
||||
lda localOFFSET ; 0/25/50 => 0/50/100
|
||||
asl
|
||||
pha
|
||||
lda localPOINT ; 0/1/2 => 0/2/4
|
||||
asl
|
||||
clc
|
||||
adc 1,s ; +=
|
||||
tax
|
||||
pla
|
||||
|
||||
lda [dpINDEX] ; prend le mot sur 16-bit
|
||||
sta condition,x
|
||||
|
||||
jsr next_index
|
||||
|
||||
*--- aiguillage|(scene|,pointeur_mots|(scene|))=ASC(MID$(ligne$,espace%+3))
|
||||
|
||||
jsr next_index
|
||||
|
||||
lda localOFFSET ; 0/25/50 => 0/50/100
|
||||
asl
|
||||
pha
|
||||
lda localPOINT ; 0/1/2 => 0/2/4
|
||||
asl
|
||||
clc
|
||||
adc 1,s ; +=
|
||||
tax
|
||||
pla
|
||||
|
||||
lda [dpINDEX] ; prend le mot sur 16-bit
|
||||
sta condition,x
|
||||
|
||||
jsr next_index
|
||||
|
||||
|
||||
*--- Local data
|
||||
|
||||
localSCENE ds 2 ; index de la scene
|
||||
localOFFSET ds 2 ; offset de chaque rangŽe
|
||||
localPOINT ds 2 ; index du mot
|
||||
|
||||
*-----------------------
|
||||
* INITIALISATION_CACHE - OK
|
||||
@ -1144,8 +1228,7 @@ affiche_image
|
||||
beq ai_1
|
||||
rts
|
||||
|
||||
ai_1
|
||||
jsr switch_320
|
||||
ai_1 jsr switch_320
|
||||
jsr noircit_ecran
|
||||
ldx ptrIMAGE+2
|
||||
ldy ptrIMAGE
|
||||
|
@ -288,6 +288,23 @@ main
|
||||
jsr initialisation_relative
|
||||
jsr fadeOUT
|
||||
|
||||
lda #SUITE_DATA
|
||||
stal $300
|
||||
lda #^SUITE_DATA
|
||||
stal $302
|
||||
|
||||
lda ptrINDEX
|
||||
stal $308
|
||||
lda ptrINDEX+2
|
||||
stal $30a
|
||||
|
||||
lda ptrTEXTES
|
||||
stal $310
|
||||
lda ptrTEXTES+2
|
||||
stal $312
|
||||
|
||||
brk $bd
|
||||
|
||||
mainLOOP
|
||||
lda scene_actuelle
|
||||
jsr nouvelle_scene
|
||||
|
Loading…
Reference in New Issue
Block a user