Use sprite pointers, rather than ints.
This commit is contained in:
parent
d999c14776
commit
21e50e51e7
|
@ -44,7 +44,7 @@ OBJS += main.o map.o maths.o mia.o missile.o
|
||||||
OBJS += objectives.o
|
OBJS += objectives.o
|
||||||
OBJS += particles.o player.o powerPoint.o powerPool.o pressurePlate.o pushBlock.o
|
OBJS += particles.o player.o powerPoint.o powerPool.o pressurePlate.o pushBlock.o
|
||||||
OBJS += quadtree.o
|
OBJS += quadtree.o
|
||||||
OBJS += sound.o sprites.o
|
OBJS += sound.o sprites.o structures.o
|
||||||
OBJS += tankCommander.o tankTrack.o teeka.o teleporter.o text.o textures.o title.o triggers.o
|
OBJS += tankCommander.o tankTrack.o teeka.o teleporter.o text.o textures.o title.o triggers.o
|
||||||
OBJS += unit.o util.o
|
OBJS += unit.o util.o
|
||||||
OBJS += weapons.o weaponPickup.o widgets.o world.o worldLoader.o
|
OBJS += weapons.o weaponPickup.o widgets.o world.o worldLoader.o
|
||||||
|
|
|
@ -22,43 +22,43 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
Bullet *createBaseBullet(Unit *owner);
|
Bullet *createBaseBullet(Unit *owner);
|
||||||
|
|
||||||
static int bulletSprite[2];
|
static Sprite *bulletSprite[2];
|
||||||
static int plasmaSprite[2];
|
static Sprite *plasmaSprite[2];
|
||||||
static int aimedSprite;
|
static Sprite *aimedSprite;
|
||||||
static int spreadShotSprite;
|
static Sprite *spreadShotSprite;
|
||||||
static int alienSpreadShotSprite;
|
static Sprite *alienSpreadShotSprite;
|
||||||
static int laserSprite[2];
|
static Sprite *laserSprite[2];
|
||||||
static int grenadeSprite;
|
static Sprite *grenadeSprite;
|
||||||
static int alienGrenadeSprite;
|
static Sprite *alienGrenadeSprite;
|
||||||
static int shotgunPelletSprite;
|
static Sprite *shotgunPelletSprite;
|
||||||
static int missileSprite[2];
|
static Sprite *missileSprite[2];
|
||||||
|
|
||||||
static void tick(void);
|
static void tick(void);
|
||||||
static void touch(Entity *other);
|
static void touch(Entity *other);
|
||||||
|
|
||||||
void initWeapons(void)
|
void initWeapons(void)
|
||||||
{
|
{
|
||||||
bulletSprite[0] = getSpriteIndex("BulletRight");
|
bulletSprite[0] = getSprite("BulletRight");
|
||||||
bulletSprite[1] = getSpriteIndex("BulletLeft");
|
bulletSprite[1] = getSprite("BulletLeft");
|
||||||
|
|
||||||
plasmaSprite[0] = getSpriteIndex("PlasmaRight");
|
plasmaSprite[0] = getSprite("PlasmaRight");
|
||||||
plasmaSprite[1] = getSpriteIndex("PlasmaLeft");
|
plasmaSprite[1] = getSprite("PlasmaLeft");
|
||||||
|
|
||||||
aimedSprite = getSpriteIndex("AimedShot");
|
aimedSprite = getSprite("AimedShot");
|
||||||
|
|
||||||
spreadShotSprite = getSpriteIndex("SpreadShot");
|
spreadShotSprite = getSprite("SpreadShot");
|
||||||
alienSpreadShotSprite = getSpriteIndex("AlienSpreadShot");
|
alienSpreadShotSprite = getSprite("AlienSpreadShot");
|
||||||
|
|
||||||
laserSprite[0] = getSpriteIndex("Laser");
|
laserSprite[0] = getSprite("Laser");
|
||||||
laserSprite[1] = getSpriteIndex("AlienLaser");
|
laserSprite[1] = getSprite("AlienLaser");
|
||||||
|
|
||||||
grenadeSprite = getSpriteIndex("Grenade");
|
grenadeSprite = getSprite("Grenade");
|
||||||
alienGrenadeSprite = getSpriteIndex("AlienGrenade");
|
alienGrenadeSprite = getSprite("AlienGrenade");
|
||||||
|
|
||||||
shotgunPelletSprite = getSpriteIndex("ShotgunPellet");
|
shotgunPelletSprite = getSprite("ShotgunPellet");
|
||||||
|
|
||||||
missileSprite[0] = getSpriteIndex("MissileRight");
|
missileSprite[0] = getSprite("MissileRight");
|
||||||
missileSprite[1] = getSpriteIndex("MissileLeft");
|
missileSprite[1] = getSprite("MissileLeft");
|
||||||
}
|
}
|
||||||
|
|
||||||
void firePistol(Unit *owner)
|
void firePistol(Unit *owner)
|
||||||
|
|
|
@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "../common.h"
|
#include "../common.h"
|
||||||
|
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
||||||
|
|
|
@ -37,9 +37,9 @@ void initMIA(void)
|
||||||
|
|
||||||
m->tx = m->ty = -1;
|
m->tx = m->ty = -1;
|
||||||
|
|
||||||
m->sprite[FACING_LEFT] = getSpriteIndex("MIA");
|
m->sprite[FACING_LEFT] = getSprite("MIA");
|
||||||
m->sprite[FACING_RIGHT] = getSpriteIndex("MIA");
|
m->sprite[FACING_RIGHT] = getSprite("MIA");
|
||||||
m->sprite[FACING_DIE] = getSpriteIndex("MIA");
|
m->sprite[FACING_DIE] = getSprite("MIA");
|
||||||
|
|
||||||
m->flags |= EF_IGNORE_BULLETS;
|
m->flags |= EF_IGNORE_BULLETS;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void nothing(void);
|
extern void nothing(void);
|
||||||
extern void addMIATeleportStars(float x, float y);
|
extern void addMIATeleportStars(float x, float y);
|
||||||
extern void addTeleportStars(Entity *e);
|
extern void addTeleportStars(Entity *e);
|
||||||
|
|
|
@ -26,7 +26,7 @@ static void preFire(void);
|
||||||
static void attack(void);
|
static void attack(void);
|
||||||
|
|
||||||
static Entity *target;
|
static Entity *target;
|
||||||
static int aimedSprite;
|
static Sprite *aimedSprite;
|
||||||
static int exitMission;
|
static int exitMission;
|
||||||
|
|
||||||
void initTeeka(void)
|
void initTeeka(void)
|
||||||
|
@ -43,15 +43,15 @@ void initTeeka(void)
|
||||||
|
|
||||||
u->weaponType = WPN_AIMED_PISTOL;
|
u->weaponType = WPN_AIMED_PISTOL;
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("TeekaLeft");
|
u->sprite[FACING_LEFT] = getSprite("TeekaLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("TeekaRight");
|
u->sprite[FACING_RIGHT] = getSprite("TeekaRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("TeekaLeft");
|
u->sprite[FACING_DIE] = getSprite("TeekaLeft");
|
||||||
|
|
||||||
u->health = u->healthMax = 9999;
|
u->health = u->healthMax = 9999;
|
||||||
|
|
||||||
u->tick = tick;
|
u->tick = tick;
|
||||||
|
|
||||||
aimedSprite = getSpriteIndex("AimedShot");
|
aimedSprite = getSprite("AimedShot");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tick(void)
|
static void tick(void)
|
||||||
|
|
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
extern Unit *createUnit(void);
|
extern Unit *createUnit(void);
|
||||||
extern void unitTick(void);
|
extern void unitTick(void);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern Bullet *createBaseBullet(Unit *owner);
|
extern Bullet *createBaseBullet(Unit *owner);
|
||||||
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
||||||
|
|
|
@ -32,7 +32,7 @@ void initBlaze(Entity *e)
|
||||||
|
|
||||||
STRNCPY(b->name, "Blaze", MAX_NAME_LENGTH);
|
STRNCPY(b->name, "Blaze", MAX_NAME_LENGTH);
|
||||||
|
|
||||||
b->sprite[FACING_LEFT] = getSpriteIndex("BlazeLeft");
|
b->sprite[FACING_LEFT] = getSprite("BlazeLeft");
|
||||||
b->sprite[FACING_RIGHT] = getSpriteIndex("BlazeRight");
|
b->sprite[FACING_RIGHT] = getSprite("BlazeRight");
|
||||||
b->sprite[FACING_DIE] = getSpriteIndex("BlazeSpin");
|
b->sprite[FACING_DIE] = getSprite("BlazeSpin");
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,4 +21,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initBlobBoss(Boss *b);
|
extern void initBlobBoss(Boss *b);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
|
@ -24,7 +24,7 @@ static void activate(int activate);
|
||||||
static void walk(void);
|
static void walk(void);
|
||||||
static void tick(void);
|
static void tick(void);
|
||||||
static void changeEnvironment(void);
|
static void changeEnvironment(void);
|
||||||
static int getCurrentSprite(void);
|
static Sprite *getCurrentSprite(void);
|
||||||
static void animate(void);
|
static void animate(void);
|
||||||
static void applyDamage(int amount);
|
static void applyDamage(int amount);
|
||||||
static void moveTowardsPlayer(void);
|
static void moveTowardsPlayer(void);
|
||||||
|
@ -34,7 +34,7 @@ static void attack(void);
|
||||||
static void die1(void);
|
static void die1(void);
|
||||||
static void die2(void);
|
static void die2(void);
|
||||||
|
|
||||||
static int aimedSprite;
|
static Sprite *aimedSprite;
|
||||||
|
|
||||||
void initBlobBoss(Entity *e)
|
void initBlobBoss(Entity *e)
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ void initBlobBoss(Entity *e)
|
||||||
b->applyDamage = applyDamage;
|
b->applyDamage = applyDamage;
|
||||||
b->die = die1;
|
b->die = die1;
|
||||||
|
|
||||||
aimedSprite = getSpriteIndex("AimedShot");
|
aimedSprite = getSprite("AimedShot");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void activate(int activate)
|
static void activate(int activate)
|
||||||
|
@ -171,7 +171,7 @@ static void die1(void)
|
||||||
b->action = die2;
|
b->action = die2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int getCurrentSprite(void)
|
static Sprite *getCurrentSprite(void)
|
||||||
{
|
{
|
||||||
Boss *b;
|
Boss *b;
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ extern double randF(void);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern void animateEntity(Entity *e);
|
extern void animateEntity(Entity *e);
|
||||||
extern Bullet *createBaseBullet(Unit *owner);
|
extern Bullet *createBaseBullet(Unit *owner);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern int getDistance(int x1, int y1, int x2, int y2);
|
extern int getDistance(int x1, int y1, int x2, int y2);
|
||||||
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
||||||
extern int enemyCanSeePlayer(Entity *e);
|
extern int enemyCanSeePlayer(Entity *e);
|
||||||
|
|
|
@ -30,7 +30,7 @@ void initBoss(Entity *e)
|
||||||
|
|
||||||
b->type = ET_BOSS;
|
b->type = ET_BOSS;
|
||||||
|
|
||||||
b->sprite[FACING_LEFT] = b->sprite[FACING_RIGHT] = b->sprite[FACING_DIE] = getSpriteIndex("Boss");
|
b->sprite[FACING_LEFT] = b->sprite[FACING_RIGHT] = b->sprite[FACING_DIE] = getSprite("Boss");
|
||||||
|
|
||||||
b->isMissionTarget = 1;
|
b->isMissionTarget = 1;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern void lookForPlayer(void);
|
extern void lookForPlayer(void);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -33,12 +33,12 @@ static void attackMissile(void);
|
||||||
static void preFire(void);
|
static void preFire(void);
|
||||||
static void attack(void);
|
static void attack(void);
|
||||||
static void applyDamage(int amount);
|
static void applyDamage(int amount);
|
||||||
static int getCurrentSprite(void);
|
static Sprite *getCurrentSprite(void);
|
||||||
|
|
||||||
static int brakingTimer;
|
static int brakingTimer;
|
||||||
static int aimedSprite;
|
static Sprite *aimedSprite;
|
||||||
static int missileSprite[2];
|
static Sprite *missileSprite[2];
|
||||||
static int plasmaSprite[2];
|
static Sprite *plasmaSprite[2];
|
||||||
|
|
||||||
void initEyeDroidCommander(Entity *e)
|
void initEyeDroidCommander(Entity *e)
|
||||||
{
|
{
|
||||||
|
@ -50,9 +50,9 @@ void initEyeDroidCommander(Entity *e)
|
||||||
|
|
||||||
STRNCPY(b->name, "EyeDroid Commander", MAX_NAME_LENGTH);
|
STRNCPY(b->name, "EyeDroid Commander", MAX_NAME_LENGTH);
|
||||||
|
|
||||||
b->sprite[FACING_LEFT] = getSpriteIndex("DroidCommanderLeft");
|
b->sprite[FACING_LEFT] = getSprite("DroidCommanderLeft");
|
||||||
b->sprite[FACING_RIGHT] = getSpriteIndex("DroidCommanderRight");
|
b->sprite[FACING_RIGHT] = getSprite("DroidCommanderRight");
|
||||||
b->sprite[FACING_DIE] = getSpriteIndex("DroidCommanderDie");
|
b->sprite[FACING_DIE] = getSprite("DroidCommanderDie");
|
||||||
|
|
||||||
b->flags |= EF_WEIGHTLESS | EF_EXPLODES;
|
b->flags |= EF_WEIGHTLESS | EF_EXPLODES;
|
||||||
|
|
||||||
|
@ -66,13 +66,13 @@ void initEyeDroidCommander(Entity *e)
|
||||||
|
|
||||||
brakingTimer = 0;
|
brakingTimer = 0;
|
||||||
|
|
||||||
aimedSprite = getSpriteIndex("AimedShot");
|
aimedSprite = getSprite("AimedShot");
|
||||||
|
|
||||||
missileSprite[0] = getSpriteIndex("MissileRight");
|
missileSprite[0] = getSprite("MissileRight");
|
||||||
missileSprite[1] = getSpriteIndex("MissileLeft");
|
missileSprite[1] = getSprite("MissileLeft");
|
||||||
|
|
||||||
plasmaSprite[0] = getSpriteIndex("PlasmaRight");
|
plasmaSprite[0] = getSprite("PlasmaRight");
|
||||||
plasmaSprite[1] = getSpriteIndex("PlasmaLeft");
|
plasmaSprite[1] = getSprite("PlasmaLeft");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void activate(int activate)
|
static void activate(int activate)
|
||||||
|
@ -382,7 +382,7 @@ static void die2()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int getCurrentSprite(void)
|
static Sprite *getCurrentSprite(void)
|
||||||
{
|
{
|
||||||
if (self->health <= 0)
|
if (self->health <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initBoss(Entity *e);
|
extern void initBoss(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void playMusic(char *filename, int loop);
|
extern void playMusic(char *filename, int loop);
|
||||||
extern void addTeleportStars(Entity *e);
|
extern void addTeleportStars(Entity *e);
|
||||||
extern float limit(float i, float a, float b);
|
extern float limit(float i, float a, float b);
|
||||||
|
|
|
@ -32,7 +32,7 @@ void initFrost(Entity *e)
|
||||||
|
|
||||||
STRNCPY(b->name, "Frost", MAX_NAME_LENGTH);
|
STRNCPY(b->name, "Frost", MAX_NAME_LENGTH);
|
||||||
|
|
||||||
b->sprite[FACING_LEFT] = getSpriteIndex("FrostLeft");
|
b->sprite[FACING_LEFT] = getSprite("FrostLeft");
|
||||||
b->sprite[FACING_RIGHT] = getSpriteIndex("FrostRight");
|
b->sprite[FACING_RIGHT] = getSprite("FrostRight");
|
||||||
b->sprite[FACING_DIE] = getSpriteIndex("FrostSpin");
|
b->sprite[FACING_DIE] = getSprite("FrostSpin");
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,4 +21,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initBlobBoss(Entity *e);
|
extern void initBlobBoss(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
|
@ -36,8 +36,8 @@ static void moveTowardsPlayer(void);
|
||||||
|
|
||||||
static Entity *tankTrack;
|
static Entity *tankTrack;
|
||||||
static int brakingTimer;
|
static int brakingTimer;
|
||||||
static int missileSprite[2];
|
static Sprite *missileSprite[2];
|
||||||
static int aimedSprite;
|
static Sprite *aimedSprite;
|
||||||
|
|
||||||
void initTankCommander(Entity *e)
|
void initTankCommander(Entity *e)
|
||||||
{
|
{
|
||||||
|
@ -49,9 +49,9 @@ void initTankCommander(Entity *e)
|
||||||
|
|
||||||
STRNCPY(e->name, "Tank Commander", MAX_NAME_LENGTH);
|
STRNCPY(e->name, "Tank Commander", MAX_NAME_LENGTH);
|
||||||
|
|
||||||
b->sprite[FACING_LEFT] = getSpriteIndex("TankCommanderLeft");
|
b->sprite[FACING_LEFT] = getSprite("TankCommanderLeft");
|
||||||
b->sprite[FACING_RIGHT] = getSpriteIndex("TankCommanderRight");
|
b->sprite[FACING_RIGHT] = getSprite("TankCommanderRight");
|
||||||
b->sprite[FACING_DIE] = getSpriteIndex("TankCommanderDie");
|
b->sprite[FACING_DIE] = getSprite("TankCommanderDie");
|
||||||
|
|
||||||
b->flags |= EF_EXPLODES;
|
b->flags |= EF_EXPLODES;
|
||||||
|
|
||||||
|
@ -68,10 +68,10 @@ void initTankCommander(Entity *e)
|
||||||
|
|
||||||
world.boss = b;
|
world.boss = b;
|
||||||
|
|
||||||
aimedSprite = getSpriteIndex("AimedShot");
|
aimedSprite = getSprite("AimedShot");
|
||||||
|
|
||||||
missileSprite[0] = getSpriteIndex("MissileRight");
|
missileSprite[0] = getSprite("MissileRight");
|
||||||
missileSprite[1] = getSpriteIndex("MissileLeft");
|
missileSprite[1] = getSprite("MissileLeft");
|
||||||
|
|
||||||
initTankTrack(tankTrack);
|
initTankTrack(tankTrack);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initBoss(Entity *e);
|
extern void initBoss(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void playMusic(char *filename, int loop);
|
extern void playMusic(char *filename, int loop);
|
||||||
extern void addTeleportStars(Entity *e);
|
extern void addTeleportStars(Entity *e);
|
||||||
extern float limit(float i, float a, float b);
|
extern float limit(float i, float a, float b);
|
||||||
|
|
|
@ -37,9 +37,9 @@ void initTankTrack(Entity *e, Entity *tank)
|
||||||
|
|
||||||
e->isMissionTarget = 0;
|
e->isMissionTarget = 0;
|
||||||
|
|
||||||
e->sprite[FACING_LEFT] = getSpriteIndex("TankTrackLeft");
|
e->sprite[FACING_LEFT] = getSprite("TankTrackLeft");
|
||||||
e->sprite[FACING_RIGHT] = getSpriteIndex("TankTrackRight");
|
e->sprite[FACING_RIGHT] = getSprite("TankTrackRight");
|
||||||
e->sprite[FACING_DIE] = getSpriteIndex("TankTrackLeft");
|
e->sprite[FACING_DIE] = getSprite("TankTrackLeft");
|
||||||
|
|
||||||
e->tick = tick;
|
e->tick = tick;
|
||||||
e->touch = touch;
|
e->touch = touch;
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initBoss(Entity *e);
|
extern void initBoss(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
|
|
||||||
|
|
|
@ -36,9 +36,9 @@ void initCannon(void)
|
||||||
|
|
||||||
u->type = ET_ENEMY;
|
u->type = ET_ENEMY;
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("CannonLeft");
|
u->sprite[FACING_LEFT] = getSprite("CannonLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("CannonRight");
|
u->sprite[FACING_RIGHT] = getSprite("CannonRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("CannonLeft");
|
u->sprite[FACING_DIE] = getSprite("CannonLeft");
|
||||||
|
|
||||||
u->weaponType = WPN_MISSILE;
|
u->weaponType = WPN_MISSILE;
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
extern void addExplosion(float x, float y, int radius, Entity *owner);
|
extern void addExplosion(float x, float y, int radius, Entity *owner);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern int getDistance(int x1, int y1, int x2, int y2);
|
extern int getDistance(int x1, int y1, int x2, int y2);
|
||||||
extern int enemyCanSeePlayer(Entity *e);
|
extern int enemyCanSeePlayer(Entity *e);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
|
|
|
@ -29,8 +29,6 @@ void initEntity(Entity *e)
|
||||||
{
|
{
|
||||||
e->uniqueId = world.entityCounter++;
|
e->uniqueId = world.entityCounter++;
|
||||||
|
|
||||||
e->sprite[0] = e->sprite[1] = e->sprite[2] = -1;
|
|
||||||
|
|
||||||
e->environment = ENV_AIR;
|
e->environment = ENV_AIR;
|
||||||
e->alive = ALIVE_ALIVE;
|
e->alive = ALIVE_ALIVE;
|
||||||
|
|
||||||
|
@ -66,16 +64,6 @@ static SDL_Rect *getBounds(void)
|
||||||
return &self->bounds;
|
return &self->bounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getCurrentEntitySprite(EntityExt *e)
|
|
||||||
{
|
|
||||||
if (e->alive == ALIVE_ALIVE)
|
|
||||||
{
|
|
||||||
return e->sprite[e->facing];
|
|
||||||
}
|
|
||||||
|
|
||||||
return e->sprite[FACING_DIE];
|
|
||||||
}
|
|
||||||
|
|
||||||
void animateEntity(void)
|
void animateEntity(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,8 @@ void initEntityFactory(void)
|
||||||
addEntityDef("AquaBlob", ET_ENEMY, initAquaBlob);
|
addEntityDef("AquaBlob", ET_ENEMY, initAquaBlob);
|
||||||
|
|
||||||
addEntityDef("Bob", ET_BOB, initBob);
|
addEntityDef("Bob", ET_BOB, initBob);
|
||||||
|
|
||||||
|
addEntityDef("Exit", ET_EXIT, initExit);
|
||||||
}
|
}
|
||||||
|
|
||||||
Entity *createEntity(char *name)
|
Entity *createEntity(char *name)
|
||||||
|
|
|
@ -22,3 +22,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
extern Entity *initAquaBlob(void);
|
extern Entity *initAquaBlob(void);
|
||||||
extern Entity *initBob(void);
|
extern Entity *initBob(void);
|
||||||
|
extern Entity *initExit(void);
|
||||||
|
|
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
static int canFire(Entity *target);
|
static int canFire(Entity *target);
|
||||||
|
|
||||||
void initAquaBlob(void)
|
Entity *initAquaBlob(void)
|
||||||
{
|
{
|
||||||
Unit *u;
|
Unit *u;
|
||||||
|
|
||||||
|
@ -30,9 +30,9 @@ void initAquaBlob(void)
|
||||||
|
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("AquaBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("AquaBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("AquaBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("AquaBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("AquaBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("AquaBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_AIMED_PISTOL;
|
u->weaponType = WPN_AIMED_PISTOL;
|
||||||
|
|
||||||
|
@ -41,6 +41,8 @@ void initAquaBlob(void)
|
||||||
u->maxShotsToFire = 3;
|
u->maxShotsToFire = 3;
|
||||||
|
|
||||||
u->canFire = canFire;
|
u->canFire = canFire;
|
||||||
|
|
||||||
|
return (Entity*)u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int canFire(Entity *target)
|
static int canFire(Entity *target)
|
||||||
|
|
|
@ -22,4 +22,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
extern Unit *createUnit(void);
|
extern Unit *createUnit(void);
|
||||||
extern void initEvilBlob(Unit *u);
|
extern void initEvilBlob(Unit *u);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
|
@ -23,8 +23,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
extern void dropCarriedItem(void);
|
extern void dropCarriedItem(void);
|
||||||
extern int getDistance(int x1, int y1, int x2, int y2);
|
extern int getDistance(int x1, int y1, int x2, int y2);
|
||||||
extern double randF(void);
|
extern double randF(void);
|
||||||
extern void throwFleshChunks(double x, double y, int amount);
|
extern void throwFleshChunks(float x, float y, int amount);
|
||||||
extern void addRandomWeapon(double x, double y);
|
extern void addRandomWeapon(float x, float y);
|
||||||
extern float limit(float i, float a, float b);
|
extern float limit(float i, float a, float b);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern void addBloodDecal(int x, int y);
|
extern void addBloodDecal(int x, int y);
|
||||||
|
|
|
@ -27,9 +27,9 @@ void initGrenadeBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("GrenadeBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("GrenadeBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("GrenadeBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("GrenadeBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("GrenadeBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("GrenadeBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_GRENADES;
|
u->weaponType = WPN_GRENADES;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initLaserBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("LaserBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("LaserBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("LaserBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("LaserBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("LaserBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("LaserBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_LASER;
|
u->weaponType = WPN_LASER;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initMachineGunBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("MachineGunBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("MachineGunBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("MachineGunBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("MachineGunBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("MachineGunBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("MachineGunBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_MACHINE_GUN;
|
u->weaponType = WPN_MACHINE_GUN;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initPistolBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("PistolBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("PistolBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("PistolBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("PistolBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("PistolBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("PistolBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_AIMED_PISTOL;
|
u->weaponType = WPN_AIMED_PISTOL;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initPlasmaBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("PlasmaBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("PlasmaBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("PlasmaBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("PlasmaBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("PlasmaBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("PlasmaBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_PLASMA;
|
u->weaponType = WPN_PLASMA;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initShotgunBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("ShotgunBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("ShotgunBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("ShotgunBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("ShotgunBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("ShotgunBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("ShotgunBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_SHOTGUN;
|
u->weaponType = WPN_SHOTGUN;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initSpreadGunBlob(Unit *u)
|
||||||
{
|
{
|
||||||
initEvilBlob(u);
|
initEvilBlob(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("SpreadGunBlobLeft");
|
u->sprite[FACING_LEFT] = getSprite("SpreadGunBlobLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("SpreadGunBlobRight");
|
u->sprite[FACING_RIGHT] = getSprite("SpreadGunBlobRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("SpreadGunBlobSpin");
|
u->sprite[FACING_DIE] = getSprite("SpreadGunBlobSpin");
|
||||||
|
|
||||||
u->weaponType = WPN_SPREAD;
|
u->weaponType = WPN_SPREAD;
|
||||||
|
|
||||||
|
|
|
@ -27,9 +27,9 @@ void initGrenadeDroid(Unit *u)
|
||||||
{
|
{
|
||||||
initEyeDroid(u);
|
initEyeDroid(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("GrenadeDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("GrenadeDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("GrenadeDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("GrenadeDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("GrenadeDroidDie");
|
u->sprite[FACING_DIE] = getSprite("GrenadeDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_GRENADES;
|
u->weaponType = WPN_GRENADES;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initLaserDroid(Unit *u)
|
||||||
{
|
{
|
||||||
initEyeDroid(u);
|
initEyeDroid(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("LaserDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("LaserDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("LaserDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("LaserDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("LaserDroidDie");
|
u->sprite[FACING_DIE] = getSprite("LaserDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_LASER;
|
u->weaponType = WPN_LASER;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initMachineGunDroid(Unit *u)
|
||||||
{
|
{
|
||||||
initEyeDroid(u);
|
initEyeDroid(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("MachineGunDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("MachineGunDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("MachineGunDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("MachineGunDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("MachineGunDroidDie");
|
u->sprite[FACING_DIE] = getSprite("MachineGunDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_MACHINE_GUN;
|
u->weaponType = WPN_MACHINE_GUN;
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,9 @@ static int canFire(Entity *target);
|
||||||
|
|
||||||
void initPistolDroid(Unit *u)
|
void initPistolDroid(Unit *u)
|
||||||
{
|
{
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("PistolDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("PistolDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("PistolDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("PistolDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("PistolDroidDie");
|
u->sprite[FACING_DIE] = getSprite("PistolDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_AIMED_PISTOL;
|
u->weaponType = WPN_AIMED_PISTOL;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initPlasmaDroid(Unit *u)
|
||||||
{
|
{
|
||||||
initEyeDroid(u);
|
initEyeDroid(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("PlasmaDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("PlasmaDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("PlasmaDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("PlasmaDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("PlasmaDroidDie");
|
u->sprite[FACING_DIE] = getSprite("PlasmaDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_PLASMA;
|
u->weaponType = WPN_PLASMA;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initShotgunDroid(Unit *u)
|
||||||
{
|
{
|
||||||
initEyeDroid(u);
|
initEyeDroid(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("ShotgunDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("ShotgunDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("ShotgunDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("ShotgunDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("ShotgunDroidDie");
|
u->sprite[FACING_DIE] = getSprite("ShotgunDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_SHOTGUN;
|
u->weaponType = WPN_SHOTGUN;
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ void initSpreadGunDroid(Unit *u)
|
||||||
{
|
{
|
||||||
initEyeDroid(u);
|
initEyeDroid(u);
|
||||||
|
|
||||||
u->sprite[FACING_LEFT] = getSpriteIndex("SpreadGunDroidLeft");
|
u->sprite[FACING_LEFT] = getSprite("SpreadGunDroidLeft");
|
||||||
u->sprite[FACING_RIGHT] = getSpriteIndex("SpreadGunDroidRight");
|
u->sprite[FACING_RIGHT] = getSprite("SpreadGunDroidRight");
|
||||||
u->sprite[FACING_DIE] = getSpriteIndex("SpreadGunDroidDie");
|
u->sprite[FACING_DIE] = getSprite("SpreadGunDroidDie");
|
||||||
|
|
||||||
u->weaponType = WPN_SPREAD;
|
u->weaponType = WPN_SPREAD;
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ void initCell(Entity *e)
|
||||||
|
|
||||||
STRNCPY(i->spriteName, "Battery", MAX_NAME_LENGTH);
|
STRNCPY(i->spriteName, "Battery", MAX_NAME_LENGTH);
|
||||||
|
|
||||||
i->sprite[0] = i->sprite[1] = i->sprite[2] = getSpriteIndex("Battery");
|
i->sprite[0] = i->sprite[1] = i->sprite[2] = getSprite("Battery");
|
||||||
|
|
||||||
i->spriteFrame = 0;
|
i->spriteFrame = 0;
|
||||||
i->spriteTime = -1;
|
i->spriteTime = -1;
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initItem(Entity *e);
|
extern void initItem(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
|
|
|
@ -37,7 +37,7 @@ void initHeart(Entity *e)
|
||||||
|
|
||||||
STRNCPY(i->spriteName, "Heart", MAX_NAME_LENGTH);
|
STRNCPY(i->spriteName, "Heart", MAX_NAME_LENGTH);
|
||||||
|
|
||||||
i->sprite[0] = i->sprite[1] = i->sprite[2] = getSpriteIndex("Heart");
|
i->sprite[0] = i->sprite[1] = i->sprite[2] = getSprite("Heart");
|
||||||
|
|
||||||
i->spriteFrame = 0;
|
i->spriteFrame = 0;
|
||||||
i->spriteTime = -1;
|
i->spriteTime = -1;
|
||||||
|
|
|
@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern void initItem(Entity *e);
|
extern void initItem(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ void initItem(Entity *e)
|
||||||
i->canBeCarried = 0;
|
i->canBeCarried = 0;
|
||||||
i->collected = 0;
|
i->collected = 0;
|
||||||
|
|
||||||
i->sprite[FACING_LEFT] = i->sprite[FACING_RIGHT] = i->sprite[FACING_DIE] = getSpriteIndex(i->spriteName);
|
i->sprite[FACING_LEFT] = i->sprite[FACING_RIGHT] = i->sprite[FACING_DIE] = getSprite(i->spriteName);
|
||||||
|
|
||||||
i->tick = tick;
|
i->tick = tick;
|
||||||
i->touch = touch;
|
i->touch = touch;
|
||||||
|
|
|
@ -24,7 +24,7 @@ extern void playSound(int snd, int ch);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern void addTeleportStars(Entity *e);
|
extern void addTeleportStars(Entity *e);
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void addBobItem(Item *i);
|
extern void addBobItem(Item *i);
|
||||||
extern int numCarriedItems(void);
|
extern int numCarriedItems(void);
|
||||||
extern void addKey(char *name);
|
extern void addKey(char *name);
|
||||||
|
|
|
@ -42,7 +42,7 @@ void initWeaponPickup(Entity *e)
|
||||||
|
|
||||||
i->weaponType = WPN_PISTOL;
|
i->weaponType = WPN_PISTOL;
|
||||||
|
|
||||||
i->sprite[0] = i->sprite[1] = i->sprite[2] = getSpriteIndex("Weapon");
|
i->sprite[0] = i->sprite[1] = i->sprite[2] = getSprite("Weapon");
|
||||||
i->spriteFrame = i->weaponType;
|
i->spriteFrame = i->weaponType;
|
||||||
i->spriteTime = -1;
|
i->spriteTime = -1;
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern void initConsumable(Entity *e);
|
extern void initConsumable(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void pickupItem(void);
|
extern void pickupItem(void);
|
||||||
extern void setEntitySize(Entity *e);
|
extern void setEntitySize(Entity *e);
|
||||||
extern int touchedPlayer(Entity *e);
|
extern int touchedPlayer(Entity *e);
|
||||||
|
|
|
@ -41,7 +41,7 @@ void initDestructable(Entity *e)
|
||||||
|
|
||||||
s->health = s->healthMax = 10;
|
s->health = s->healthMax = 10;
|
||||||
|
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex(s->spriteName);
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite(s->spriteName);
|
||||||
|
|
||||||
s->applyDamage = applyDamage;
|
s->applyDamage = applyDamage;
|
||||||
s->action = action;
|
s->action = action;
|
||||||
|
|
|
@ -25,7 +25,7 @@ extern void dropCarriedItem(void);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern void addExplosion(float x, float y, int radius, Entity *owner);
|
extern void addExplosion(float x, float y, int radius, Entity *owner);
|
||||||
extern void addScorchDecal(int x, int y);
|
extern void addScorchDecal(int x, int y);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ void initInfoPoint(Entity *e)
|
||||||
|
|
||||||
s->type = ET_INFO_POINT;
|
s->type = ET_INFO_POINT;
|
||||||
|
|
||||||
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSpriteIndex("InfoPoint");
|
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSprite("InfoPoint");
|
||||||
|
|
||||||
s->flags |= EF_WEIGHTLESS | EF_IGNORE_BULLETS | EF_NO_CLIP | EF_NO_ENVIRONMENT;
|
s->flags |= EF_WEIGHTLESS | EF_IGNORE_BULLETS | EF_NO_CLIP | EF_NO_ENVIRONMENT;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern void showInfoMessage(char *message);
|
extern void showInfoMessage(char *message);
|
||||||
|
|
||||||
|
|
|
@ -41,11 +41,11 @@ void initCardReader(Entity *e)
|
||||||
|
|
||||||
if (!s->active)
|
if (!s->active)
|
||||||
{
|
{
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("CardReaderIdle");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("CardReaderIdle");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("CardReader");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("CardReader");
|
||||||
}
|
}
|
||||||
|
|
||||||
s->tick = tick;
|
s->tick = tick;
|
||||||
|
@ -81,7 +81,7 @@ static void touch(Entity *other)
|
||||||
removeItem(s->requiredItem);
|
removeItem(s->requiredItem);
|
||||||
|
|
||||||
s->active = 1;
|
s->active = 1;
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("CardReader");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("CardReader");
|
||||||
s->spriteTime = 0;
|
s->spriteTime = 0;
|
||||||
s->spriteFrame = 0;
|
s->spriteFrame = 0;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void removeItem(char *name);
|
extern void removeItem(char *name);
|
||||||
extern int hasItem(char *name);
|
extern int hasItem(char *name);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
|
|
|
@ -49,7 +49,7 @@ void initDoor(Entity *e)
|
||||||
|
|
||||||
s->isLocked = 1;
|
s->isLocked = 1;
|
||||||
|
|
||||||
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSpriteIndex("Door");
|
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSprite("Door");
|
||||||
|
|
||||||
if (s->closedX == -1 && s->closedY == -1)
|
if (s->closedX == -1 && s->closedY == -1)
|
||||||
{
|
{
|
||||||
|
@ -73,7 +73,7 @@ void initBronzeDoor(Entity *e)
|
||||||
|
|
||||||
s->speed = 2;
|
s->speed = 2;
|
||||||
|
|
||||||
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSpriteIndex("BronzeDoor");
|
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSprite("BronzeDoor");
|
||||||
}
|
}
|
||||||
|
|
||||||
void initSilverDoor(Entity *e)
|
void initSilverDoor(Entity *e)
|
||||||
|
@ -88,7 +88,7 @@ void initSilverDoor(Entity *e)
|
||||||
|
|
||||||
s->speed = 2;
|
s->speed = 2;
|
||||||
|
|
||||||
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSpriteIndex("SilverDoor");
|
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSprite("SilverDoor");
|
||||||
}
|
}
|
||||||
|
|
||||||
void initGoldDoor(Entity *e)
|
void initGoldDoor(Entity *e)
|
||||||
|
@ -103,7 +103,7 @@ void initGoldDoor(Entity *e)
|
||||||
|
|
||||||
s->speed = 2;
|
s->speed = 2;
|
||||||
|
|
||||||
s->sprite[0] = s->sprite[1] = e->sprite[2] = getSpriteIndex("GoldDoor");
|
s->sprite[0] = s->sprite[1] = e->sprite[2] = getSprite("GoldDoor");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tick(void)
|
static void tick(void)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2018 Parallel Realities
|
Copyright (C) 2018 Parallel Realities
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
||||||
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2018 Parallel Realities
|
Copyright (C) 2018 Parallel Realities
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
||||||
|
@ -25,17 +25,15 @@ static void action(void);
|
||||||
static void touch(Entity *other);
|
static void touch(Entity *other);
|
||||||
static SDL_Rect *getBounds(void);
|
static SDL_Rect *getBounds(void);
|
||||||
|
|
||||||
void initExit(Entity *e)
|
void initExit(void)
|
||||||
{
|
{
|
||||||
Structure *s;
|
Structure *s;
|
||||||
|
|
||||||
initEntity(e);
|
s = createStructure();
|
||||||
|
|
||||||
s = (Structure*)e;
|
|
||||||
|
|
||||||
s->type = ET_EXIT;
|
s->type = ET_EXIT;
|
||||||
|
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("Exit");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("Exit");
|
||||||
|
|
||||||
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_NO_ENVIRONMENT | EF_IGNORE_BULLETS;
|
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_NO_ENVIRONMENT | EF_IGNORE_BULLETS;
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern void stopMusic(void);
|
extern void stopMusic(void);
|
||||||
extern void initEntity(Entity *e);
|
extern Structure *createStructure(void);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -26,7 +26,7 @@ void initHorizontalDoor(Entity *e)
|
||||||
|
|
||||||
e->type = ET_DOOR;
|
e->type = ET_DOOR;
|
||||||
|
|
||||||
e->sprite[0] = e->sprite[1] = e->sprite[2] = getSpriteIndex("HorizonalDoor");
|
e->sprite[0] = e->sprite[1] = e->sprite[2] = getSprite("HorizonalDoor");
|
||||||
}
|
}
|
||||||
|
|
||||||
void initBronzeHorizontalDoor(Entity *e)
|
void initBronzeHorizontalDoor(Entity *e)
|
||||||
|
|
|
@ -21,4 +21,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initDoor(Entity *e);
|
extern void initDoor(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
|
@ -37,11 +37,11 @@ void initItemPad(Entity *e)
|
||||||
|
|
||||||
if (!e->active)
|
if (!e->active)
|
||||||
{
|
{
|
||||||
e->sprite[FACING_LEFT] = e->sprite[FACING_RIGHT] = e->sprite[FACING_DIE] = getSpriteIndex("ItemPadActive");
|
e->sprite[FACING_LEFT] = e->sprite[FACING_RIGHT] = e->sprite[FACING_DIE] = getSprite("ItemPadActive");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
e->sprite[FACING_LEFT] = e->sprite[FACING_RIGHT] = e->sprite[FACING_DIE] = getSpriteIndex("ItemPadInactive");
|
e->sprite[FACING_LEFT] = e->sprite[FACING_RIGHT] = e->sprite[FACING_DIE] = getSprite("ItemPadInactive");
|
||||||
}
|
}
|
||||||
|
|
||||||
e->tick = tick;
|
e->tick = tick;
|
||||||
|
@ -83,7 +83,7 @@ static void touch(Entity *other)
|
||||||
|
|
||||||
setGameplayMessage(MSG_GAMEPLAY, _("%s removed"), s->requiredItem);
|
setGameplayMessage(MSG_GAMEPLAY, _("%s removed"), s->requiredItem);
|
||||||
|
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("ItemPadActive");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("ItemPadActive");
|
||||||
|
|
||||||
s->spriteFrame = 0;
|
s->spriteFrame = 0;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern void removeItem(char *name);
|
extern void removeItem(char *name);
|
||||||
|
|
|
@ -43,7 +43,7 @@ void initLift(Entity *e)
|
||||||
|
|
||||||
s->startX = s->startY = -1;
|
s->startX = s->startY = -1;
|
||||||
|
|
||||||
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSpriteIndex("Lift");
|
s->sprite[0] = s->sprite[1] = s->sprite[2] = getSprite("Lift");
|
||||||
|
|
||||||
s->active = 1;
|
s->active = 1;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
||||||
extern void observeActivation(Entity *e);
|
extern void observeActivation(Entity *e);
|
||||||
extern int isOnScreen(Entity *e);
|
extern int isOnScreen(Entity *e);
|
||||||
|
|
|
@ -34,7 +34,7 @@ void initPowerPoint(Entity *e)
|
||||||
|
|
||||||
s->type = ET_POWER_POINT;
|
s->type = ET_POWER_POINT;
|
||||||
|
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("PowerPoint");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("PowerPoint");
|
||||||
|
|
||||||
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_NO_ENVIRONMENT | EF_IGNORE_BULLETS;
|
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_NO_ENVIRONMENT | EF_IGNORE_BULLETS;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void activateEntities(char *names, int activate);
|
extern void activateEntities(char *names, int activate);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ void initPowerPool(Entity *e)
|
||||||
|
|
||||||
s->type = ET_POOL;
|
s->type = ET_POOL;
|
||||||
|
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("PowerPool");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("PowerPool");
|
||||||
|
|
||||||
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_IGNORE_BULLETS;
|
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_IGNORE_BULLETS;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
|
|
|
@ -33,7 +33,7 @@ void initPressurePlate(Entity *e)
|
||||||
|
|
||||||
s->type = ET_PRESSURE_PLATE;
|
s->type = ET_PRESSURE_PLATE;
|
||||||
|
|
||||||
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSpriteIndex("PressurePlate");
|
s->sprite[FACING_LEFT] = s->sprite[FACING_RIGHT] = s->sprite[FACING_DIE] = getSprite("PressurePlate");
|
||||||
|
|
||||||
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_NO_ENVIRONMENT | EF_IGNORE_BULLETS;
|
s->flags |= EF_WEIGHTLESS | EF_NO_CLIP | EF_NO_ENVIRONMENT | EF_IGNORE_BULLETS;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void activateEntities(char *names, int activate);
|
extern void activateEntities(char *names, int activate);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2018 Parallel Realities
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
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
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "structures.h"
|
||||||
|
|
||||||
|
Structure *createStructure(void)
|
||||||
|
{
|
||||||
|
Structure *s;
|
||||||
|
|
||||||
|
s = malloc(sizeof(Structure));
|
||||||
|
memset(s, 0, sizeof(Structure));
|
||||||
|
world.entityTail->next = (Entity*)s;
|
||||||
|
world.entityTail = (Entity*)s;
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2018 Parallel Realities
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
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
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "../../common.h"
|
||||||
|
|
||||||
|
extern Structure *createStructure(void);
|
||||||
|
|
||||||
|
extern World world;
|
|
@ -26,5 +26,5 @@ void initHorizontalLaserTrap(Entity *e)
|
||||||
|
|
||||||
e->type = ET_TRAP;
|
e->type = ET_TRAP;
|
||||||
|
|
||||||
e->sprite[0] = e->sprite[1] = e->sprite[2] = getSpriteIndex("HorizontalLaserTrap");
|
e->sprite[0] = e->sprite[1] = e->sprite[2] = getSprite("HorizontalLaserTrap");
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,4 +21,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../../common.h"
|
#include "../../common.h"
|
||||||
|
|
||||||
extern void initLaserTrap(Entity *e);
|
extern void initLaserTrap(Entity *e);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
|
@ -41,7 +41,7 @@ void initLaserTrap(Entity *e)
|
||||||
t->onTime = FPS * 2;
|
t->onTime = FPS * 2;
|
||||||
t->offTime = FPS * 2;
|
t->offTime = FPS * 2;
|
||||||
|
|
||||||
t->sprite[0] = t->sprite[1] = t->sprite[2] = getSpriteIndex("LaserTrap");
|
t->sprite[0] = t->sprite[1] = t->sprite[2] = getSprite("LaserTrap");
|
||||||
|
|
||||||
t->active = 1;
|
t->active = 1;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ extern void initEntity(Entity *e);
|
||||||
extern void observeActivation(Entity *e);
|
extern void observeActivation(Entity *e);
|
||||||
extern int isOnScreen(Entity *e);
|
extern int isOnScreen(Entity *e);
|
||||||
extern void setGameplayMessage(int type, char *format, ...);
|
extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern void stunBob(void);
|
extern void stunBob(void);
|
||||||
extern void addSparkParticles(float x, float y);
|
extern void addSparkParticles(float x, float y);
|
||||||
|
|
|
@ -122,7 +122,7 @@ struct Entity {
|
||||||
int environment;
|
int environment;
|
||||||
int thinkTime;
|
int thinkTime;
|
||||||
int facing;
|
int facing;
|
||||||
int sprite[3];
|
Sprite *sprite[3];
|
||||||
int plane;
|
int plane;
|
||||||
int isSolid;
|
int isSolid;
|
||||||
int isStatic;
|
int isStatic;
|
||||||
|
@ -144,7 +144,7 @@ struct Entity {
|
||||||
void (*activate)(int active);
|
void (*activate)(int active);
|
||||||
void (*applyDamage)(int amount);
|
void (*applyDamage)(int amount);
|
||||||
void (*changeEnvironment)(void);
|
void (*changeEnvironment)(void);
|
||||||
int (*getCurrentSprite)(void);
|
Sprite *(*getCurrentSprite)(void);
|
||||||
int (*preSave)(void);
|
int (*preSave)(void);
|
||||||
SDL_Rect *(*getBounds)(void);
|
SDL_Rect *(*getBounds)(void);
|
||||||
Entity *next;
|
Entity *next;
|
||||||
|
@ -355,7 +355,7 @@ typedef struct {
|
||||||
} Game;
|
} Game;
|
||||||
|
|
||||||
struct Marker {
|
struct Marker {
|
||||||
int sprite;
|
Sprite *sprite;
|
||||||
float value;
|
float value;
|
||||||
float y;
|
float y;
|
||||||
Marker *next;
|
Marker *next;
|
||||||
|
@ -402,8 +402,8 @@ struct Particle {
|
||||||
float r;
|
float r;
|
||||||
float g;
|
float g;
|
||||||
float b;
|
float b;
|
||||||
int spriteIndex;
|
Sprite *spriteIndex;
|
||||||
double spriteTime;
|
float spriteTime;
|
||||||
int spriteFrame;
|
int spriteFrame;
|
||||||
int destroyAfterAnim;
|
int destroyAfterAnim;
|
||||||
int onScreen;
|
int onScreen;
|
||||||
|
|
|
@ -25,7 +25,6 @@ static void loadGameSprites(void);
|
||||||
static void loadSpriteList(char *filename);
|
static void loadSpriteList(char *filename);
|
||||||
void loadSprite(cJSON *root);
|
void loadSprite(cJSON *root);
|
||||||
|
|
||||||
static Tuple spriteMapHead;
|
|
||||||
static Sprite spriteHead;
|
static Sprite spriteHead;
|
||||||
static Sprite *spriteTail;
|
static Sprite *spriteTail;
|
||||||
|
|
||||||
|
@ -37,42 +36,6 @@ void initSprites(void)
|
||||||
loadGameSprites();
|
loadGameSprites();
|
||||||
}
|
}
|
||||||
|
|
||||||
int getSpriteIndex(char *key)
|
|
||||||
{
|
|
||||||
Tuple *t;
|
|
||||||
|
|
||||||
for (t = spriteMapHead.next ; t != NULL ; t = t->next)
|
|
||||||
{
|
|
||||||
if (strcmp(t->key, key) == 0)
|
|
||||||
{
|
|
||||||
return t->value.i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_ERROR, "No such sprite '%s'", key);
|
|
||||||
exit(1);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sprite *getSpriteByIndex(int x)
|
|
||||||
{
|
|
||||||
Sprite *s;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (s = spriteHead.next ; s != NULL ; s = s->next)
|
|
||||||
{
|
|
||||||
if (i == x)
|
|
||||||
{
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sprite *getSprite(char *name)
|
Sprite *getSprite(char *name)
|
||||||
{
|
{
|
||||||
Sprite *s;
|
Sprite *s;
|
||||||
|
@ -101,14 +64,6 @@ void animateSprites(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void addSpriteFrame(Sprite *s, SDL_Rect frame, int time)
|
|
||||||
{
|
|
||||||
s->frames[s->numFrames] = frame;
|
|
||||||
s->times[s->numFrames] = time;
|
|
||||||
|
|
||||||
s->numFrames++;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void animateSprite(Sprite *s)
|
static void animateSprite(Sprite *s)
|
||||||
{
|
{
|
||||||
if (s->currentTime != -1)
|
if (s->currentTime != -1)
|
||||||
|
@ -210,8 +165,3 @@ void loadSprite(cJSON *root)
|
||||||
void destroySprites(void)
|
void destroySprites(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void addSpriteFrames(Sprite *sprite, cJSON *root)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -20,25 +20,25 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
|
|
||||||
static int fleshChunk[3];
|
static Sprite *fleshChunk[3];
|
||||||
static int debris[3];
|
static Sprite *debris[3];
|
||||||
|
|
||||||
void initEffects(void)
|
void initEffects(void)
|
||||||
{
|
{
|
||||||
fleshChunk[0] = getSpriteIndex("FleshChunk1");
|
fleshChunk[0] = getSprite("FleshChunk1");
|
||||||
fleshChunk[1] = getSpriteIndex("FleshChunk2");
|
fleshChunk[1] = getSprite("FleshChunk2");
|
||||||
fleshChunk[2] = getSpriteIndex("FleshChunk3");
|
fleshChunk[2] = getSprite("FleshChunk3");
|
||||||
|
|
||||||
debris[0] = getSpriteIndex("Debris1");
|
debris[0] = getSprite("Debris1");
|
||||||
debris[1] = getSpriteIndex("Debris2");
|
debris[1] = getSprite("Debris2");
|
||||||
debris[2] = getSpriteIndex("Debris3");
|
debris[2] = getSprite("Debris3");
|
||||||
}
|
}
|
||||||
|
|
||||||
void addExplosionEffect(int x, int y, float dx, float dy)
|
void addExplosionEffect(int x, int y, float dx, float dy)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void addSmallFleshChunk(double x, double y)
|
void addSmallFleshChunk(float x, float y)
|
||||||
{
|
{
|
||||||
Decoration *chunk;
|
Decoration *chunk;
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ void addSmallFleshChunk(double x, double y)
|
||||||
chunk->sprite[0] = chunk->sprite[1] = chunk->sprite[2] = fleshChunk[0];
|
chunk->sprite[0] = chunk->sprite[1] = chunk->sprite[2] = fleshChunk[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
void throwFleshChunks(double x, double y, int amount)
|
void throwFleshChunks(float x, float y, int amount)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Decoration *chunk;
|
Decoration *chunk;
|
||||||
|
|
|
@ -21,6 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "../common.h"
|
#include "../common.h"
|
||||||
|
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
|
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -23,21 +23,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
static void throwItem(Item *i);
|
static void throwItem(Item *i);
|
||||||
static int getRandomPlayerWeaponAt(int x, int y);
|
static int getRandomPlayerWeaponAt(int x, int y);
|
||||||
|
|
||||||
static int wpnIconSprite;
|
static Sprite *wpnIconSprite;
|
||||||
static int cherrySprite[3];
|
static Sprite *cherrySprite[3];
|
||||||
static int batterySprite;
|
static Sprite *batterySprite;
|
||||||
|
|
||||||
void initItems(void)
|
void initItems(void)
|
||||||
{
|
{
|
||||||
wpnIconSprite = getSpriteIndex("Weapon");
|
wpnIconSprite = getSprite("Weapon");
|
||||||
batterySprite = getSpriteIndex("Battery");
|
batterySprite = getSprite("Battery");
|
||||||
|
|
||||||
cherrySprite[0] = getSpriteIndex("Cherry");
|
cherrySprite[0] = getSprite("Cherry");
|
||||||
cherrySprite[1] = getSpriteIndex("DualCherry");
|
cherrySprite[1] = getSprite("DualCherry");
|
||||||
cherrySprite[2] = getSpriteIndex("CherryBunch");
|
cherrySprite[2] = getSprite("CherryBunch");
|
||||||
}
|
}
|
||||||
|
|
||||||
void addRandomWeapon(double x, double y)
|
void addRandomWeapon(float x, float y)
|
||||||
{
|
{
|
||||||
Item *wpn;
|
Item *wpn;
|
||||||
int type;
|
int type;
|
||||||
|
@ -87,10 +87,10 @@ static int getRandomPlayerWeaponAt(int x, int y)
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dropRandomCherry(double x, double y)
|
void dropRandomCherry(float x, float y)
|
||||||
{
|
{
|
||||||
Item *i;
|
Item *i;
|
||||||
double r;
|
int r;
|
||||||
|
|
||||||
i = malloc(sizeof(Item));
|
i = malloc(sizeof(Item));
|
||||||
memset(i, 0, sizeof(Item));
|
memset(i, 0, sizeof(Item));
|
||||||
|
@ -124,10 +124,10 @@ void dropRandomCherry(double x, double y)
|
||||||
throwItem(i);
|
throwItem(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dropBattery(double x, double y)
|
void dropBattery(float x, float y)
|
||||||
{
|
{
|
||||||
Item *i;
|
Item *i;
|
||||||
double r;
|
int r;
|
||||||
|
|
||||||
i = malloc(sizeof(Item));
|
i = malloc(sizeof(Item));
|
||||||
memset(i, 0, sizeof(Item));
|
memset(i, 0, sizeof(Item));
|
||||||
|
|
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern int getRandomPlayerWeapon(int excludeGrenades);
|
extern int getRandomPlayerWeapon(int excludeGrenades);
|
||||||
extern int getSpriteIndex(char *name);
|
extern Sprite *getSprite(char *name);
|
||||||
extern void addRandomItems(float x, float y);
|
extern void addRandomItems(float x, float y);
|
||||||
|
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -23,25 +23,25 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
static void animate(Particle *p);
|
static void animate(Particle *p);
|
||||||
static Particle *createParticle(void);
|
static Particle *createParticle(void);
|
||||||
|
|
||||||
static int bloodSprite[3];
|
static Sprite *bloodSprite[3];
|
||||||
static int explosionSprite[2];
|
static Sprite *explosionSprite[2];
|
||||||
static int flameSprite;
|
static Sprite *flameSprite;
|
||||||
static int smokeSprite;
|
static Sprite *smokeSprite;
|
||||||
static int teleportStarSprite;
|
static Sprite *teleportStarSprite;
|
||||||
|
|
||||||
void initParticles(void)
|
void initParticles(void)
|
||||||
{
|
{
|
||||||
bloodSprite[0] = getSpriteIndex("Blood1");
|
bloodSprite[0] = getSprite("Blood1");
|
||||||
bloodSprite[1] = getSpriteIndex("Blood2");
|
bloodSprite[1] = getSprite("Blood2");
|
||||||
bloodSprite[2] = getSpriteIndex("Blood3");
|
bloodSprite[2] = getSprite("Blood3");
|
||||||
|
|
||||||
explosionSprite[0] = getSpriteIndex("Explosion1");
|
explosionSprite[0] = getSprite("Explosion1");
|
||||||
explosionSprite[1] = getSpriteIndex("Explosion2");
|
explosionSprite[1] = getSprite("Explosion2");
|
||||||
|
|
||||||
flameSprite = getSpriteIndex("Flame");
|
flameSprite = getSprite("Flame");
|
||||||
smokeSprite = getSpriteIndex("Smoke");
|
smokeSprite = getSprite("Smoke");
|
||||||
|
|
||||||
teleportStarSprite = getSpriteIndex("TeleportStar");
|
teleportStarSprite = getSprite("TeleportStar");
|
||||||
}
|
}
|
||||||
|
|
||||||
void addBlood(float x, float y)
|
void addBlood(float x, float y)
|
||||||
|
@ -239,19 +239,7 @@ void doParticles(void)
|
||||||
|
|
||||||
static void animate(Particle *p)
|
static void animate(Particle *p)
|
||||||
{
|
{
|
||||||
Sprite *s;
|
|
||||||
|
|
||||||
if (p->spriteTime != -1)
|
|
||||||
{
|
|
||||||
p->spriteTime--;
|
|
||||||
|
|
||||||
if (p->spriteTime <= 0)
|
|
||||||
{
|
|
||||||
s = getSprite(p->spriteIndex);
|
|
||||||
p->spriteFrame = (int) wrap(++p->spriteFrame, 0, s->numFrames);
|
|
||||||
p->spriteTime = s->times[p->spriteFrame];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Particle *createParticle(void)
|
static Particle *createParticle(void)
|
||||||
|
|
|
@ -20,8 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "../common.h"
|
#include "../common.h"
|
||||||
|
|
||||||
extern Sprite *getSprite(int i);
|
extern Sprite *getSprite(char *name);
|
||||||
extern int getSpriteIndex(char *name);
|
|
||||||
extern float wrap(float value, float low, float high);
|
extern float wrap(float value, float low, float high);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
extern double randF(void);
|
extern double randF(void);
|
||||||
|
|
Loading…
Reference in New Issue