~ubuntu-branches/ubuntu/trusty/plee-the-bear/trusty-proposed

« back to all changes in this revision

Viewing changes to plee-the-bear/src/ptb/item/forest/frog.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Julien Jorge, Julien Jorge
  • Date: 2010-11-17 20:13:34 UTC
  • mfrom: (6.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20101117201334-o4dp7uq437to7oxb
Tags: 0.5.1-1
[ Julien Jorge ]
* New upstream release (Closes: #565062, #546514).
* Add armhf architecture (Closes: #604689).
* Remove patches integrated upstream: rpath-editors.diff, rpath-game.diff,
  editors-menu-section.diff.
* Bump the Standard-Version, no changes.
* Update my email address.
* Set build dependency of libclaw to 1.6.0.
* Add the missing ${misc:Depends} in debian/control.
* List gettext translations in bear-factory.install and plee-the-bear.install.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  Plee the Bear
 
3
 
 
4
  Copyright (C) 2005-2010 Julien Jorge, Sebastien Angibaud
 
5
 
 
6
  This program is free software; you can redistribute it and/or modify it
 
7
  under the terms of the GNU General Public License as published by the
 
8
  Free Software Foundation; either version 2 of the License, or (at your
 
9
  option) any later version.
 
10
 
 
11
  This program is distributed in the hope that it will be useful, but WITHOUT
 
12
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
13
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 
14
  more details.
 
15
 
 
16
  You should have received a copy of the GNU General Public License along
 
17
  with this program; if not, write to the Free Software Foundation, Inc.,
 
18
  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
19
 
 
20
  contact: plee-the-bear@gamned.org
 
21
 
 
22
  Please add the tag [PTB] in the subject of your mails.
 
23
*/
 
24
/**
 
25
 * \file frog.hpp
 
26
 * \brief The class describing a frog.
 
27
 * \author S�bastien Angibaud
 
28
 */
 
29
#ifndef __PTB_FROG_HPP__
 
30
#define __PTB_FROG_HPP__
 
31
 
 
32
#include "engine/model.hpp"
 
33
#include "engine/base_item.hpp"
 
34
 
 
35
#include "engine/export.hpp"
 
36
 
 
37
namespace ptb
 
38
{
 
39
  /**
 
40
   * \brief The class describing a frog.
 
41
   *
 
42
   * The valid fields for this item are
 
43
   *  - any field supported by the parent classes.
 
44
   *
 
45
   * \author S�bastien Angibaud
 
46
   */
 
47
  class frog:
 
48
    public bear::engine::model<bear::engine::base_item>
 
49
  {
 
50
    DECLARE_BASE_ITEM(frog);
 
51
 
 
52
  public:
 
53
    /** \brief The type of the parent class. */
 
54
    typedef bear::engine::model<bear::engine::base_item> super;
 
55
 
 
56
  private:
 
57
    typedef void (frog::*progress_function_type)(bear::universe::time_type);
 
58
 
 
59
  public:
 
60
    frog();
 
61
    ~frog();
 
62
 
 
63
    void pre_cache();
 
64
    void build();
 
65
    void progress( bear::universe::time_type elapsed_time );
 
66
    bool set_real_field( const std::string& name, double value );
 
67
 
 
68
  protected:
 
69
    void execute_function( const std::string& name );
 
70
    void collision
 
71
    ( bear::engine::base_item& that, bear::universe::collision_info& info );
 
72
 
 
73
  private:
 
74
    void progress_idle( bear::universe::time_type elapsed_time );
 
75
    void progress_jump( bear::universe::time_type elapsed_time );
 
76
    void progress_fall( bear::universe::time_type elapsed_time );
 
77
    void progress_explose( bear::universe::time_type elapsed_time );
 
78
 
 
79
    void start_idle();
 
80
    void start_jump();
 
81
    void start_fall();
 
82
    void start_explose();
 
83
 
 
84
    void apply_jump();
 
85
    void choose_idle_action();
 
86
 
 
87
    bool scan_no_wall_in_direction
 
88
    ( const bear::universe::position_type& origin,
 
89
      const bear::universe::vector_type& dir ) const;
 
90
 
 
91
    bool test_in_sky();
 
92
    bool test_bottom_contact();
 
93
    void test_explose();
 
94
    void try_to_jump();
 
95
    bool can_jump() const;
 
96
    void create_floating_score() const;
 
97
 
 
98
  private:
 
99
    /** \brief Current progress function. */
 
100
    progress_function_type m_progress;
 
101
 
 
102
    /** \brief Initial position. */
 
103
    bear::universe::position_type m_initial_position;
 
104
 
 
105
    /** \brief The maximum distance of the initial position. */
 
106
    bear::universe::coordinate_type m_max_distance;
 
107
 
 
108
    /** \brief The last index of player on the frog. */
 
109
    unsigned int m_last_player_index;
 
110
  }; // class frog
 
111
} // namespace ptb
 
112
 
 
113
#endif // __PTB_FROG_HPP__