crear formulario multipage

buenas.

Estoy intentando construir un formulario multipage, pero no lo tengo bien construido, y me funciona mal.
Como base para construirlo estoy usando el recurso de drupal org http://drupal.org/node/101707 y pro drupal development, pero desgraciadamente no lo explica muy bien ninguno de los dos.

el error que me da es:

    * warning: Missing argument 1 for alta_partidados() in /var/www/periodico/sites/all/modules/campanya/campanya.module on line 265.
    * warning: Missing argument 2 for alta_partidados() in /var/www/periodico/sites/all/modules/campanya/campanya.module on line 265.

mi código de formulario es:

<?php


function alta_partidados($param1, $param2, $form_values = NULL) {
if (!isset(
$form_values)) {
   
$step = 1;
  }
  else {
   
$step = $form_values['step'] + 1;
  }

 
$form['step'] = array(
   
'#type' => 'hidden',
   
'#value' => $step,
  );

  switch (
$step) {

    case
1:  

   
$form['alta_partida'] = array (
       
'#type' => 'fieldset',
       
'#title' => t('alta de partidas'),
       
'#weight' => -6,
    );

   
// Nombre del jugador a
     
$form['alta_partida']['jugador_a'] = array(
           
'#type' => 'value',
           
'#value' => $user->uid,
    );

   
// Nombre del ejercito del jugador a
   
$form['alta_partida']['jugador_a_ejercito'] = array(
           
'#type' => 'value',
           
'#value' => $user->profile_ejercito,
    );

   
// fieldset para agrupar los datos del jugador b
    
$form['contrincante'] = array(
         
'#type' => 'fieldset',
         
'#title' => t('Datos de tu contrincante'),
         
'#weight' => -5,
         
'#collapsible' => TRUE,
         
'#collapsed' => FALSE,
    );  
$ejercito_b['0'] = t("Selecciona un ejerccio");
$ejercito_b['1'] = "Marines";
$ejercito_b['2'] = "Orkos";
$ejercito_b['3'] = "Eldars";
         
   
//  Ejercito del jugador b
   
$form['contrincante']['jugador_b_ejercito'] = array (
       
'#type' => 'select',
       
'#title' => t('selecciona el ejercito de tu contrincante:'),
       
'#options' => $ejercito_b,
       
'#default_value' => $ejercito_b['0'],
       
'#weight' => -15,
    );



   
//fieldset de la campaña
   
$form['campanya'] = array(
         
'#type' => 'fieldset',
         
'#title' => t('Datos de la campaña'),
         
'#weight' => -4,
         
'#collapsible' => TRUE,
         
'#collapsed' => FALSE,
    );

$nombre_campanya = "Asalto al imperio frances";

   
//nombre de la campanya.
   
$form['campanya']['nombre_campanya'] = array (
       
'#type' => 'item',
       
'#title' => t('Nombre de la campaña:'),
       
'#value' => $nombre_campanya,
       
'#weight' => -4,
    );

   
//lugar de la partida
   
$form['campanya']['lugar'] = array(
       
'#type' => 'select',
       
'#title' => t('Donde se ha jugado la partida:'),
       
'#options' => array(
           
'0' => t('Paris centro'),
           
'1' => t('Sudeste de paris'),
           
'2' => t('En los suburbios'),
           
'3' => t('En el almacen del puerto'),
            ),
       
'#weight' => -3,
    );



   
//fieldset del tipo de partida
   
$form['tipo_partida'] = array(
         
'#type' => 'fieldset',
         
'#title' => t('Tipo de partida que se ha jugado'),
         
'#weight' => 2,
       
'#collapsible' => TRUE,
         
'#collapsed' => FALSE,
          );

   
//tipo de batalla, hace referencia a la cantidad de puntos que se juegan en la partida.
   
$form['tipo_partida']['tipo_batalla'] = array(
       
'#type' => 'select',
       
'#title' => t('Tamaño de la partida:'),
       
'#options' => array(
           
'0' => t('escaramuzas'),
           
'1' => t('patrullas'),
           
'2' => t('normal'),
           
'3' => t('grande'),
           
'4' => t('enorme'),
            ),
       
'#weight' => -5,
    );




   
//tipo de batalla, hace referencia al tipo de miniaturas, tamaño, que se utiliza en la partida..
   
$form['tipo_partida']['tipo_ejercito'] = array(
       
'#type' => 'select',
       
'#title' => t('Tipo de miniaturas:'),
       
'#options' => array(
           
'0' => t('06mm a 15mm'),
           
'1' => t('16 mm a 25mm'),
           
'2' => t('26 mm a 35mm'),
           
'3' => t('36mm a 55mm'),
           
'4' => t('barcos'),
           
'5' => t('aviones'),
           
'6' => t('naves espaciales'),
            ),
       
'#weight' => -4,
    );




   
//fieldset del tipo de misión que se ha jugado en la partida
   
$form['tipo_mision'] = array(
         
'#type' => 'fieldset',
         
'#title' => t('Tipo de misión'),
         
'#weight' => 1,
         
'#collapsible' => TRUE,
         
'#collapsed' => FALSE,
    );

   
//que tipo de misión se ha jugado, hay 3 opciones, normales, especiales, eventos
   
$form['tipo_mision']['mision'] = array(
       
'#type' => 'select',
       
'#title' => t('Que tipo de misión se ha jugado:'),
       
'#options' => array(
           
'0' => t('normales'),
           
'1' => t('especiales'),
           
'2' => t('eventos'),
            ),
       
'#weight' => -4,
    );

 

   
//Resulatdo de la partida
   
$form['resultado'] = array(
         
'#type' => 'fieldset',
         
'#title' => t('Tipo de resultado'),
         
'#weight' => 9,
         
'#collapsible' => TRUE,
         
'#collapsed' => FALSE,
    );
   
//selecciona como ha finalizado la partida.
   
$form['resultado']['ganar_perder'] = array(  
       
'#type' => 'radios',
       
'#title' => t('Resultado de la partida'),
       
'#options' => array(t('he ganado'), t('He empatado'), t('He perdido')),
    );
break;

    case
2:
//el nombre del jugador b tendría que mostrar un array de datos de nombres de jugadores que juegan con el ejercito que se ha señalado en el paso uno.
//algo así como select uid, name from {tabla_jugador} where ejercito = $form['contrincante']['jugador_b_ejercito']


  // Nombre del jugador b
   
$form['contrincante']['jugador_b_'] = array (
       
'#type' => 'select',
       
'#title' => t('¿Como se llamaba tu contrincante?:'),
       
'#options' => array(
           
'0' => t('General Lee'),
           
'1' => t('Mc Arthur'),
           
'2' => t('Almirante Nelson'),
           
'3' => t('Godoy'),
            ),
       
'#weight' => -14,
    );

//lo mismo que el caso de arriba, pero en este caso depende de lo que se seleccione en
// $form['tipo_mision']['mision']  aquí se tiene que mostrar unos datos u otros.

  //Se muestran las misiones que se pueden jugar.
   
$form['tipo_mision']['clase_mision'] = array(
       
'#type' => 'select',
       
'#title' => t('selecciona la misión que se ha jugado:'),
       
'#options' => array(
           
'0' => t('mision 1'),
           
'1' => t('mision 2'),
           
'2' => t('mision 3'),
            ),
       
'#weight' => -3,
    );
break;
}

// This part is important!
 
$form['#multistep'] = TRUE;
 
$form['#redirect'] = FALSE;

 
$form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t('Submit'),
  );

   return
$form;
}

?>

¿Alguien sabe que hago mal?

Gracias

Oskar