projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some more aspect ratio stuff
[supertux.git]
/
src
/
badguy
/
yeti.hpp
diff --git
a/src/badguy/yeti.hpp
b/src/badguy/yeti.hpp
index
a664347
..
a3c996f
100644
(file)
--- a/
src/badguy/yeti.hpp
+++ b/
src/badguy/yeti.hpp
@@
-1,7
+1,8
@@
// $Id$
// $Id$
-//
-// SuperTux
+//
+// SuperTux
- Boss "Yeti"
// Copyright (C) 2005 Matthias Braun <matze@braunis.de>
// Copyright (C) 2005 Matthias Braun <matze@braunis.de>
+// Copyright (C) 2006 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@
-12,14
+13,16
@@
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
+
#ifndef __YETI_H__
#define __YETI_H__
#ifndef __YETI_H__
#define __YETI_H__
+#include <memory>
+
#include "badguy.hpp"
class Yeti : public BadGuy
#include "badguy.hpp"
class Yeti : public BadGuy
@@
-30,33
+33,40
@@
public:
void draw(DrawingContext& context);
void write(lisp::Writer& writer);
void draw(DrawingContext& context);
void write(lisp::Writer& writer);
+ void initialize();
void active_update(float elapsed_time);
void active_update(float elapsed_time);
- HitResponse collision_solid(GameObject& object, const CollisionHit& hit);
- bool collision_squished(Player& player);
+ void collision_solid(const CollisionHit& hit);
+ bool collision_squished(GameObject& object);
+ void kill_squished(GameObject& object);
void kill_fall();
void kill_fall();
+ virtual Yeti* clone() const { return new Yeti((Yeti&)*this); }
+
private:
private:
- void
go_right
();
- void
go_left
();
- void
angry_jumping
();
+ void
run
();
+ void
jump_up
();
+ void
be_angry
();
void drop_stalactite();
void summon_snowball();
void drop_stalactite();
void summon_snowball();
-
+ void jump_down();
+
+ void draw_hit_points(DrawingContext& context);
+
+ void take_hit(Player& player);
+
enum YetiState {
enum YetiState {
-
INIT
,
-
ANGRY_JUMPING
,
-
THROW_SNOWBALL
,
-
GO_RIGHT
,
- GO_LEFT
+
JUMP_DOWN
,
+
RUN
,
+
JUMP_UP
,
+
BE_ANGRY
,
+ SQUISHED
};
};
- Direction side;
YetiState state;
YetiState state;
- Timer timer;
+ Timer
state_
timer;
Timer safe_timer;
Timer safe_timer;
- int
jump
count;
+ int
stomp_
count;
int hit_points;
int hit_points;
- std::
string dead_script
;
+ std::
auto_ptr<Surface> hud_head
;
};
#endif
};
#endif
-