00001
#ifndef DEF_PLAYERS_COMMON_H
00002
#define DEF_PLAYERS_COMMON_H 1
00003
00004
#include "characters_common.h"
00005
00006
#define MAX_ITEMS 3
00007
00008
00009
00010
#define STATE_MLEFT 0x00000400
00011
#define STATE_MRIGHT 0x00000800
00012
#define STATE_MUP 0x00001000
00013
#define STATE_MDOWN 0x00002000
00014
00018 class Player :
public Character {
00019
public:
00020
Player(Sint16 xpos=0, Sint16 ypos=0,
const ParameterMap& param=ParameterMap());
00021
virtual ~
Player();
00022
static ParameterMap default_parameters;
00024
00025
00026
Frame getIcon()
const;
00029 Uint8
getItemNum() {
00030
return currentitem;
00031 }
00032
Item* getItem(Uint8 num) {
00033
if (num<MAX_ITEMS)
return items[num];
00034
else return NULL;
00035 }
00039
bool pickupItem(
Item* newitem);
00042 Item*
moveItem() {
00043
return moveItem(currentitem);
00044 }
00046 void removeItem() {
00047
removeItem(currentitem);
00048 }
00052
void switchItem(
bool right=
true);
00054 Object*
dropItem() {
00055
return dropItem(currentitem);
00056 }
00058
00060
virtual void updateAnimState();
00061
virtual void idle(Uint16);
00062
virtual void fall(Uint16);
00063
virtual Uint16
hit(Uint16 direction,
Weapon& weap);
00066
virtual void clearStates(
bool reset=
false);
00067
virtual void setEvent(
Event* ev);
00069
00071
00072 virtual void in_right() { }
00073
virtual void in_right(Uint16);
00075 virtual void in_left() { }
00076
virtual void in_left(Uint16);
00078 virtual void in_up() { }
00079
virtual void in_up(Uint16) { }
00081 virtual void in_down() { }
00082
virtual void in_down(Uint16) { }
00084 virtual void in_sp1() { }
00086 virtual void in_sp2() { }
00090
virtual void in_act();
00092
virtual void in_use();
00094
protected:
00096
virtual void addTouch(std::set<Object *>&);
00100
virtual void addEnter(std::set<Object *>&);
00101
virtual void removeTouch(std::set<Object *>&);
00102
virtual void removeEnter(std::set<Object *>&);
00104
00105
void removeItem(Uint8 num);
00106
Item*
moveItem(Uint8 num);
00107
Object*
dropItem(Uint8 num);
00109
00110
00111
00112
00113
virtual void crash(Uint16 dir=DIR_DOWN);
00115
virtual void die();
00116
virtual Hit move(Uint16 dt,
bool check=
false);
00118
Item* items[MAX_ITEMS];
00119 Uint8 currentitem;
00121
00122 Mix_Chunk* au_hit;
00123 Mix_Chunk* au_land;
00124 Mix_Chunk* au_act;
00125 Mix_Chunk* au_useerror;
00126 Mix_Chunk* au_newitem;
00127 Mix_Chunk* au_die;
00128 Mix_Chunk* au_elec;
00129 Mix_Chunk* au_drown;
00130 Mix_Chunk* au_fire;
00131 Mix_Chunk* au_heal;
00133
00134 EmptyAnimationPtr anim_left;
00135 EmptyAnimationPtr anim_right;
00136 EmptyAnimationPtr anim_rock_left;
00137 EmptyAnimationPtr anim_rock_right;
00138 EmptyAnimationPtr anim_walk_left;
00139 EmptyAnimationPtr anim_walk_right;
00140 EmptyAnimationPtr anim_push_left;
00141 EmptyAnimationPtr anim_push_right;
00142 EmptyAnimationPtr anim_fall_left;
00143 EmptyAnimationPtr anim_fall_right;
00144 EmptyAnimationPtr anim_fall_fast_left;
00145 EmptyAnimationPtr anim_fall_fast_right;
00146 EmptyAnimationPtr anim_crash_left;
00147 EmptyAnimationPtr anim_crash_right;
00148 EmptyAnimationPtr anim_rope_left;
00149 EmptyAnimationPtr anim_rope_right;
00150 EmptyAnimationPtr anim_teleport_left;
00151 EmptyAnimationPtr anim_teleport_right;
00152 EmptyAnimationPtr anim_die_crash_left;
00153 EmptyAnimationPtr anim_die_crash_right;
00154 EmptyAnimationPtr anim_die_burn_left;
00155 EmptyAnimationPtr anim_die_burn_right;
00156 EmptyAnimationPtr anim_die_bones_left;
00157 EmptyAnimationPtr anim_die_bones_right;
00158 EmptyAnimationPtr anim_die_elec_left;
00159 EmptyAnimationPtr anim_die_elec_right;
00160 EmptyAnimationPtr anim_die_spike_left;
00161 EmptyAnimationPtr anim_die_spike_right;
00162 EmptyAnimationPtr anim_die_water_left;
00163 EmptyAnimationPtr anim_die_water_right;
00164 EmptyAnimationPtr anim_fall_middle;
00165 EmptyAnimationPtr anim_climb;
00166 EmptyAnimationPtr anim_bar;
00168 };
00169
00170
00176 class DeadPlayer :
public Character {
00177
public:
00178
DeadPlayer(Sint16 xcord=0, Sint16 ycord=0,
const ParameterMap& param=ParameterMap());
00179
virtual ~
DeadPlayer();
00180
static ParameterMap default_parameters;
00181 };
00182
00183
#endif