                   call keepalive

 black_banco:
   msg $bank$
   wait 1s
;el banco es ozoc
  if #CONTKIND in OZOC_UQND
    {
       if %mochilapr = #CONTID
           goto black_banco
       goto black_salgo  
   }

  goto black_banco
black_salgo:

 set %mibanco #CONTID
 contpos 438 309

;Guardamos
;Los troncos. Guardamos todos menos 2
gosub guardamos %T_log 478 468 -2 MOCHILA
wait 1s

;Ahora vemos el total de regs que nos quedan
If %ComoActuo = RUNEBOOK
  {
gosub contar %T_bloodmoss MOCHILA
  if %3 < 3
    {
     gosub CogerRegs  
     goto YaCogiRegs:
    }

gosub contar %T_blackpearl MOCHILA
  if %3 < 3
    {
     gosub CogerRegs  
     goto YaCogiRegs:
    }

gosub contar %T_mandrake MOCHILA
  if %3 < 3
    {
     gosub CogerRegs  
     goto YaCogiRegs:
    }

YaCogiRegs:
;Comprobamos si tenemos suficientes regs
gosub contar %T_bloodmoss MOCHILA
  if %3 < 3
     {
       msg / SE ACABARON LOS REGS!!!!!!!!!!!!!
       if %LumberMusic = 1
             playcd
       halt
     }
 }

exit



sub CogerRegs  
 ;Movemos 20 de cada reg a la mochila
 gosub guardamos %T_bloodmoss 768 222 20 BANCO
 gosub guardamos %T_blackpearl  768 222 20 BANCO
 gosub guardamos %T_mandrake  768 222 20 BANCO
return



sub guardamos
ignoreitem reset
; %1: Tipo de objeto
; %2,%3: Posicion a donde lo moveremos
; %4: Cuantos objetos de ese tipo movemos de cada pila. Si es <0 significa todos-%4
; %5: Lugar desde donde movemos el objeto: MOCHILA o BANCO
; Bug al usar las mismas variables %1 %2 %3 %4, se sobreescribian. Arreglao
set %a1 %1
set %a2 %2
set %a3 %3
set %a4 %4
set %a5 %5

set %deberiasalir 0

newguard:
                   call keepalive
finditem %a1
wait 5 

if #findkind = -1
   goto acabo

if #findkind > 0 
 {
  ignoreitem #FINDID
  goto newguard
 }

if %a5 = MOCHILA
  {
    if #findx < 635
       {    
         ignoreitem #FINDID
         goto newguard
       }
  }
if %a5 <> MOCHILA
  {
    if #findx >= 635
       {    
         ignoreitem #FINDID
         goto newguard
       }
  }


;si lleva demasiado tiempo moviendo, seguro que hay un error
set %deberiasalir %deberiasalir + 1
if %deberiasalir > 20
   return

if #findstack = 1
   call drag #findid %a2 %a3 Simple
if #findstack > 1
   {
      if %a4 <> ALL
        {
         if %a4 < 0
           {
            set %cant #Findstack + %a4
            if %cant < 1
              {
                ignoreitem #FINDID
                goto newguard
              }   
            call drag #FINDID %a2 %a3 %cant
            goto yamovido
           }
        }
       call drag #FINDID %a2 %a3 %a4
   }
yamovido:

;Solo movemos una vez desde el banco
if %a5 <> MOCHILA
  return
goto newguard
acabo:
return


sub contar
ignoreitem reset
;Parametros de entrada: %1 que es el objeto a buscar
;Parametros de entrada: %2 Indica donde contamos. Valores: MOCHILA o BANCO 
;Parametros de salida: %3 El total de objetos de ese tipo

set %3 0
newcontar:
                   call keepalive
finditem %1
wait 5 

if #findkind = -1
   goto acabocontar

if #findkind > 0 
 {
  ignoreitem #FINDID
  goto newcontar
 }

if %2 = MOCHILA
  {
    if #findx < 635
       {    
         ignoreitem #FINDID
         goto newcontar
       }
  }
if %2 <> MOCHILA
  {
    if #findx >= 635
       {    
         ignoreitem #FINDID
         goto newcontar
       }
  }

 set %3 %3 + #findstack
 ignoreitem #FINDID

goto newcontar
acabocontar:
return


