~ubuntu-branches/ubuntu/precise/pingus/precise

« back to all changes in this revision

Viewing changes to src/worldobjs/hammer.cxx

  • Committer: Bazaar Package Importer
  • Author(s): Raphael Goulais
  • Date: 2004-08-09 10:26:00 UTC
  • mfrom: (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20040809102600-lg2q9lfars0q1p42
Tags: 0.6.0-8
Applied patch from Andreas Jochens (Closes: #263992)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//  $Id: hammer.cxx,v 1.12 2003/02/19 09:50:36 grumbel Exp $
 
2
//
 
3
//  Pingus - A free Lemmings clone
 
4
//  Copyright (C) 1999 Ingo Ruhnke <grumbel@gmx.de>
 
5
//
 
6
//  This program is free software; you can redistribute it and/or
 
7
//  modify it under the terms of the GNU General Public License
 
8
//  as published by the Free Software Foundation; either version 2
 
9
//  of the License, or (at your option) any later version.
 
10
//
 
11
//  This program is distributed in the hope that it will be useful,
 
12
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
//  GNU General Public License for more details.
 
15
//
 
16
//  You should have received a copy of the GNU General Public License
 
17
//  along with this program; if not, write to the Free Software
 
18
//  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
19
 
 
20
#include "../gui/graphic_context.hxx"
 
21
#include "../pingu.hxx"
 
22
#include "../pingu_holder.hxx"
 
23
#include "../world.hxx"
 
24
#include "../worldobjsdata/hammer_data.hxx"
 
25
#include "hammer.hxx"
 
26
 
 
27
namespace WorldObjs {
 
28
 
 
29
Hammer::Hammer (const WorldObjsData::HammerData& data_) 
 
30
  : data(new WorldObjsData::HammerData(data_))
 
31
{
 
32
  sprite = Sprite("Traps/hammer", "traps");
 
33
}
 
34
 
 
35
Hammer::~Hammer ()
 
36
{
 
37
  delete data;
 
38
}
 
39
 
 
40
float
 
41
Hammer::get_z_pos () const
 
42
{
 
43
  return data->pos.z;
 
44
}
 
45
 
 
46
void 
 
47
Hammer::draw (GraphicContext& gc)
 
48
{
 
49
  gc.draw (sprite, data->pos);
 
50
}
 
51
 
 
52
void
 
53
Hammer::update ()
 
54
{
 
55
  sprite.update();
 
56
 
 
57
  if (sprite.finished())
 
58
    {
 
59
      PinguHolder* holder = world->get_pingus();
 
60
 
 
61
      for (PinguIter pingu_it = holder->begin (); pingu_it != holder->end (); ++pingu_it) 
 
62
        {
 
63
          Pingu* pingu = *pingu_it;
 
64
          if (pingu->get_action() != Actions::Splashed)
 
65
            {
 
66
              if (pingu->get_x() > data->pos.x + 55  && pingu->get_x() < data->pos.x + 77
 
67
                    && pingu->get_y() > data->pos.y + 146 && pingu->get_y() < data->pos.y + 185)
 
68
                  pingu->set_action(Actions::Splashed);
 
69
            }
 
70
        }
 
71
      sprite.reset();
 
72
    }
 
73
}
 
74
 
 
75
} // namespace WorldObjs
 
76
 
 
77
/* EOF */