Show
Ignore:
Timestamp:
02/08/08 02:44:39 (2 years ago)
Author:
eevee
Message:

Database refactoring. Renamed columns and tables to be more consistent and more readable. (#58)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • veekun/trunk/lib/Vee/Controller/Dex/Utils.pm

    r371 r406  
    102102    my @pokemon; 
    103103 
    104     my (@rows, @pokemoves); 
     104    my (@rows, @pokemon_moves); 
    105105    # only do this if there are actually correct Pokemon to look up! 
    106106    if (@pokemon_ids) { 
     
    116116         
    117117        # get moves 
    118         my $move_rs = $c->model('DBIC::PokeMoves')->search({ 
    119             pokeid => [ keys %pokemon_order ], 
    120             method => [qw/level machine egg tutor/], 
    121             -nest => \ "FIND_IN_SET('$version', version)", 
     118        my $move_rs = $c->model('DBIC::PokemonMoves')->search({ 
     119            pokemon_id => [ keys %pokemon_order ], 
     120            method     => [qw/level machine egg tutor/], 
     121            -nest      => \ "FIND_IN_SET('$version', versions)", 
    122122        }); 
    123123        while (my $row = $move_rs->next) { 
    124             push @{ $pokemoves[ $_ ]{ $row->method } }, $row for @{ $pokemon_order{$row->pokeid} } 
    125         } 
    126     } 
    127  
    128     $s->{pokemon}     = \@pokemon; 
    129     $s->{pokemon_raw} = \@pokemon_raw; 
    130     $s->{pokemoves}   = \@pokemoves; 
     124            push @{ $pokemon_moves[ $_ ]{ $row->method } }, $row for @{ $pokemon_order{$row->pokemon_id} } 
     125        } 
     126    } 
     127 
     128    $s->{pokemon}       = \@pokemon; 
     129    $s->{pokemon_raw}   = \@pokemon_raw; 
     130    $s->{pokemon_moves} = \@pokemon_moves; 
    131131 
    132132    $s->{template} = 'dex/utils/compare-results.tt'; 
     
    173173    # ensure this move is actually inheritable 
    174174    # TODO: should I error if the move is learnable normally? 
    175     my $inheritable_ct = $c->model('DBIC::PokeMoves')->count({ 
    176         pokeid => $pokemon->id, 
    177         moveid => $move->id, 
    178         method => [qw/ egg machine /], 
    179         -nest  => \ "FIND_IN_SET('$gen', version)", 
     175    my $inheritable_ct = $c->model('DBIC::PokemonMoves')->count({ 
     176        pokemon_id => $pokemon->id, 
     177        move_id    => $move->id, 
     178        method     => [qw/ egg machine /], 
     179        -nest      => \ "FIND_IN_SET('$gen', versions)", 
    180180    }); 
    181181    $c->vee_stop('', $pokemon->name, " can't inherit ", $move->name, '.') unless $inheritable_ct; 
    182182     
    183183    my $gender_restriction; 
    184     if ($pokemon->gender == 255) { 
     184    if ($pokemon->gender_rate == 255) { 
    185185        # must also be genderless, i.e. bred with Ditto 
    186186        $gender_restriction = 255; 
     
    192192    ### grab the methods by which any Pokemon learn the move 
    193193 
    194     my $methods_rs = $c->model('DBIC::PokeMoves')->search({ 
    195         moveid => $move->id, 
    196         method => [qw[ level egg machine ]], 
    197         -nest => \ "FIND_IN_SET('$gen', version)", 
    198         'pokemon.gender' => $gender_restriction, 
     194    my $methods_rs = $c->model('DBIC::PokemonMoves')->search({ 
     195        move_id => $move->id, 
     196        method  => [qw[ level egg machine ]], 
     197        -nest   => \ "FIND_IN_SET('$gen', versions)", 
     198        'pokemon.gender_rate' => $gender_restriction, 
    199199    }, { 
    200200        join => 'pokemon', 
     
    208208            $method = 'TM/HM'; 
    209209        } 
    210         push @{ $learn_methods{ $row->pokeid } }, $method; 
     210        push @{ $learn_methods{ $row->pokemon_id } }, $method; 
    211211    } 
    212212 
     
    259259        my %branches; 
    260260 
    261         while (my $pokeid = shift @this_level) { 
    262             my $this_poke = $pokemon{$pokeid}; 
     261        while (my $pokemon_id = shift @this_level) { 
     262            my $this_poke = $pokemon{$pokemon_id}; 
    263263            my $hashref = shift @this_level; 
    264264 
    265             for my $pokeid (keys %pokemon) { 
    266                 next if not $this_poke->can_breed_with( $pokemon{$pokeid} ); 
    267  
    268                 if (exists $seen{ $pokeid }) { 
     265            for my $pokemon_id (keys %pokemon) { 
     266                next if not $this_poke->can_breed_with( $pokemon{$pokemon_id} ); 
     267 
     268                if (exists $seen{ $pokemon_id }) { 
    269269                    # don't put anything if this Pokemon has been seen higher 
    270270                    # in the chain; needless descending is bad 
    271                     $hashref->{ $pokeid } = undef 
    272                         unless $seen{ $pokeid } < $cur_level; 
     271                    $hashref->{ $pokemon_id } = undef 
     272                        unless $seen{ $pokemon_id } < $cur_level; 
    273273                } else { 
    274                     $hashref->{ $pokeid } = ( $branches{$pokeid} ||= {} ); 
    275                     $seen{ $pokeid } = $cur_level; 
     274                    $hashref->{$pokemon_id} = ( $branches{$pokemon_id} ||= {} ); 
     275                    $seen{$pokemon_id} = $cur_level; 
    276276                } 
    277277            }