; ; ; ; MIT License
; ; ; ; 
; ; ; ; Copyright (c) 2021 Ramiro Hernán García Iten / Raúl Ripoll Pérez / Alexandru Marius Cozma
; ; ; ; 
; ; ; ; Permission is hereby granted, free of charge, to any person obtaining a copy
; ; ; ; of this software and associated documentation files (the "Software"), to deal
; ; ; ; in the Software without restriction, including without limitation the rights
; ; ; ; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
; ; ; ; copies of the Software, and to permit persons to whom the Software is
; ; ; ; furnished to do so, subject to the following conditions:
; ; ; ; 
; ; ; ; The above copyright notice and this permission notice shall be included in all
; ; ; ; copies or substantial portions of the Software.
; ; ; ;
; ; ; ; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
; ; ; ; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
; ; ; ; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
; ; ; ; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
; ; ; ; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
; ; ; ; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
; ; ; ; SOFTWARE.

; ; ; ; ----------------- AUTHORS ------------------
; ; ; ;     Ramiro Hernán García Iten: rhgi1@alu.ua.es
; ; ; ;     Raúl Ripoll Pérez: rrp42@alu.ua.es
; ; ; ;     Alexandru Marius Cozma: amc246@alu.ua.es
; ; ; ; 
; ; ; ; Art by Sara Alfosea - IG: @Slinfir
; ; ; ; ---------------------------------------------

; ; ; ; Third Party source code used
; ; ; ; ----------------------------
; ; ; ; CPCtelera - owned by ronaldo / (Cheesetea, Fremos, ByteRealms) - GNU Lesser General Public License.


;;-----------------------------LICENSE NOTICE------------------------------------
;;  This file is part of CPCtelera: An Amstrad CPC Game Engine 
;;  Copyright (C) 2018 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/>.
;;-------------------------------------------------------------------------------


;;; ==========================================
;;; ==========================================
;;; INPUT SYSTEM
;;; ==========================================
;;; ==========================================

; Actualiza el sistema de input
sys_input_update::
   call  man_entity_getArray_IX

   ; Se resetean la velocidad Y del jugador si NO estuviese saltando
   ld    a, (player_jump)
   cp    #-1
   jr    nz, #Input_jumping
      ld    e_vy(ix), #0
Input_jumping:
   ld    e_vx(ix), #0

   ; Escanea el teclado
   call cpct_scanKeyboard_f_asm

   ; Tecla GOLPE: 
   ld    hl, #Key_Space
   call  cpct_isKeyPressed_asm
   jr    z, Hit_notPressed
      call  sys_collision_attack
      ld    a, (_hitON)
      cp    #0
      jr    nz, iu_end
         call  man_entity_playerHit
         jp    iu_end
Hit_notPressed:

   ; Tecla movimiento IZQUIERDA: 
   ld    hl, #Key_O
   call  cpct_isKeyPressed_asm
   jr    z, Left_notPressed
      ld    e_vx(ix), #-1
      ld    hl, #_player_spr_1
      ld    e_sptr(ix)  , l
      ld    e_sptr+1(ix), h
      ld    e_info(ix), #0 ; MIRADA

Left_notPressed:

   ; Tecla movimiento DERECHA: 
   ld    hl, #Key_P
   call  cpct_isKeyPressed_asm
   jr    z, Right_notPressed
      ld    e_vx(ix), #1
      ld    hl, #_player_spr_0
      ld    e_sptr(ix)  , l
      ld    e_sptr+1(ix), h
      ld    e_info(ix), #1 ; MIRADA
   
Right_notPressed:

   ; Tecla SALTO (solo si NO está saltando) 
   ld    a, (player_jump)
   cp    #-1
   jr    nz, #Jump_notPressed
      ld    hl, #Key_Q
      call  cpct_isKeyPressed_asm
      jr    z, Jump_notPressed
         xor   a    ; Empieza a saltar hacia arriba
         ld    (player_jump), a
Jump_notPressed:

iu_end:      
   ret
