REParadiseCafe/ParadiseCafe.ctl

1540 lines
38 KiB
Plaintext
Executable File

b $4000 Ecrã de entrada
D $4000 #UDGTABLE { #SCR(loading) | Ecrã de entrada } TABLE#
$4000,$1800,$20 Pixels
$5800,$300,$20 Atributos
;b $5B00 System variables (?)
;b $5CB6 Channel infomation (?)
;b $5CCB Program data (Basic?)
;B $5CCB,$15c zbr
;b $5E27 Basic stacks (novo)
i $5B00
c $7530 The End
@ $7530 label=the_end
$7530,$6 paper=0 (Preto)
$7536,$d Imprime 32 ($20) espaços ($80) em 18 linhas ($12) - Na posicao 0,0 - Parede preta
$7543,$6 paper=2 (Vermelho)
$7549,$b Imprime 29 ($1D) espaços ($80) em 4 linhas ($04) - Na posicao 18,3 - Chão vermelho
$7554,$6 paper=3 (Roxo)
$755A,$b Imprime 16 ($10) espaços ($80) em 4 linhas ($04) - Na posicao 12,5 - Banco Roxo
$756B,$6 ink=0 (Preto)
$7571,$6 paper=7 (Branco)
$7577,$d Imprime 1 ($01) char $3E em 18 linhas ($12) - Na posicao 0,3 - Risca branca da parede
$7584,$6 Desenha #R$75E2
$7590,$6 Desenha #R$77D5
$759C,$6 Desenha #R$7799
$75A2,$5 Limpa a ultima tecla pressionada
$75A7,$5 Faz uma pausa
$75AC,$6 Desenha #R$77B6
$75B2,$7 Se pressionou alguma tecla salta para #R$75C6
$75B9,$5 Faz uma pausa
$75BE,$6 Desenha #R$7799
c $75CF Preenche L colunas e C linhas com o caracter H na posicao D,E
R $75CF I:H Caracter
R $75CF I:L Colunas
R $75CF I:C Linhas
R $75CF I:D Posição X
R $75CF I:E Posição Y
@ $75CF label=preenche_com_char
$75CF,$3 PRINT AT
$75D2,$2 X=D
$75D4,$2 Y=E
$75D6,$1 B=L (Numero de colunas)
$75D7,$6 Imprime o que está em H, B vezes
$75DD,$1 Incrementa a posição X
$75De,$1 Decrementa o numero de linhas a imprimir
$75DF,$2 Se ainda existirem linhas para imprimir volta ao inicio
b $75E2 FRAME: Prisão
@ $75E2 label=frame_prisao
D $75E2 CHARS = $8970
D $75E2 #UDGTABLE { #CALL:decode_data($8970,$75E2) | Parte fixa da prisão } TABLE#
b $7799 FRAME: Prisão Canhola - f1
@ $7799 label=frame_canhola_1
D $7799 CHARS = $8C30
D $7799 #UDGTABLE { #CALL:decode_data($8C30,$7799) | Canhola - Frame 1 } TABLE#
b $77B6 FRAME: Prisão Canhola - f22
@ $77B6 label=frame_canhola_2
D $77B6 CHARS = $8C30
D $77B6 #UDGTABLE { #CALL:decode_data($8C30,$77B6) | Canhola - Frame 2 } TABLE#
b $77D5 FRAME: The End
@ $77D5 label=frame_the_end
D $77D5 CHARS = $3C00
D $77D5 #UDGTABLE { #CALL:decode_data($3C00,$77D5) | The End } TABLE#
i $77E4
c $77EA Inicio do codigo
@ $77EA label=start
$77EA,$f Espera que se pressione uma tecla
$77F9,$4 No Operation
$77FD,8 Define atributos para o fadeOut a $10 e chama-o
$7805,4 Faz um beep?
$7809,6 Define CHARS em $3C00
$780F,6 Desenha #R$788D
$7815,3 HL com #R$89A6
$7818,2 Inutil(?) é repetida abaixo
$781A,3 AT
$781D,3 X = $09
$7820,3 Y = 00
$7823,3 PAPER
$7826,3 $02 RED
$7829,3 INK
$782C,3 $6 YELLOW
$782F,3 BRIGHTNESS
$7832,3 $01
$7835,9 Imprime $20 (32) caracteres da string em HL
$783E,3 BRIGHTNESS
$7841,3 $00
$7844,$c Espera que se pressione uma tecla
$7850,4 Faz um beep?
; $7854,2 Começa-se sem arma
$7856,3 #R$C33D a 0
$7859,3 #R$C337 a 0
$785E,3 #R$C33C a 1
$7863,$C #R$C346 a "0000" $30 é "0" em ASCII
$786F,$E #R$C33E a "3000" - 030000$
$787D,3 Guarda o valor do FRAMES (contador de tempo +-)
$7880,2 Subtrai $80
$7882,8 Corre o "randomizer" o numero de vezes que estiver em A
b $788D FRAME: Recordista e autor
@ $788D label=frame_recordista
D $788D CHARS = $3C00
D $788D #UDGTABLE { #CALL:decode_data($3C00,$788D) | Recordista e autor } TABLE#
i $79EA
c $7CF0 Main do jogo
@ $7CF0 label=main
$7CF0,7 No Operation
c $7D2B Delay
@ $7D2B label=sleep
N $7D2B Numero de vezes que o loop B vai correr
$7D2B C = 80
N $7D2D [loop b] Define valor de B, e decrementa ate chegar a 0
$7D2D B = 0
$7D2F Decrementa B enquanto nao for 0
N $7D31 Enquanto o valor de C não for 0, repete o loop B
$7D31 Decrementa C
$7D32,2 Se C <> 0 salta para o loop do B
b $7D35 ??
@ $7D35 label=posicao_coluna
;b $7D36
i $7D36
c $7D3B Desenha a porta
@ $7D3B label=desenha_porta
$7D3B,6 INK = Azul
$7D41,6 PAPER = Amarelo
$7D47,6 Carrega o valor de #R$C34B e mete-o em #R$7D35
$7D4D,2 Caracter a imprimir - Porta
$7D4F,2 Contador C = 7
$7D51,3 Valor de #R$7D35 em A
$7D57,7 Incrementa valor de #R$7D35
$7D5E,1 Decrementa Contador C
$7D5F,2 Se não for zero salta
$7D61,7 Decrementa #R$C34B
$7D68,3 Valor de #R$7D35 em A
$7D6B,5 Se for $20 (32) salta para #R$7DAB
$7D70,4 Se for $FF (255) - vai dar a volta - salta para #R$7D85
$7D74,2 Caracter a imprimr - Normalmente em branco
$7D76,6 Paper = Vermelho
$7D7C,6 Limpa a ultima coluna da porta, para dar o efeito de movimento
$7D85,5 Define #R$C34B a $1F, o maximo 'a direita
c $7D8D Imprime coluna da porta na posicao A
@ $7D8D label=imprime_coluna_porta
; $7D8D,2 Adiciona 9 a A
; $7D8F,1 Return se Carry estiver SET
$7D8D,3 Se estiver fora do ecra na esquerda, salta fora
; $7D90,3 Le o valor de #R$7D35 para A
; $7D93,2 Subrai 32 a A
; $7D95,1 Return se Carry estiver NOT SET
$7D90,6 Se estiver fora do ecra na direita, salta fora
$7D96,3 Le o valor de #R$7D35 para A
$7D99,1 E = A
$7D9A,2 D = 0
$7D9C,2 B = 17
$7D9E,3 A = 22 (PRINT AT)
$7DA1,2 Y = D
$7DA3,2 X = E
$7DA5,2 Imprime valor em L
$7DA7,1 Incrementa D
$7DA8,2 Se Zero estiver NOT SET salta
c $7DAB Verifica colisao com a porta(main loop)
@ $7DAB label=colisao_porta
$7DAB Le a distancia para a porta
$7DAE Está em cima?
$7DB0 Nao, volta para tras
$7DB1 Guarda o valor do FRAMES (contador de tempo +-)
$7DB4 Subtrai $80
$7DB6,8 Corre o "randomizer" o numero de vezes que estiver em A
$7DBE Knock Knock1!
$7DC1 É igual a 2?
$7DC3 Então é a puta!
$7DC6 É igual a 3?
$7DC8 Então é a velha!
$7DCB É igual a 4?
$7DCD Então é o Paradise Café!
$7DD0 Knock Knock2?
$7DD3 É igual a 1?
$7DD5 Então é o ladrão!
$7DD8 Knock Knock3?
$7DDB É igual a 2?
$7DDD Então é o senhor Guarda!
;s $7DE1
i $7DE1
c $7DEA Guarda
@ $7DEA label=guarda
b $7EE9 FRAME: Balões do Guarda
@ $7EE9 label=frames_balao_guarda
D $7EE9 CHARS = $F641
D $7EE9 #UDGTABLE { #CALL:decode_data($F641,$7EE9) | Então está tudo bem? } TABLE#
D $7EE9 CHARS = $F701
D $7EE9 #UDGTABLE { #CALL:decode_data($F701,$7EE9) | Mostre-me os seus papeis } TABLE#
D $7EE9 CHARS = $F7C1
D $7EE9 #UDGTABLE { #CALL:decode_data($F7C1,$7EE9) | Então venha comigo } TABLE#
D $7EE9 CHARS = $F821
D $7EE9 #UDGTABLE { #CALL:decode_data($F821,$7EE9) | O.K. Pode seguir } TABLE#
b $7F00 FRAME: Limpa balão @ #R$7EE9
@ $7F00 label=frame_limpa_balao_guarda
D $7F00 CHARS = $F821
D $7F00 #UDGTABLE { #CALL:decode_data($F821,$7F00) } TABLE#
b $7F15 FRAME: Balões a falar com o guarda
@ $7F15 label=frames_balao_falar_guarda
D $7F15 CHARS = $F6A1
D $7F15 #UDGTABLE { #CALL:decode_data($F6A1,$7F15) | Está sim seu guarda } TABLE#
D $7F15 CHARS = $F761
D $7F15 #UDGTABLE { #CALL:decode_data($F761,$7F15) | Não tenho carteira! } TABLE#
b $7F2C FRAME: Limpa balão @ #R$7F15
@ $7F2C label=frame_limpa_balao_esquerdo
D $7F2C CHARS = $F6A1
D $7F2C #UDGTABLE { #CALL:decode_data($F6A1,$7F2C) } TABLE#
b $7F41 FRAME: Limpa chão
@ $7F41 label=frame_limpa_chao
D $7F41 CHARS = $F701
D $7F41 #UDGTABLE { #CALL:decode_data($F701,$7F41) } TABLE#
; @label:$7F52=chars1
b $7F52 CHARS
;t $826A
;b $8272
;t $835B
;b $835F
;t $8474
;b $8478
;t $86D5
;b $86E2
;t $870B
;b $8710
;t $8723
;b $8728
;t $8774
;b $8778
;t $87A5
;b $87A8
;t $87CC
;b $87D8
c $8800
;s $88FF
i $88FF
c $8900 Verifica se o Score é maior que o Highscore, e pede o nome ao recordista se for
@ $8900 label=compara_score_com_highscore
$8900 Le primeiros dois valores (yyXX) do score em HL
$8903 Le primeiros dois valores (yyXX) do highscore em DE
$8907 Le o primeiro valor (yXXX) do score em A
$8908 Subtrai com D - primeiro valor (XyXX) do highscore
$8909 Se der a volta (D > A - Carry = 1) sai
$890A A = (yXXX) do score
$890B Compara com D (yXXX) do highscore
$890C Se for diferente salta para #R$892F
$890F A = (XyXX) do score
$8910 Subtrai E - (XyXX) do highscore
$8911 Se der a volta (E > A - Carry = 1) sai
$8912 A = (XyXX) do score
$8913 Compara com E (XyXX) do highscore
$8914 Se for diferente salta para #R$892F
$8917 Le os segundos dois valores (XXyy) do score em HL
$891A Le os segundos dois valores (XXyy) do highscore em DE
$891E Le o terceiro valor (XXyX) do score em A
$891F Subtrai com D - terceiro valor (XXyX) do highscore
$8920 Se der a volta (D > A - Carry = 1) sai
$8921 A = (XXyX) do score
$8922 Compara com D (XXyX) do highscore
$8923 Se for diferente salta para #R$892F
$8926 A = (XXXy) do score
$8927 Subtrai com E - (XXXy) do highscore
$8928 Se der a volta (E > A - Carry = 1) sai
$8929 A = (XXXy) do score
$892A Compara com E (XXXy) do highscore
$892B Se for diferente salta para #R$892F
$892E Sai
$892F,6 Define CHARS em $3C00
$8935,6 Desenha #R$89D2
$893B Endereço do #R$89A6(recordista) em HL
$893E,3 (PRINT AT)
$8941,3 Y = 12
$8944,3 X = 0
$8947,3 INK
$894A,3 Amarelo
$894D Mete B = $20 (32) - Numero de letras permitidas
$894F,2 Guarda BC e HL na Stack
$8954,2 Tira HL e BC da Stack
$8956 Carrega ultima tecla pressionada em A
$8959,5 Se pressionou ENTER salta para #R$8967
$895F Escreve o valor de A na posicao de memoria de HL
$8960,1 Printa a letra pressionada
$8963,1 Incrementa HL
$8965,2 Decrementa B se for diferente de 0 salta para #R$894F
$8969,6 Desenha #R$8A09
$8972,3 Carrega ultima tecla pressionada em A
$8975,2 Compara com $6E - "n" em ASCII
$8979,3 Se for igual salta para #R$899D
$897C,2 Compara com $73 - "s" em ASCII
$897E,3 Se for igual salta para #R$8985
$8983,2 Se carregar noutra qualquer salta para #R$896F
$8985,6 Define com $20 - um espaço, o que faltar da #R$89A6(recordista) ate que B seja 0
$898B,12 Mete o highscore com o valor de score
$8997,5 Delay de 5
$899D,6 Desenha #R$8A29
t $89A6 Recordista do jogo
@ $89A6 label=var_recordista
b $89D2 FRAME: Novo recorde - Introduza o seu nome
@ $89D2 label=frame_record_introduza_nome
D $89D2 CHARS = $3C00
D $89D2 #UDGTABLE { #CALL:decode_data($3C00,$89D2) | Novo Recorde - Introduza o seu nome } TABLE#
b $8A09 FRAME: Esta correcto o seu nome?
@ $8A09 label=frame_esta_correcto_o_seu_nome
D $8A09 CHARS = $3C00
D $8A09 #UDGTABLE { #CALL:decode_data($3C00,$8A09) | Esta correcto o seu nome? } TABLE#
b $8A29 FRAME: Duas linhas pretas
@ $8A29 label=frame_duas_linhas
D $8A29 CHARS = $3C00
D $8A29 #UDGTABLE { #CALL:decode_data($3C00,$8A29) } TABLE#
; @label:$8A70=chars2
b $8A70 CHARS
c $9088
c $90B1
c $90D2
b $90E7 FRAME: Puta - Vaginal
@ $90E7 label=frame_puta_vaginal
D $90E7 CHARS = $EB31
D $90E7 #UDGTABLE { #CALL:decode_data($EB31,$90E7) | Parte fixa - Puta Vaginal } TABLE#
;s $9197
i $9197
b $919B FRAME: Puta - Vaginal - f1
@ $919B label=frame_puta_vaginal_1
D $919B CHARS = $EDB9
D $919B #UDGTABLE { #CALL:decode_data($EDB9,$919B) | Puta Vaginal - Frame 1 } TABLE#
;s $91DF
i $91DF
b $91E1 FRAME: Puta - Vaginal - f2
@ $91E1 label=frame_puta_vaginal_2
D $91E1 CHARS = $EDB9
D $91E1 #UDGTABLE { #CALL:decode_data($EDB9,$91E1) | Puta Vaginal - Frame 2 } TABLE#
b $921A FRAME: Balão - Venho-me haaaaaaa
@ $921A label=frame_balao_venho_me
D $921A CHARS = $EED9
D $921A #UDGTABLE { #CALL:decode_data($EED9,$921A) | Venho-me haaaaaaa } TABLE#
b $9231 FRAME: Limpa balão @ #R$921A
@ $9231 label=frame_limpa_balao_venho_me
D $9231 CHARS = $EDB9
D $9231 #UDGTABLE { #CALL:decode_data($EDB9,$9231) } TABLE#
c $9246
c $9274
c $92A3
c $92B8
c $92C1
b $92D6 FRAME: Puta - Anal
@ $92D6 label=frame_puta_anal
D $92D6 CHARS = $EF39
D $92D6 #UDGTABLE { #CALL:decode_data($EF39,$92D6) } TABLE#
i $938E
b $9392 FRAME: Puta - Anal - f1
@ $9392 label=frame_puta_anal_1
D $9392 CHARS = $F151
D $9392 #UDGTABLE { #CALL:decode_data($F151,$9392) } TABLE#
i $93C5
b $93C9 FRAME: Puta - Anal - f2
@ $93C9 label=frame_puta_anal_2
D $93C9 CHARS = $F151
D $93C9 #UDGTABLE { #CALL:decode_data($F151,$93C9) } TABLE#
i $93F8
b $93FC FRAME: Baloes puta no quarto
@ $93FC label=frame_balao_puta_quarto
D $93FC CHARS = $F201
D $93FC #UDGTABLE { #CALL:decode_data($F201,$93FC) | AAAAA... Tão grosso } TABLE#
D $93FC CHARS = $8D94
D $93FC #UDGTABLE { #CALL:decode_data($8D94,$93FC) | Então o que queres } TABLE#
D $93FC CHARS = $FD01
D $93FC #UDGTABLE { #CALL:decode_data($FD01,$93FC) | Hó Reinaldo } TABLE#
D $93FC CHARS = $85CA
D $93FC #UDGTABLE { #CALL:decode_data($85CA,$93FC) | Este não quer pagar } TABLE#
D $93FC CHARS = $8F14
D $93FC #UDGTABLE { #CALL:decode_data($8F14,$93FC) | São 1000$00 } TABLE#
b $9413 Limpa balão @ #R$93FC
@ $9413 label=frame_limpa_balao_puta_quarto
D $9413 CHARS = $F201
D $9413 #UDGTABLE { #CALL:decode_data($F201,$9413) } TABLE#
b $9428 Baloes - Heroi no quarto da Puta
E $9428 CHARS $F261 #HTML[#CALL:decode_data($F261,$9428)]
E $9428 CHARS $FBE1 #HTML[#CALL:decode_data($FBE1,$9428)]
E $9428 CHARS $FC41 #HTML[#CALL:decode_data($FC41,$9428)]
b $943F Limpa balão @ #R$9428
$943F #HTML[#CALL:decode_data($F151,$943F)]
;s $9454
i $9454
c $9455
;s $9476
i $9476
b $9479 Policia a sair - Frame 1
$9479 #HTML[#CALL:decode_data($F2C1,$9479)]
;s $94DA
i $94DA
b $94DE Policia a sair - Frame 2
$94DE #HTML[#CALL:decode_data($F2C1,$94DE)]
;s $959D
i $959D
c $959F
c $95B7
b $95C7 Policia virado para a esquerda
$95C7 #HTML[#CALL:decode_data($F4B9,$95C7)]
c $9663
b $9670 Mostrar a carteira (ao policia)
$9670 #HTML[#CALL:decode_data($F881,$9670)]
c $9695
c $96B8
c $96DF
c $96F4
b $9709 Puta - Oral
$9709 #HTML[#CALL:decode_data($F8B1,$9709)]
;s $97C4
i $97C4
b $97C8 Puta - Oral - Frame 1
$97C8 #HTML[#CALL:decode_data($FB41,$97C8)]
;s $97F6
i $97F6
b $97FA Puta - Oral - Frame 2
$97FA #HTML[#CALL:decode_data($FB41,$97FA)]
c $9826
b $9833 Puta na cama
$9833 #HTML[#CALL:decode_data($7E5A,$9833)]
c $9899
b $98A6 Reinaldo
$98A6 #HTML[#CALL:decode_data($804A,$98A6)]
c $9912
b $991F Heroi na casa da puta
$991F #HTML[#CALL:decode_data($81A2,$991F)]
;s $9998
i $9998
c $999A
b $9AAE Reinaldo a espreitar na porta
$9AAE #HTML[#CALL:decode_data($82CA,$9AAE)]
b $9ACF Balão - Cu cu
$9ACF #HTML[#CALL:decode_data($FD61,$9ACF)]
b $9AE2 Balão - Reinaldo
E $9AE2 CHARS $FDA1 #HTML[#CALL:decode_data($FDA1,$9AE2)]
E $9AE2 CHARS $862A #HTML[#CALL:decode_data($862A,$9AE2)]
b $9AF9 Reinaldo - Enrabadela
$9AF9 #HTML[#CALL:decode_data($8322,$9AF9)]
b $9BB1 Reinaldo - Enrabadela - Frame 1
$9BB1 #HTML[#CALL:decode_data($8502,$9BB1)]
b $9BE3 Reinaldo - Enrabadela - Frame 2
$9BE3 #HTML[#CALL:decode_data($8502,$9BE3)]
b $9C15 Balão - Ai que caralhinho
$9C15 #HTML[#CALL:decode_data($868A,$9C15)]
c $9C30
;s $9C3C
i $9C3C
c $9C40
b $9C4D Velha - Vergada
$9C4D #HTML[#CALL:decode_data($D899,$9C4D)]
c $9CD7
b $9CE4 Velha - Vestido levantado
$9CE4 #HTML[#CALL:decode_data($D899,$9CE4)]
c $9D7A
b $9D87 Velha - Pichota para fora
$9D87 #HTML[#CALL:decode_data($D899,$9D87)]
c $9DB1
b $9DBE Velha - Violar - Frame 1
$9DBE #HTML[#CALL:decode_data($D899,$9DBE)]
c $9DED
b $9DFA Velha - Violar - Frame 2
$9DFA #HTML[#CALL:decode_data($D899,$9DFA)]
c $9E2F
b $9E4A Velha a sair - Frame 1
$9E4A #HTML[#CALL:decode_data($D739,$9E4A)]
;s $9E8E
i $9E8E
b $9E92 Velha a sair - Frame 2
$9E92 #HTML[#CALL:decode_data($D739,$9E92)]
c $9F31
c $9F54 Velha
b $9FFF
$9FFF #HTML[#CALL:decode_data($DD21,$9FFF)]
c $A004
b $A00F
$A00F #HTML[#CALL:decode_data($DD21,$A00F)]
c $A014
c $A03A
c $A0D4
c $A100
c $A134
c $A143
b $A14C Balão - Ai tão grande
$A14C #HTML[#CALL:decode_data($DBB1,$A14C)]
b $A163 Limpa balão @ #R$A14C
$A163 #HTML[#CALL:decode_data($D899,$A163)]
b $A178
$A178 #HTML[#CALL:decode_data($99D8,$A178)]
;s $A194
i $A194
c $A195
b $A1A2
$A1A2 #HTML[#CALL:decode_data($E111,$A1A2)]
;s $A1EF
i $A1EF
c $A1F0
C $A1F0,8 Define o endereço #R$C34F a 0 chama a rotina de fadeout #R$AFD1 que usa esse valor para definir os atributos
c $A20A
;s $A214
i $A214
c $A215
b $A222 Café - Sentado
$A222 #HTML[#CALL:decode_data($DE31,$A222)]
;s $A35E
i $A35E
c $A360
b $A38B Café - Beber - Frame 1
$A38B #HTML[#CALL:decode_data($DE31,$A38B)]
;s $A3D0
i $A3D0
b $A3D2 Café - Beber - Frame 2
$A3D2 #HTML[#CALL:decode_data($DE31,$A3D2)]
c $A410
c $A416
;s $A423
i $A423
c $A425
c $A430
b $A465 Café - Mafioso - Frame 1
$A465 #HTML[#CALL:decode_data($E279,$A465)]
;s $A4A7
i $A4A7
b $A4AB Café - Mafioso - Frame 2
$A4AB #HTML[#CALL:decode_data($E279,$A4AB)]
;s $A51A
i $A51A
b $A51E Café - Mafioso - Frame 3
$A51E #HTML[#CALL:decode_data($E279,$A51E)]
;s $A586
i $A586
c $A589
c $A5B5
b $A5D6 Café - Empregado - Frame 1
$A5D6 #HTML[#CALL:decode_data($E441,$A5D6)]
;s $A620
i $A620
b $A625 Café - Empregado - Frame 2
$A625 #HTML[#CALL:decode_data($E441,$A625)]
;s $A6B3
i $A6B3
c $A6B7
c $A6FE
c $A710
b $A728 Café - Empregado a servir bebida - Frame 1
$A728 #HTML[#CALL:decode_data($E441,$A728)]
;s $A74A
i $A74A
b $A74E Café - Empregado a servir bebida - Frame 2
$A74E #HTML[#CALL:decode_data($E441,$A74E)]
c $A770
c $A799
;s $A79C
i $A79C
c $A7A0 Café
C $A9F7,5 Activar a arma!
b $AB87
c $AB88
b $ABC3 Limpa algo, não sei o que
$ABC3 #HTML[#CALL:decode_data($E279,$A74E)]
b $ABCE Balões Heroi no Café
E $ABCE #HTML[#CALL:decode_data($E659,$ABCE)]
E $ABCE #HTML[#CALL:decode_data($E6B9,$ABCE)]
E $ABCE #HTML[#CALL:decode_data($E5F9,$ABCE)]
b $ABE5 Limpa balão @ #R$ABCE
$ABE5 #HTML[#CALL:decode_data($E659,$ABE5)]
b $ABFA Baloes - Malandro no Cafe
E $ABFA CHARS $E7D9 #HTML[#CALL:decode_data($E7D9,$ABFA)]
E $ABFA CHARS $E839 #HTML[#CALL:decode_data($E839,$ABFA)]
E $ABFA CHARS $E899 #HTML[#CALL:decode_data($E899,$ABFA)]
E $ABFA CHARS $E909 #HTML[#CALL:decode_data($E909,$ABFA)]
E $ABFA CHARS $E979 #HTML[#CALL:decode_data($E979,$ABFA)]
E $ABFA CHARS $E9F9 #HTML[#CALL:decode_data($E9F9,$ABFA)]
b $AC11 Limpa balão @ #R$ABFA
$AC11 #HTML[#CALL:decode_data($E659,$AC11)]
b $AC26 Balões Empregado Café
E $AC26 #HTML[#CALL:decode_data($E779,$AC26)]
E $AC26 #HTML[#CALL:decode_data($E719,$AC26)]
b $AC3D Limpa balão @ #R$AC26
$AC3D #HTML[#CALL:decode_data($E779,$AC3D)]
b $AC52
$AC52 #HTML[#CALL:decode_data($DE31,$AC52)]
;s $AC8F
i $AC8F
c $AC90 Café (Porta)
c $ACD3
b $ACD6
;s $ACD7
i $ACD7
b $ACD8 Café - quando a porta abre
$ACD8 #HTML[#CALL:decode_data($EA59,$ACD8)]
;s $ACF4
i $ACF4
c $ACF6
b $AD05 Puta - Quarto
$AD05 #HTML[#CALL:decode_data($EAC1,$AD05)]
c $AF6B
b $AF84 Baloes - Escolher pirafo
E $AF84 CHARS $8DF4 #HTML[#CALL:decode_data($8DF4,$AF84)]
E $AF84 CHARS $8E54 #HTML[#CALL:decode_data($8E54,$AF84)]
E $AF84 CHARS $8EB4 #HTML[#CALL:decode_data($8EB4,$AF84)]
E $AF84 CHARS $FCA1 #HTML[#CALL:decode_data($FCA1,$AF84)]
b $AF9B Limpa balão @ #R$AF84
$AF9B #HTML[#CALL:decode_data($FD01,$AF9B)]
c $AFB0
c $AFB8
;s $AFC3
i $AFC3
c $AFC8 Escreve o valor de HL no ecrã até achar FF
R $AFC8 I:HL Endereço do inicio da frame
@ $AFC8 label=desenhaFrameHL
;s $AFD0
i $AFD0
c $AFD1 Limpa o ecra (genero de fade)
@ $AFD1 label=fadeOut
$AFD1,$1e Limpa o ecra a fazer SHIFT RIGHT LOGICAL aos graficos "na memoria grafica" de $4000 a $57ff
$AFEF,$11 Define os atributos a partir do endereço $5800 com o valor definido em #R$C34F
c $B001 Desenha o corpo do heroi
@ $B001 label=desenhaCorpo
$B001,6 Define HL com #R$B0A9 e desenha
$B007,$a Define $CHARS a $C250
$B011,6 Define HL com #R$B0E4 e desenha
$B017,5 Mete #R$C34E a 0
c $B01D Desenha as pernas do heroi
@ $B01D label=desenhaPernas
$B01D Le o valor de #R$C34E para A
$B020,5 Se for 0 salta para #R$B039
$B025,5 Se for 1 salta para #R$B055
$B02A,5 Se for 2 salta para #R$B071
$B02F,5 Se for 3 salta para #R$B08D
$B034,5 Se for 4 salta para #R$B039
$B039,5 Mete #R$C34E a 1
$B03E,6 Desenha #R$B0A9
$B044,10 Define CHARS a C328
$B04E,6 Desenha #R$B14C
$B054,1 Sai
$B055,5 Mete #R$C34E a 2
$B05A,6 Desenha #R$B0A9
$B060,10 Define CHARS a C420
$B06A,6 Desenha #R$B1B5
$B070,1 Sai
$B071,5 Mete #R$C34E a 3
$B076,6 Desenha #R$B0A9
$B07C,10 Define CHARS a C538
$B086,6 Desenha #R$B226
$B08C,1 Sai
$B08D,5 Mete #R$C34E a 4
$B092,6 Desenha #R$B0A9
$B098,10 Define CHARS a C638
$B0A2,6 Desenha #R$B299
$B0A8,1 Sai
b $B0A9 Frame do Torso
@ $B0A9 label=frame_heroi_torso
$B0A9 #HTML[#CALL:decode_data($C538,$B0A9)]
b $B0E4 Animacao Pernas - Frame 1
@ $B0E4 label=frame_heroi_pernas_1
$B0E4 #HTML[#CALL:decode_data($C250,$B0E4)]
b $B14C Animacao Pernas - Frame 2
@ $B14C label=frame_heroi_pernas_2
$B14C #HTML[#CALL:decode_data($C328,$B14C)]
b $B1B5 Animacao Pernas - Frame 3
@ $B1B5 label=frame_heroi_pernas_3
$B1B5 #HTML[#CALL:decode_data($C420,$B1B5)]
b $B226 Animacao Pernas - Frame 4
@ $B226 label=frame_heroi_pernas_4
$B226 #HTML[#CALL:decode_data($C538,$B226)]
b $B299 Animacao Pernas - Frame 5
@ $B299 label=frame_heroi_pernas_5
$B299 #HTML[#CALL:decode_data($C638,$B299)]
;s $B309
i $B309
c $B30A
b $B353 Entrar na porta - Frame 1
$B353 #HTML[#CALL:decode_data($C740,$B353)]
b $B3DF Entrar na porta - Frame 2
$B3DF #HTML[#CALL:decode_data($C740,$B3DF)]
c $B46C
c $B477
c $B486
;s $B48E
i $B48E
c $B48F Animação da porta a abrir
@ $B48F label=abre_a_porta
;s $B4EF
i $B4EF
c $B4F1 Animação da porta a fechar
@ $B4F1 label=fecha_a_porta
b $B551 Porta a abrir - Frame 1
@ $B551 label=frame_porta_1
$B551 #HTML[#CALL:decode_data($CA7A,$B551)]
b $B55F Porta a abrir - Frame 2
@ $B55F label=frame_porta_2
$B55F #HTML[#CALL:decode_data($CA7A,$B55F)]
b $B56B Porta a abrir - Frame 3
@ $B56B label=frame_porta_3
$B56B #HTML[#CALL:decode_data($CA7A,$B56B)]
c $B579
c $B583
c $B594
c $B59C Animacao da puta a sair
@ $B59C label=puta_sai_porta
$B59C,$a CHARS = $C8E0
$B5A6 Endereço da frame #R$B5F0
$B5A9 Desenha a frame
$B5AC Delay
$B5AF Endereço da frame #R$B688
$B5B2,3 Desenha a frame
c $B5B6 Puta entra e porta é limpa
@ $B5B6 label=puta_entra_porta
$B5B6,$a CHARS = $C8E0
$B5C0 Frame @ #R$B5F0 - Puta a entrar
$B5C3,3 Desenha a frame
$B5C6,3 Delay
$B5C9,$16 Limpa a porta - Imprime 5 caracteres em branco desde a posicao x = 10 y = 2 até x = 10 y = 16 #HTML(<br>)O que é printado é: 16 02 0A 80 80 80 80 80 16 03 0A 80 80 80 80 80 16 04 0A 80 80 80 80 80 16 05 0A 80 80 80 80 80 16 06 0A 80 80 80 80 80 16 07 0A 80 80 80 80 80 16 08 0A 80 80 80 80 80 16 09 0A 80 80 80 80 80 16 0A 0A 80 80 80 80 80 16 0B 0A 80 80 80 80 80 16 0C 0A 80 80 80 80 80 16 0D 0A 80 80 80 80 80 16 0E 0A 80 80 80 80 80 16 0F 0A 80 80 80 80 80 16 10 0A 80 80 80 80 80
c $B5E0 Imprime um espaço o numero de vezes que estiver em B
@ $B5E0 label=imprime_espacos_em_B
c $B5E6 Delay conta de $FFFF ate 0
@ $B5E6 label=delay_puta
b $B5F0 Puta a sair - Frame 1
@ $B5F0 label=frame_puta_sair_1
$B5F0 #HTML[#CALL:decode_data($C8E0,$B5F0)]
b $B688 Puta a sair - Frame 2
@ $B688 label=frame_puta_sair_2
$B688 #HTML[#CALL:decode_data($C8E0,$B688)]
c $B721 Random que define quem vai aparecer na porta - 1
@ $B721 label=random1
$B721 Carrega o valor do endereço #R$C34D (?) em A
$B724 Incrementa
$B725 Compara com $07
$B727 Se for igual - #R$B734
$B72A Guarda o valor de A no endereço #R$C34D (?)
$B72D Copia o valor de A para B
$B731,2 Decrementa B, se B > 0 salta para o CALL acima
c $B734 Define A = $01
@ $B734 label=define_A_a_0
c $B737 Define o #R$C346 a 0
$B737,9 Mete a #R$C346 a 0
$B740,4 Retira 4 valores da stack e mete em BC
c $B745
;s $B753
i $B753
c $B755
c $B766
;s $B76A
i $B76A
c $B76D Paradise Café
c $B775 Espera que se pressione uma tecla e guarda em #R$C34C
@ $B775 label=espera_por_keypress
$B777 Endereço da ultima tecla pressionada
$B77A Mete a 00 (limpar?)
$B77C Compara a ultima tecla pressionada a A (0)
$B77D,2 Se for igual volta a comparar
$B780,3 Guarda a tecla pressionada em #R$C34C
;s $B784
i $B784
c $B785 Desenha o chão a linha de highscore e o azul do fundo do ecrã
@ $B785 label=desenha_chao
$B785,8 Define atributos para o fadeOut a $10 e chama-o
$B78D,8 Desenha o chão (a $18 - 00|011|000 - roxo). $5A20 é um endereço de atributos de cor na memoria
$B795,6 Desenha #R$B7A4
$B79B,8 Desenha fundo do ecrã (a $08 - 00|001|000 - azul). $5AA0 é um endereço de atributos de cor na memoria
b $B7A4 Linha do Highscore
@ $B7A4 label=frame_linha_highscore
$B7A4 #HTML[#CALL:decode_data($3C00,$B7A4)]
c $B7CC Preenche desde (HL) até (HL+$60) o valor em A
@ $B7CC label=prenche_atributos
$B7CC,2 Numero de vezes que vai executar
$B7CE,1 (HL) = A
$B7CF,1 HL+1
$B7D0,2 B--; Se !0 salta
c $B7D3 Chama a rotina #R$B7E9 com $5080, 5180, $5280 .. $5780
@ $B7D3 label=scrolla_highscore
$B7D3 HL = $5080
$B7D6 C = $8
$B7D8,3 Guarda o valor de HL em #R$B7E6
$B7DE Guarda o valor de #R$B7E6 em HL
$B7E1 Incrementa H
$B7E2 Decrementa C
$B7E3 Se C != 0 salta para #R$B7D8
$B7E5 Sai
b $B7E6 Variavel temporaria usada para guardar o endereço inicial da memoria grafica ao scrollar
@ $B7E6 label=tmpScroll1
$B7E6 Usado nas rotinas #R$B7D3 e #R$B7E9
b $B7E8 Variavel temporaria usada para guardar o valor do grafico tudo a esquerda para ser passado tudo pra direita
@ $B7E8 label=tmpScroll2
$B7E8 Usado na rotina #R$B7E9
c $B7E9 Scrolla da esquerda pra direita a partir do valor guardado em #R$B7E6
@ $B7E9 label=scrolla_highscore_2
$B7E9 Le o valor no endereço #R$B7E6 em HL
$B7EC B = $1F (31) Numero de vezes a correr a rotina
$B7EE D = H
$B7EF E = L
$B7F0 A = (HL)
$B7F1 Guarda o valor de A em #R$B7E8 (Primeira coluna para passar pra direita)
$B7F4 Copia o valor de (HL+1) para (HL)
; $B7F4 Incrementa HL
; $B7F5 A = (HL)
; $B7F6 Le para (DE) o valor de A
; $B7F7 Incrementa DE
$B7F8 Decrementa B, se B != 0 salta para #R$B7F4
$B7FA Guarda o valor de #R$B7E8 em A
$B7FD (DE) = A
$B7FE Sai
;s $B7FF
i $B7FF
c $B800 Vira a cara para a puta
@ $B800 label=vira_cara_para_puta
$B800,$a CHARS = $CAEA
$B80A Endereço da frame #R$B811
$B80D,3 Desenha a frame
b $B811 Cara do gajo a olhar pra puta
@ $B811 label=frame_vira_cara_para_puta
B $B811 #HTML[#CALL:decode_data($CAEA,$B811)]
c $B82E Heroi vira a cara para o ecrã
@ $B82E label=vira_cara_para_frente
$B82E O endereço $5C36 CHARS define onde a Font(?) começa
$B837 CHARS = $CE2A
$B838 Endereço da frame - #R$B83F
$B83B Desenha a frame
b $B83F Cara virada para o ecrã
@ $B83F label=frame_vira_cara_para_frente
B $B83F #HTML[#CALL:decode_data($CE2A,$B83F)]
;s $B858
i $B858
c $B85A Random que define quem vai aparecer na porta - 2
@ $B85A label=random_2
$B85A Carrega o valor do endereço #R$C34A (?) em A
$B85D Incrementa
$B85E Compara com $04
$B860 Se for igual chama #R$B867 que mete A a $00
$B863,3 Guarda o valor de A no endereço #R$C34A (?)
c $B867 Define A = $00
@ $B867 label=define_A_a_0_
c $B86A Puta
@ $B86A label=puta
$B86A,3 Abre a porta
$B86D,3 Vira a cara para a puta
$B870,3 Delay
$B873,3 Sai da porta
$B876,6 Randomize crap!
$B881,3 CHARS = $CB2A - Ola nao queres entrar?
$B884,5 Se random2 == $01
$B889 CHARS = $CBEA - Queres vir comigo?
$B88C,5 Se random2 == $02
$B891,3 CHARS = $CCAA - Queres provar?
$B894 Endereço da frame - #R$B8B1
$B897,3 Desenha a frame
$B89A,3 Espera por input do utilizador
$B8A0 Foi o "s" ?
$B8A5 Foi o "n" ?
$B8A7 Dizer que não à puta
$B8AA Foi o "q" ?
$B8AC,3 Dizer que nao à puta
$B8AF Se não foi nenhuma delas volta a pedir input
b $B8B1 Frases da puta na rua
@ $B8B1 label=frame_balao_puta_rua
E $B8B1 CHARS $CB2A #HTML[#CALL:decode_data($CB2A,$B8B1)]
E $B8B1 CHARS $CBEA #HTML[#CALL:decode_data($CBEA,$B8B1)]
E $B8B1 CHARS $CCAA #HTML[#CALL:decode_data($CCAA,$B8B1)]
c $B8E9
$B8E9,$a CHARS = $CD6A
$B8F3 Frame @ #R$B811 - Virar a cara
$B8F6,3 Desenha a frame
$B8F9,6 Delay
$B902,3 Delay
$B90B,3 Fecha a porta
$B90E,3 Delay
c $B914
c $B93C Recusar a puta
@ $B93C label=recusar_puta
b $B967 Balão - Maricas
@ $B967 label=frame_balao_maricas
$B967 #HTML[#CALL:decode_data($CE59,$B967)]
c $B97E CHARS = $CB2A
@ $B97E label=chars_CB2A
$B97e,10 CHARS = $CB2A
c $B989 CHARS = $CBEA
@ $B989 label=chars_CBEA
$B98C,3 CHARS = DE
c $B994 CHARS = $CCAA
@ $B994 label=chars_CCAA
c $B99F Delay conta de $FFFF ate 0
@ $B99F label=delay_ffff_ate_0
;s $B9A9
i $B9A9
c $B9AF Imprime Score e Dinheiro
@ $B9AF label=desenhaScoreDinheiro
$B9AF,$a $CHARS = $3C00
$B9B9,6 Desenha frame #R$B9F1
$B9BF,3 Carrega os dois primeiros caracteres do SCORE para HL
$B9C2,2 Imprime o primeiro caracter
$B9C4,2 Imprime o segundo caracter
$B9C6,3 Carrega o terceiro a quarto caracter do SCORE para HL
$B9C9,2 Imprime o terceiro caracter
$B9CB,2 Imprime o quarto caracter
$B9CD,6 Imprime dois espaços
$B9D3,6 Desenha frame #R$BA00
$B9D9,3 Carrega os dois primeiros caracteres do DINHEIRO para HL
$B9DC,2 Imprime o primeiro caracter
$B9DE,2 Imprime o segundo caracter
$B9E0,3 Carrega o terceiro a quarto caracter do DINHEIRO para HL
$B9E3,2 Imprime o terceiro caracter
$B9E5,2 Imprime o quarto caracter
$B9E7,6 Imprime dois espaços
$B9ED,3 Imprime um cifrao
b $B9F1 SCORE=
@ $B9F1 label=frame_score
$B9F1 #HTML[#CALL:decode_data($3C00,$B9F1)]
b $BA00 DINHEIRO:
@ $BA00 label=frame_dinheiro
$BA00 #HTML[#CALL:decode_data($3C00,$BA00)]
c $BA0D
c $BA21
c $BA2C
c $BA40
c $BA4B
c $BA4E
c $BA62
c $BA6D
c $BA81
c $BA8C
c $BA8F Aceitar comprar algo no café
c $BAA3
c $BAAE
c $BAC2
;s $BACD
i $BACD
c $BAD0 Trata do 3º valor de #R$C346
$BAD0,3 Copia o 4º e 3º valores do #R$C346 para HL
$BAD3,2 Copia o 3º valor para A e decrementa 1
$BAD5,2 Compara com $2F (valor ASCII '/' logo atras do 0)
$BAD7,3 Se for, salta para #R$BAEF (Verifica se o 4 º valor da pontuacao e' < 0)
$BADA,1 Copia o valor de A para L
$BADB,3 Escreve o 4º e 3º valor de #R$C346 a partir de HL
c $BAE4 Trata do 4º valor de #R$C346
$BAE4,2 Copia o valor de H para A e decrementa 1
$BAE6,2 Compara com $2F (valor ASCII '/' logo atras do 0)
$BAE8,3 Se for, salta para #R$BAEF (Verifica se o 1º valor da pontuacao e' < 0)
$BAEB,1 Copia o valor de A para H
$BAEC,2 Define o valor de A a $39 - '9' em ASCII
c $BAEF Trata do 1º valor de #R$C346
$BAEF,5 Copia o 1º valor do #R$C346 para A e decrementa 1
$BAF4,2 Compara com $2F (valor ASCII '/' logo atras do 0)
$BAF6,3 Se for, salta para #R$BB03 (Verifica se o 2º valor da pontuacao e' < 0)
$BAF9,1 Copia o valor de A para H
$BAFA,3 Copia o valor de HL para #R$C346
$BAFD,3 Copia para HL o quarto e terceiro valor do #R$C346
$BB00,2 Define A com $39 (valor ASCII '9')
c $BB03 Trata do 2º valor de #R$C346
$BB03,2 Copia o valor de H para A e decrementa 1
$BB05,2 Compara com $2F (valor ASCII '/' logo atras do 0)
$BB07,3 Se for, salta para #R$B737 (Mete a pontuacao a 0)
$BB0A,1 Copia o valor de A para H
$BB0B,2 Define o valor de A a $39 - '9' em ASCII
;s $BB0E
i $BB0E
; Animação do ladrão a saír da porta
; 1º Metade do corpo
; 2º Corpo todo virado pra frente
c $BB11 Ladrão: Animação a saír
@ $BB11 label=ladrao_sai_porta
C $BB11 O endereço $5C36 CHARS define onde a Font(?) começa
C $BB1A CHARS = $CEB9
C $BB1B Endereço da frame 1 - #R$BB38
C $BB1E Desenha a frame
C $BB21 Delay
C $BB24 Endereço da frame 2 - #R$BBA1
C $BB27 Desenha a frame
C $BB2A Delay
c $BB2E Delay
@ $BB2E label=delay_ladrao
E $BB2E Conta desde FFF0 até 0000
C $BB2E C = F0
C $BB30 B = 00
C $BB32 Decrementa B, se nao for 0 salta para si proprio
C $BB34 Decrementa C
C $BB35 Se nao for 0, salta para $BB30
; Frame
b $BB38 Ladrão a sair - Frame 1
@ $BB38 label=frame_ladrao_sair_1
B $BB38 #HTML[#CALL:decode_data($CEB9,$BB38)]
; Frame
b $BBA1 Ladrão a sair - Frame 2
@ $BBA1 label=frame_ladrao_sair_2
;B $BBA1 #CALL:comment_frame($CEB9,$BBA1)
B $BBA1 #HTML[#CALL:decode_data($CEB9,$BBA1)]
;s $BC67
i $BC67
; Animação do ladrão a virar-se para a esquerda
c $BC6A Ladrão: Virado para a esquerda
@ $BC6A label=ladrao_virar_esquerda
C $BC73 CHARS = $D089
C $BC74 Endereço da frame - #R$BC7B
C $BC77 Desenha a frame
; Frame
b $BC7B Ladrão virado para a esquerda - Frame
@ $BC7B label=frame_ladrao_esquerda
B $BC7B #HTML[#CALL:decode_data($D089,$BC7B)]
c $BD0C Define o valor de DE em $5C36 (Endereço CHARS)
R $BD0C I:DE Valor para ser definido em CHARS
@ $BD0C label=de_to_chars
c $BD15
b $BD22 Ladrão no chão
@ $BD22 label=frame_ladrao_chao
B $BD22 #HTML[#CALL:decode_data($D1F1,$BD22)]
;s $BD94
i $BD94
c $BD95
;s $BD9F
i $BD9F
c $BDA0
c $BDBF Ladrão: animação a entrar na porta
@ $BDBF label=ladrao_entra_porta
c $BDDE
b $BDE8 Ladrão a entrar na porta - frame 1
@ $BDE8 label=frame_ladrao_entrar_1
B $BDE8 #HTML[#CALL:decode_data($C740,$BDE8)]
b $BE65 Ladrão a entrar na porta - frame 2
@ $BE65 label=frame_ladrao_entrar_2
B $BE65 #HTML[#CALL:decode_data($C740,$BE65)]
c $BEC5
c $BEDC Saca a pistola @ #R$BEE9
@ $BEDC label=saca_a_pistola
b $BEE9 Frame - Sacar a pistola
@ $BEE9 label=frame_saca_pistola
B $BEE9 #HTML[#CALL:decode_data($D409,$BEE9)]
; Rotina principal do ladrão
c $BF17 Ladrão
@ $BF17 label=ladrao
$BF17,3 Abre a porta
$BF1A,5 Define a "LAST K" last pressed key = 00 (é para limpar IMEO)
$BF1F Sai da porta
$BF22 Vira-se para a esquerda
$BF25 Endereço da frame - #R$BFE0
$BF28 Desenha a frame
$BF2B Randomizer
$BF2E,6 Delay com a duracao do valor em A
$BF34,8 $5C08 Se a ultima tecla carregada foi "0" entao é para disparar!
$BF3C Tem lume?
$BF66 Saca da pistola - Passe a carteira
$BF8B Entra na porta
$BF93 Fecha a porta
$BF9E Ve se tem pistola(????)
$BFA6 Não tens pistola?
$BFC4 Merda
b $BFCF
B $BFCF #HTML[#CALL:decode_data($D4B9,$BFCF)]
b $BFE0 Animação Ladrão (???)
B $BFE0 #HTML[#CALL:decode_data($D089,$BFE0)]
b $BFE7 Ladrão - Saca a pistola
$BFE7 #HTML[#CALL:decode_data($D389,$BFE7)]
b $BFFA Ladrão - Tem lume? - Frame 1
$BFFA #HTML[#CALL:decode_data($D3A9,$BFFA)]
b $C00F Varios Balões
@ $C00F label=frame_balao_coluna_17
$C00F,3 AT 2,17
$C012,2 INK=2 (Vermelho)
$C014,2 PAPER=7 (Branco)
$C016,6 CHARS $20 até $25
$C01C,3 AT 3,17
$C01F,6 CHARS $26 até $2B
$C025,1 END
E $C00F Ladrão - "Tem lume?" (CHARS=D519)
E $C00F #HTML[#CALL:decode_data($D519,$C00F)]
E $C00F Velha - "Óooh meu deus" (CHARS=DB51)
E $C00F #HTML[#CALL:decode_data($DB51,$C00F)]
E $C00F Velha - "Esta merece 100 pontos" (CHARS=DC11)
E $C00F #HTML[#CALL:decode_data($DC11,$C00F)]
E $C00F Velha - "Só tenho 100$00" (CHARS=DD21)
E $C00F #HTML[#CALL:decode_data($DD21,$C00F)]
b $C026 Limpa balões @ #R$C00F
@ $C026 label=frame_limpa_balao_coluna_17
$C026,3 AT 2,17
$C029,2 PAPER=2 (Vermelho)
$C02B,6 $80 seis vezes
$C031,3 AT 3,17
$C034,6 $80 seis vezes
$C03A,1 END
E $C026 (CHARS=DD21)
E $C026 #HTML[#CALL:decode_data($D6E9,$C026)]
b $C03B Balão - Não tenho pistola
@ $C03B label=frame_balao_nao_tenho_pistola
$C03B,3 AT 1,1
$C03E,2 INK=2 (Vermelho)
$C040,2 PAPER=7 (Branco)
$C042,6 CHARS $20 até $25
$C048,3 AT 2,1
$C04B,6 CHARS $26 até $2B
$C051,1 END
E $C03B (CHARS=D689)
E $C03B #HTML[#CALL:decode_data($D689,$C03B)]
b $C052 Limpa balão @ #R$C03B
$C052 #HTML[#CALL:decode_data($D689,$C052)]
b $C067 Balão - Não fumo
$C067 #HTML[#CALL:decode_data($D6E9,$C067)]
b $C07C Balão - Mãezinha
$C07C #HTML[#CALL:decode_data($D5D9,$C07C)]
b $C093 Ladrão - Tem lume? - Frame 2
$C093 #HTML[#CALL:decode_data($D3A9,$C093)]
b $C0B3 Balão - Eu só queria lume!
$C0B3 #HTML[#CALL:decode_data($D579,$C0B3)]
c $C0F8
c $C192
$C192,6 Imprime #R$C026 - Limpa balao lado direito
$C198,6 Imprime #R$C052 - Limpa balao lado esquerdo
$C1A6,5 Faz um delay de 3
$C1AB,6 CHARS = $D579
$C1B1,6 Imprime #R$C0B3 - Ladrao: Eu só queria lume !
$C1B7,5 Faz um delay de 11
; Rotina executada quando se tenta disparar contra o ladrão
c $C1C2 Disparar contra o ladrão
$C1C2,8 Se não tiver pistola chama #R$C23B
$C1E7,3 Saca a pistola para fora!
$C1EA,5 Delay com a duracao do valor em A
c $C23B Não tenho pistola
@ $C23B label=nao_tenho_pistola
$C23B Vira a cara para o ecrã #R$B83F
$C23E,$c Balão - Não tenho pistola, #R$C03B
$C24A,5 Delay com a duracao do valor em A
$C24F,6 Esconde o balão #R$C052
;s $C258
i $C258
c $C259 Delay
R $C259 I:A Numero de vezes que a rotina vai correr
@ $C259 label=delay_em_A
N $C259 A rotina corre o numero de vezes que estiver em A
$C259 C = 0
N $C25B Inicio Loop B
$C25B B = 0
$C25D Decrementa B até ser 0
N $C25F Fim Loop B
$C25F Decrementa C
$C260 Se C <> 0 salta para o loop B
$C262 Decrementa A
$C263,2 Se A <> 0 corre do inicio
c $C266 Chama o #R$B001
@ $C266 label=chama_B001
c $C26A Faz um fadeOut a azul
@ $C26A label=fade_out_azul
;s $C273
i $C273
c $C27A Tentativa de venda de algo no café
D $C27A Seja a arma, droga ou a conta
D $C27A Provavelmente define alguma variavel, pq é executado antes de mostrar o preço
$C29D Mete o preço a 1000$00
;s $C2A9
i $C2A9
c $C2AA Desenha a despesa
@ $C2AA label=desenha_despesa
$C2AA,6 Define CHARS a $3C00
$C2B0,6 Imprime a frame #R$C2CE
$C2B6,4 Imprime o 1º caracter da despesa - #R$C338 + 1
$C2BA,4 Imprime o 2º caracter da despesa - #R$C338
$C2BE,6 Imprime dois 0 (zeros)
$C2C4,3 Imprime um $ (cifrao)
$C2C7,6 Imprime dois 0 (zeros)
b $C2CE Frame Despesa
@ $C2CE label=frame_despesa
$C2CE #HTML[#CALL:decode_data($3C00,$C2CE)]
;s $C2DE
i $C2DE
c $C2DF Desenha o Highscore
@ $C2DF label=desenha_highscore
b $C302 HISCORE =
@ $C302 label=frame_highscore
$C302 #HTML[#CALL:decode_data($3C00,$C302)]
;s $C314
i $C314
b $C336
b $C337 Inventorio: Droga
@ $C337 label=var_inventario_droga
b $C338 Despesa no cafe
@ $C338 label=var_despesa_no_cafe
b $C33A
b $C33B
b $C33C Inventorio: Carteira
@ $C33C label=var_inventario_carteira
b $C33D Inventorio: Arma
@ $C33D label=var_inventario_arma
b $C33E Dinheiro
@ $C33E label=var_dinheiro
b $C342 Highscore
@ $C342 label=var_highscore
D $C342 O valor inicial é 0005 que passa a 0050 porque se tem de trocar a ordem dos bytes
D $C342 (no jogo aparece 005000 mas os ultimos dois zeros sao fixos)
D $C342 Para um highscore de 1234|00 tinha de estar 2143 ou seja $32 $31 $34 $33
b $C346 Score
@ $C346 label=var_score
D $C346 Quatro bytes ASCII do Spectrum com a ordem trocada
D $C346 Ver mais em #R$C342(highscore)
b $C34A
b $C34B Posicao da porta
@ $C34B label=var_posicao_da_porta
$C34B A posicao da vai de: f8 - 09 - 1f. 09 é quando esta em posicao para ser "aberta"
b $C34C Ultima tecla pressionada
@ $C34C label=var_ultima_tecla_pressionada
b $C34D
b $C34E Frame actual da animacao das pernas - Usado em #R$B01D
@ $C34E label=var_pernas_frame_actual
b $C34F Atributos usados em #R$AFD1
@ $C34F label=var_atributos_fade_out
; @label:$C350=chars3
b $C350 CHARS