                   call keepalive
 if %mochilapr = #Contid
      {
      if #contposx = 16
           {
            if #contposy = 16
               {
                  click 21 21 d
                  wait 2s
               }
           }
      contpos 610 360
      }

 black_banco:
   msg $bank$
   wait 1s
;el banco es ozoc
  if OZOC = #CONTKIND
    {
       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
set #findmod 19_4 
gosub guardamos %T_log 478 468 -2 MOCHILA
wait 1s

;Ahora vemos el total de regs que nos quedan

gosub contar %T_bloodmoss MOCHILA
  if %3 < 3
     gosub CogerRegs  

gosub contar %T_blackpearl MOCHILA
  if %3 < 3
     gosub CogerRegs  

gosub contar %T_mandrake MOCHILA
  if %3 < 3
     gosub CogerRegs  

;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
set #findmod 13_7
gosub guardamos %T_bloodmoss 675 435 20 BANCO

set #findmod 21_4
gosub guardamos %T_blackpearl 675 435 20 BANCO

set #findmod 22_5
gosub guardamos %T_mandrake 675 435 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
       }
  }


if %a1 = POF
  {
     if #findstack < 9
          {
           msg $ es POF < 9 $
            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 #findx #findy %a2 %a3 Simple
if #findstack > 1
   {
      if %a4 < 0
        {
          set %cant #Findstack + %a4
          if %cant < 1
            {
              ignoreitem #FINDID
              goto newguard
            }   
          call drag #findx #findy %a2 %a3 %cant
          goto yamovido
         }
       call drag #findx #findy %a2 %a3 %a4
   }
yamovido:

    if %mochilapr = #CONTID
      {
       set #contposx 610
       set #contposy 360
      }
 if  %mibanco = #CONTID
     {
       set #contposx 438
       set #contposy 309
     }
;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


