
;*****************************************************************************************************************
;                                                     Figuras                                                    *
;*****************************************************************************************************************

tankD                                db 'Imagens/TANqueD.dat', 0
tankD_pal                            db 'Imagens/Painel1.pal', 0;'Imagens/TANqueD.pal', 0
tankE                                db 'Imagens/TANqueE.dat', 0
tankC                                db 'Imagens/TANqueC.dat', 0
tankB                                db 'Imagens/TANqueB.dat', 0

tankD2                               db 'Imagens/TANque2D.dat', 0
tankD2_pal                           db 'Imagens/Painel1.pal', 0
tankE2                               db 'Imagens/TANque2E.dat', 0
tankC2                               db 'Imagens/TANque2C.dat', 0
tankB2                               db 'Imagens/TANque2B.dat', 0

bala                                 db 'Imagens/BALA9.dat', 0
bala_pal                             db 'Imagens/Painel1.pal', 0;'Imagens/BALA9.pal', 0
balaVert                             db 'Imagens/BALAVERT.dat',0
balaVert_pal                         db 'Imagens/Painel1.pal', 0

painel                               db 'Imagens/Painel1.dat', 0
painel_pal                           db 'Imagens/Painel1.pal', 0

fase2                                db 'Imagens/fase1.dat', 0
fase2_pal                            db 'Imagens/fase1.pal', 0

piscaE                               db 'Imagens/piscaE.dat', 0
piscaD                               db 'Imagens/piscaD.dat', 0
piscaC                               db 'Imagens/piscaC.dat', 0
piscaB                               db 'Imagens/piscaB.dat', 0

piscCamC                             db 'Imagens/piscCamC.dat', 0
piscCamB                             db 'Imagens/piscCamB.dat', 0
piscCamE                             db 'Imagens/piscCamE.dat', 0
piscCamD                             db 'Imagens/piscCamD.dat', 0

mascara                              db 'Imagens/mascara.dat', 0
mascara_pal                          db 'Imagens/mascara.pal', 0

caminhaoD                             db 'Imagens/caminhPD.dat', 0
caminhaoB                             db 'Imagens/caminhPB.dat', 0
caminhaoE                             db 'Imagens/caminhPE.dat', 0
caminhaoC                             db 'Imagens/caminhPC.dat', 0

caminhao2D                             db 'Imagens/caminhBD.dat', 0
caminhao2B                             db 'Imagens/caminhBB.dat', 0
caminhao2E                             db 'Imagens/caminhBE.dat', 0
caminhao2C                             db 'Imagens/caminhBC.dat', 0

pontoX                               db 'Imagens/pontoX.dat', 0
posto                                db 'Imagens/posto.dat', 0

foto                                 db 'Imagens/fot.dat', 0
bino                                 db 'Imagens/bino.dat',0
tiros                                db 'Imagens/tiro.dat',0
icone                                db 'Imagens/icone.dat', 0
fogo                                 db 'Imagens/fogo.dat', 0
fogo2                                db 'Imagens/fogo2.dat', 0
fogo3                                db 'Imagens/fogo3.dat', 0
fogo0                                db 'Imagens/fogo0.dat', 0

estrela                              db 'Imagens/estrela.dat', 0

masc2                                db 'Imagens/masc2.dat', 0
masc3                                db 'Imagens/masc3.dat', 0

mascF1                               db 'Imagens/mascF1.dat', 0
m2Item                               db 'Imagens/m2Item.dat', 0


vitoria                               db "Imagens\VITORIA.dat", 0
;*****************************************************************************************************************
;                                                     Menus                                                      *
;*****************************************************************************************************************

menu_jogar_dat                       db "Imagens\MENU1.dat", 0
menu_pal                             db "Imagens\MENU1.pal", 0        ;paleta unica para os menus.
menu_recordes_dat                    db "Imagens\MENU2.dat", 0
menu_ajuda_dat                       db "Imagens\MENU3.dat", 0
menu_creditos_dat                    db "Imagens\MENU4.dat", 0
menu_sair_dat                        db "Imagens\MENU5.dat", 0
tela_recordes_dat                    db "Imagens\RECORDES.dat", 0
tela_recordes_pal                    db "Imagens\RECORDES.pal", 0
tela_ajuda_dat                       db "Imagens\AJUDA.dat", 0
tela_ajuda_pal                       db "Imagens\AJUDA.pal", 0
tela_creditos_dat                    db "Imagens\CREDITOS.dat", 0
tela_creditos_pal                    db "Imagens\CREDITOS.pal", 0
tela_sair1_dat                       db "Imagens\SAIR1.dat", 0
tela_sair1_pal                       db "Imagens\SAIR1.pal", 0


confro1                              db 'Imagens/confro0.dat', 0
confro0                              db 'Imagens/confro1.dat', 0
confro2                              db 'Imagens/confro2.dat', 0
confro3                              db 'Imagens/confro3.dat', 0
confro4                              db 'Imagens/confro4.dat', 0
confro5                              db 'Imagens/confro5.dat', 0
confro6                              db 'Imagens/confro6.dat', 0
confro7                              db 'Imagens/confro7.dat', 0
confro8                              db 'Imagens/confro8.dat', 0
confro9                              db 'Imagens/confro9.dat', 0
confro10                             db 'Imagens/confro10.dat', 0
confro11                             db 'Imagens/confro11.dat', 0
confro12                             db 'Imagens/confro12.dat', 0
confro13                             db 'Imagens/confro13.dat', 0


confro21                              db 'Imagens/confro20.dat', 0
confro20                              db 'Imagens/confro21.dat', 0
confro22                              db 'Imagens/confro22.dat', 0
confro23                              db 'Imagens/confro23.dat', 0
confro24                              db 'Imagens/confro24.dat', 0
confro25                              db 'Imagens/confro25.dat', 0
confro26                              db 'Imagens/confro26.dat', 0
confro27                              db 'Imagens/confro27.dat', 0
confro28                              db 'Imagens/confro28.dat', 0
confro29                              db 'Imagens/confro29.dat', 0
confro210                             db 'Imagens/confr210.dat', 0
confro211                             db 'Imagens/confr211.dat', 0
confro212                             db 'Imagens/confr212.dat', 0

confro31                              db 'Imagens/confro30.dat', 0
confro30                              db 'Imagens/confro31.dat', 0
confro32                              db 'Imagens/confro32.dat', 0
confro33                              db 'Imagens/confro33.dat', 0
confro34                              db 'Imagens/confro34.dat', 0
confro35                              db 'Imagens/confro35.dat', 0
confro36                              db 'Imagens/confro36.dat', 0
confro37                              db 'Imagens/confro37.dat', 0
confro38                              db 'Imagens/confro38.dat', 0
confro39                              db 'Imagens/confro39.dat', 0
confro310                             db 'Imagens/confr310.dat', 0
confro311                             db 'Imagens/confr311.dat', 0
confro312                             db 'Imagens/confr312.dat', 0
;confro213                             db 'Imagens/confro13.dat', 0


intervalo1_dat                        db 'Imagens/briga.dat', 0
intervalo1_pal                        db 'Imagens/briga.pal', 0
intervalo2_dat                        db 'Imagens/briga2.dat', 0
intervalo2_pal                        db 'Imagens/briga2.pal', 0


;*****************************************************************************************************************
;                                               Dimensões das Figuras                                            *
;*****************************************************************************************************************

tank_comprimento        dw 0Eh              ;O valor tem que ser colocado em hexa
tank_largura            dw 10h
bala_comprimento        dw 1h
bala_largura            dw 2h
item_comprimento        dw 0ah            ;para teste (vida)
item_largura            dw 0ah

;******************************************************************************************
;                                        Posições dos tanques
;******************************************************************************************

posX_tank               dw 0                          ;coordenada X do tank1
posY_tank               dw 0                          ;coordenada Y do tank1
posX_tank_antiga        dw 0
posY_tank_antiga        dw 0
posX_tank2              dw 0                          ;coordenada X do tank2
posY_tank2              dw 0                          ;coordenada Y do tank2
posX_tank2_antiga       dw 0
posY_tank2_antiga       dw 0

;*****************************************************************************************
;                                       Posições das balas
;*****************************************************************************************

posX_bala               dw 0                          ;bala tanque1
posY_bala               dw 0
posX_bala_antiga        dw 0
posY_bala_antiga        dw 0
posX_bala2_antiga       dw 0
posY_bala2_antiga       dw 0
posX_bala2              dw 0                          ;bala tanque2
posY_bala2              dw 0

;*****************************************************************************************
;                                       Outras Variáveis
;*****************************************************************************************
posX_item               dw 0
posY_item               dw 0
colidiu_item            dw 0
posX_item2              dw 0
posY_item2              dw 0
colidiu_item2           dw 0

contBala                dw 0

direcao                 dw 3              ;direcao do tank1. 1=cima/2=baixo/3=direita/4=esquerda ;andar :
direcao2                dw 4              ;direcao do tank2. 1=cima/2=baixo/3=direita/4=esquerda ;andar :
espera                  db 1

tiroPress               dw 0              ;pra saber se a tecla do tiro está pressionada
direcaoBala             dw 0
direcaoBala2            dw 0
naoImprimir             dw 0            ;se for 1 ocorreu colisão
naoImprimirBala1        dw 0
naoImprimirBala2        dw 0

vidasTank2              dw 3     ;contador das vidas do tanque 2
vidasTank               dw 3     ;contador das cidas do tanque 1

balasTank2              dw 10    ; contador das balas do tanque 2
balasTank               dw 10    ; contador das balas do tanque 1
acabouBalas             dw 0

acertou                 dw 0     ;quando o tanque1 é atingido vira 1
acertou2                dw 0     ; quando o tanque2 é atingido vira 1

explodiu                dw 0   ;1 para o tanque1, 2 para o tanque 2 e 3 para os dois tanques
explosaoTank1           dw 0 ; contador das explosões. Varia de 0 à 3
explosaoTank2           dw 0 ; contador das explosões. Varia de 0 à 3


seed2                  dw ?


apareceu_item           dw 0
apareceu_item2           dw 0

tempo_nao_atira         dw 0
tempo_nao_atira2        dw 0
nao_atira               dw 0
nao_atira2              dw 0

tank1_item1             dw 0
vamos                   dw 0
vamos2                  dw 0
vamos3                  dw 0
vamos4                  dw 0

ehTank1                 dw 0                ;0 = caminhao / 1 = tanque
ehTank2                 dw 0

confrontos               dw 0
confrontos2              dw 0
confrontos3              dw 0
tempoConfrontos           dw 0
contEstrelas              dw 0
contadorVidas1            dw 0
contadorVidas2            dw 0
boom                     db 0               ;1 = alguem explodiiu

vitoriasPedro            db 0               ;guarda o numero de vitorias de pedro
vitoriasBino             db 0               ;guarda o numero de vitorias de bino
alguemVenceu             db 0               ;0 = pedro / 1 = bino
;*****************************************************************************************************************
;                                                     Buffers                                                    *
;*****************************************************************************************************************

;O Tamanho do buffer precisa ter o mesmo tamanho do arquivo.dat
buffer_tankB db 224 dup (?)
buffer_tankC db 224 dup (?)
buffer_tankD db 224 dup (?)
buffer_tankE db 224 dup (?)
buffer_tank2B db 224 dup (?)
buffer_tank2C db 224 dup (?)
buffer_tank2D db 224 dup (?)
buffer_tank2E db 224 dup (?)
buffer_bala db 4 dup (?)
buffer_balaVert db 2 dup (?)

buffer_fot db 288 dup(?)
buffer_bino db 256 dup(?)
buffer_tiro db 10 dup(?)
buffer_icone db 120 dup(?)
buffer_fogo db 256 dup(?)
buffer_fogo0 db 182 dup(?)
buffer_fogo2 db 342 dup(?)
buffer_fogo3 db 462 dup(?)

buffer_confronto   db 4144 dup (?)
buffer_confronto2   db 4200 dup (?)
buffer_confronto3   db 4200 dup (?)

buffer_pontoX db 840 dup (?)
buffer_posto  db 4680 dup (?)

buffer_caminhaoD db 224 dup(?)
buffer_caminhaoB db 224 dup(?)
buffer_caminhaoE db 224 dup(?)
buffer_caminhaoC db 224 dup(?)

buffer_caminhao2D db 224 dup(?)
buffer_caminhao2B db 224 dup(?)
buffer_caminhao2E db 224 dup(?)
buffer_caminhao2C db 224 dup(?)

buffer_cccc db 144 dup(?)

buffer_estrela db 100 dup(?)

BufferMasc2 segment byte use16
              buffer_masc2 db 64000 dup (0)

ends

BufferMasc3 segment byte use16
              buffer_masc3 db 64000 dup (0)

ends

buffer_vitoria db 16 dup (?)
buffer_piscadaB db 209 dup (?)
buffer_piscadaC db 209 dup (?)
buffer_piscadaD db 209 dup (?)
buffer_piscadaE db 209 dup (?)


buffer_piscCamB db 224 dup (?)
buffer_piscCamC db 224 dup (?)
buffer_piscCamD db 224 dup (?)
buffer_piscCamE db 224 dup (?)


paleta db 182 dup(0)

paleta_buffer db 768 dup(0)
paleta2_buffer db 768 dup (0)

paleta_bala db 768 dup(0)
paleta_tank db 768 dup(0)
paleta_branco_bala db 768 dup(0)

BufferPainel segment byte use16
             buffer_painel db 64000 dup (0)
ends

BufferFase2 segment byte use16
           buffer_fase2   db 64000 dup(0)
ends

BufferMascara segment byte use16
              buffer_mascara db 64000 dup (0)

ends

BufferTudo segment byte use16
           buffer db 64000 dup (0)

ends

;*****************************************************************************************************************
;                                                    Teclado                                                     *                              
;*****************************************************************************************************************

;Definição de constantes utilizadas para facilitar o tratamento do teclado

     tecla_cima2                  equ     48h        ;o numero equivale ao scan code de cada tecla
     tecla_baixo2                 equ     50h        ;o comando equ faz com que elas sejam constantes
     tecla_esquerda2              equ     4Bh
     tecla_direita2               equ     4Dh
     tecla_tiro2                  equ     1Dh;27h
     tecla_esc                    equ     001h
     tecla_enter                  equ     0Dh
     tecla_espaco                 equ     20h
     soltar_direita2              equ     0CDh
     soltar_esquerda2             equ     0CBh
     soltar_cima2                 equ     0C8h
     soltar_baixo2                equ     0D0h
     soltar_tiro2                 equ     09Dh

     tecla_cima1                  equ     11h        ;o numero equivale ao scan code de cada tecla
     tecla_baixo1                 equ     1fh        ;o comando equ faz com que elas sejam constantes
     tecla_esquerda1              equ     1eh
     tecla_direita1               equ     20h
     tecla_tiro1                  equ     30h
     soltar_direita1              equ     0a0h
     soltar_esquerda1             equ     9eh
     soltar_cima1                 equ     91h
     soltar_baixo1                equ     9fh
     soltar_tiro1                 equ     0b0h

     tecla_f1                     equ     03Bh
     soltar_tecla_f1              equ     0BBh
     tecla_f2                     equ     03Ch
     soltar_tecla_f2              equ     0BBh


;*****************************************************************************************************************
;                                      Variaveis para tratar o teclado                                           *
;*****************************************************************************************************************

     PressionouTecla        dw      0
     varEsquerda1           dw      0
     varDireita1            dw      0
     varCima1               dw      0
     varBaixo1              dw      0
     varTiro1               dw      0

     varEsc                 dw      0

     varEsquerda2           dw      0
     varDireita2            dw      0
     varCima2               dw      0
     varBaixo2              dw      0
     varTiro2               dw      0

     varF1                  dw      0
     varF2                  dw      0

;*****************************************************************************************************************
;                                 Variáveis booleanas para tratamento do ponto X - fase2 e posto - Fase1          *
;*****************************************************************************************************************

     tanque1EmCima         dw  0         ; determina o nivel do tanque na fase 2: em cima (1) ou embaixo (0)
     tanque2EmCima         dw  0         ; determina o nivel do tanque na fase 2: em cima (1) ou embaixo (0)

     bala1EmCima           dw  0
     bala2EmCima           dw  0
     temTanqueNoPontoX     dw  0         ; determinar se há tanque no centro do viaduto (ponto X).
                                         ; usada para barrar a colisão entre os dois tanques no ponto X
     tanque1NoPontoAbastecimento   dw  0
     tanque2NoPontoAbastecimento   dw  0
     
     faseUm                        db  0 ; para indicar se está na fase 1 ou dois


;*****************************************************************************************************************
;                                 Variáveis que guarda as interrupções originais                                 *
;*****************************************************************************************************************

     offset_int15h         dw ?
     segmento_int15h       dw ?
     offset_int1Ch         dw ?
     segmento_int1Ch       dw ?

     numMenu               dw 0
     MSEC                  dw 0                 ;contador de milisegundos
     SEC                   dw 0                 ;contador de segundos
     seed                  dw 0                 ;variavel utilizada como semente
     tempo_item_tela       dw 10                ;variável que guarda o tempo em segundos que um item fica na tela
     tempo_item            dw 0                 ;tempo em que o item ira aparecer na tela



