;;------------------------------------------------LICENSE NOTICE------------------------------------------------------------------------------
;;  This file is part of Amstrad CPC videogame "Redsea"
;;  Copyright (C) 2021 Crab Party / Elena López (AneleSplats in itch.io) / Iván Tortosa (Pluvs in itch.io, @IvanTortosaBer1 on Twitter) / Antonio Gosálvez (BalgroHub in itch.io)
;;  Copyright (C) 2015 ronaldo / Fremos / Cheesetea / ByteRealms (@FranGallegoBR)
;;
;;  This program is free software: you can redistribute it and/or modify
;;  it under the terms of the GNU Lesser General Public License as published by
;;  the Free Software Foundation, either version 3 of the License, or
;;  (at your option) any later version.
;;
;;  This program is distributed in the hope that it will be useful,
;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;  GNU Lesser General Public License for more details.
;;
;;  You should have received a copy of the GNU Lesser General Public License
;;  along with this program.  If not, see <http://www.gnu.org/licenses/>.
;;------------------------------------------------LICENSE NOTICE-------------------------------------------------------------------------
.include "cpctelera.h.s"


.area _DATA
.area _CODE

;Globales
.globl cpct_disableFirmware_asm
.globl man_menu_init
.globl man_menu_update
.globl man_game_init
.globl man_game_play
.globl sys_render_init

.globl _song_menu
.globl _cosa

.globl cpct_akp_musicInit_asm
.globl cpct_akp_musicPlay_asm
.globl cpct_akp_SFXStop_asm

.globl cpct_akp_SFXInit_asm
.globl cpct_akp_SFXPlay_asm

.globl cpct_setPALColour_asm
.globl set_int_handler
.globl cpct_waitVSYNC_asm
.globl cpct_scanKeyboard_if_asm










uncontador: .db 06
int_handler::
    push af
    push bc
    push de
    push hl

    ld a, (uncontador)
    dec a
    jr nz, _cont
_zero:
    ; cpctm_setBorder_asm HW_BRIGHT_WHITE
_guard:
    ; scf ;comentar para que musica este a 50
    ; call c, cpct_akp_musicPlay_asm ;comentar para que musica este a 50
    call cpct_akp_musicPlay_asm ;descomentar para que musica este a 50
    call cpct_scanKeyboard_if_asm ;miramos cada 1/50  si se pulsa el teclado

    ; ld a, (_guard) ;comentar para que musica este a 50
    ; xor #0x80 ;comentar para que musica este a 50
    ; ld (_guard), a ;comentar para que musica este a 50

     ld a, #6
_cont: 
    ld (uncontador), a
   
    ; ld h,a
    ; ld l,#16
    ; call cpct_setPALColour_asm

    pop hl
    pop de
    pop bc
    pop af

    ei ;enable interrupts
    reti ;ret de interrupcion

set_int_handler: ;300 veces por segundo
    call cpct_waitVSYNC_asm
    halt
    halt
    call cpct_waitVSYNC_asm

    ld hl, #0x38
    ld (hl), #0xC3 ;esto es jp
    inc hl
    ld (hl), #<int_handler
    inc hl
    ld (hl), #>int_handler
    ;inc hl
    ;ld (hl), #0xC9
    ret




_main::
;call cpct_disableFirmware_asm
call set_int_handler
ld de, #_song_menu
   call cpct_akp_musicInit_asm
call sys_render_init
call man_menu_init
call man_menu_update

main_game::
  call set_int_handler
  call sys_render_init
;    ld de, #_song_menu
;    call cpct_akp_musicInit_asm
call man_game_init


   

;     ld a,  #2  ;canal para reproducirlo

; call cpct_akp_SFXStop_asm


call man_game_play


jr main_game


;;  COSAS QUE HACER PARA EL DÍA 12
;;  -Animaciones
;;  -Colisiones
;;  -Tilemaps
;;  -Todos las plantillas de entidades hechas
;;  -Depurado del código del motor(cambiar el bytes per entity, y hacer bytes de tipo y componente)
;;  -Arreglar set destroy y destroy
;;  -Arreglar en entity_sizee para que funcione en cualquier sitio

;;  NUESTRO PROTOTIPO:
;;  Tener un tilemap con colisiones, y el personaje que se mueva
;;  Tener la mecánica principal (opcional)