More moving stuff around

git-svn-id: https://aklabs.dyndns.org/svn/aklabs/trunk/games/spaceshooter@52 eb184899-6090-47d4-a65b-558f62f6ea1c
This commit is contained in:
andrew
2010-07-29 01:46:34 +00:00
commit 6a0f35c88a
110 changed files with 24350 additions and 0 deletions

54
cpp/Character.h Executable file
View File

@@ -0,0 +1,54 @@
#ifndef __CHARACTER_H__
#define __CHARACTER_H__
#include <libgame/libgame.h>
#define STATE_SPREADSHOT 0x00200000
#define STATE_FIRING 0x00400000
class Character : public Actor
{
unsigned int lastDirChangeTime; // used by the Wavy Enemy subtype (ACTORTYPE_ENEMY3)
unsigned int lastFireTime;
public:
Character();
virtual void collide(Character *ptr);
// ... don't move the order of the 'damage' element. It will break the Projectile class.
// (It makes senseif you look at it long enough. No, I didn't design it that way. Yes, I'm ashamed of it.
// Yes, I'll fix it later.)
int damage; // the damage dealt when something runs in to us
Actor *target;
Animation *projectileAnim;
std::string projectileSound;
std::string deathSound;
int health;
int weaponDamage; // the damage dealt when we use our weapon on something
int score;
virtual void fireProjectile(Vector velocity = (Vector){0,10,0}, int playSound = 1);
virtual void update();
};
class Projectile : public Actor
{
public:
// we don't use the health or weaponDamage items in the Character class,
// but because of the way I handled characters damaging each other, this was
// a simpler hack than redoing the classes properly.
void collide(Character *ptr);
int damage;
};
class Player : public Character
{
Uint32 playerShieldTimer; // used to track the amount of time the player's shield has been fading
Uint32 playerFailTimer; // timer for player fail
Uint32 playerDieTimer; // timer for when the player dies
public:
int lives;
void collide(Character *ptr);
void update();
};
#endif // __CHARACTER_H__