Stats updates. Start of trophy code.
This commit is contained in:
parent
81910dadf4
commit
ea323685c9
|
@ -48,7 +48,7 @@ _OBJS += particles.o player.o plasmaBlob.o plasmaDroid.o pistolBlob.o pistolDroi
|
||||||
_OBJS += quadtree.o
|
_OBJS += quadtree.o
|
||||||
_OBJS += radar.o
|
_OBJS += radar.o
|
||||||
_OBJS += shotgunBlob.o shotgunDroid.o sound.o spreadGunBlob.o spreadGunDroid.o sprites.o structures.o
|
_OBJS += shotgunBlob.o shotgunDroid.o sound.o spreadGunBlob.o spreadGunDroid.o sprites.o structures.o
|
||||||
_OBJS += tankCommander.o tankTrack.o teeka.o teleporter.o text.o textures.o title.o transition.o triggers.o
|
_OBJS += tankCommander.o tankTrack.o teeka.o teleporter.o text.o textures.o title.o transition.o triggers.o trophies.o
|
||||||
_OBJS += unit.o util.o
|
_OBJS += unit.o util.o
|
||||||
_OBJS += weapons.o weaponPickup.o widgets.o world.o worldLoader.o worldSaver.o
|
_OBJS += weapons.o weaponPickup.o widgets.o world.o worldLoader.o worldSaver.o
|
||||||
|
|
||||||
|
|
22
src/defs.h
22
src/defs.h
|
@ -321,3 +321,25 @@ enum
|
||||||
WT_SPINNER,
|
WT_SPINNER,
|
||||||
WT_PLAIN_BUTTON
|
WT_PLAIN_BUTTON
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
STAT_KEYS_FOUND,
|
||||||
|
STAT_CELLS_FOUND,
|
||||||
|
STAT_HEARTS_FOUND,
|
||||||
|
STAT_DEATHS,
|
||||||
|
STAT_SHOTS_FIRED,
|
||||||
|
STAT_SHOTS_HIT,
|
||||||
|
STAT_EYE_DROID_EXPLOSION_KILLS,
|
||||||
|
STAT_FLY_TIME,
|
||||||
|
STAT_SWIM_TIME,
|
||||||
|
STAT_CHERRIES_PICKED_UP,
|
||||||
|
STAT_BATTERIES_PICKED_UP,
|
||||||
|
STAT_WEAPONS_PICKED_UP,
|
||||||
|
STAT_ENEMIES_KILLED,
|
||||||
|
STAT_TARGETS_DEFEATED,
|
||||||
|
STAT_MIAS_RESCUED,
|
||||||
|
STAT_MISSIONS_PLAYED,
|
||||||
|
STAT_TIME_PLAYED,
|
||||||
|
STAT_MAX
|
||||||
|
};
|
||||||
|
|
|
@ -116,7 +116,6 @@ static void tick(void)
|
||||||
world.bob->health = world.bob->healthMax;
|
world.bob->health = world.bob->healthMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if (world.isTrainingMission)
|
if (world.isTrainingMission)
|
||||||
{
|
{
|
||||||
world.bob->power = MIN(world.bob->power + 0.01, world.bob->powerMax);
|
world.bob->power = MIN(world.bob->power + 0.01, world.bob->powerMax);
|
||||||
|
@ -125,7 +124,6 @@ static void tick(void)
|
||||||
{
|
{
|
||||||
world.bob->power = MIN(world.bob->power + 0.00065, world.bob->powerMax);
|
world.bob->power = MIN(world.bob->power + 0.00065, world.bob->powerMax);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
if (dev.cheatPower)
|
if (dev.cheatPower)
|
||||||
{
|
{
|
||||||
|
@ -370,7 +368,7 @@ static void doDying(void)
|
||||||
|
|
||||||
playSound(SND_SPLAT, CH_BOB);
|
playSound(SND_SPLAT, CH_BOB);
|
||||||
|
|
||||||
game.deaths++;
|
game.stats[STAT_DEATHS]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -497,6 +495,8 @@ static void bobSwim(void)
|
||||||
activate(1);
|
activate(1);
|
||||||
clearControl(CONTROL_JETPACK);
|
clearControl(CONTROL_JETPACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
game.stats[STAT_SWIM_TIME]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bobFly(void)
|
static void bobFly(void)
|
||||||
|
@ -536,6 +536,8 @@ static void bobFly(void)
|
||||||
|
|
||||||
world.bob->dx = MIN(FLY_SPEED, MAX(world.bob->dx, -FLY_SPEED));
|
world.bob->dx = MIN(FLY_SPEED, MAX(world.bob->dx, -FLY_SPEED));
|
||||||
world.bob->dy = MIN(FLY_SPEED, MAX(world.bob->dy, -FLY_SPEED));
|
world.bob->dy = MIN(FLY_SPEED, MAX(world.bob->dy, -FLY_SPEED));
|
||||||
|
|
||||||
|
game.stats[STAT_FLY_TIME]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fireWeapon(void)
|
static void fireWeapon(void)
|
||||||
|
@ -550,7 +552,6 @@ static void fireWeapon(void)
|
||||||
break;
|
break;
|
||||||
case WPN_SPREAD:
|
case WPN_SPREAD:
|
||||||
fireSpread((Entity*)world.bob, 3);
|
fireSpread((Entity*)world.bob, 3);
|
||||||
game.statShotsFired[WPN_SPREAD] += 2;
|
|
||||||
break;
|
break;
|
||||||
case WPN_LASER:
|
case WPN_LASER:
|
||||||
fireLaser((Entity*)world.bob);
|
fireLaser((Entity*)world.bob);
|
||||||
|
@ -562,7 +563,7 @@ static void fireWeapon(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
game.statShotsFired[world.bob->weaponType]++;
|
game.stats[STAT_SHOTS_FIRED]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -125,8 +125,7 @@ static void preTeleport(void)
|
||||||
|
|
||||||
m = (MIA*)self;
|
m = (MIA*)self;
|
||||||
|
|
||||||
m->teleportTimer--;
|
if (--m->teleportTimer <= FPS)
|
||||||
if (m->teleportTimer <= FPS)
|
|
||||||
{
|
{
|
||||||
m->action = teleport;
|
m->action = teleport;
|
||||||
m->flags |= (EF_NO_CLIP | EF_WEIGHTLESS);
|
m->flags |= (EF_NO_CLIP | EF_WEIGHTLESS);
|
||||||
|
@ -140,11 +139,10 @@ static void teleport(void)
|
||||||
|
|
||||||
m = (MIA*)self;
|
m = (MIA*)self;
|
||||||
|
|
||||||
m->teleportTimer--;
|
if (--m->teleportTimer <= 0)
|
||||||
if (m->teleportTimer <= 0)
|
|
||||||
{
|
{
|
||||||
addTeleportStars(self);
|
addTeleportStars(self);
|
||||||
addRescuedMIA(m->name);
|
game.stats[STAT_MIAS_RESCUED]++;
|
||||||
updateObjective("MIA");
|
updateObjective("MIA");
|
||||||
m->alive = ALIVE_DEAD;
|
m->alive = ALIVE_DEAD;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,8 +27,8 @@ extern void addTeleportStars(Entity *e);
|
||||||
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);
|
||||||
extern void addRescuedMIA(char *name);
|
|
||||||
extern void initEntity(Entity *e);
|
extern void initEntity(Entity *e);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
|
extern Game game;
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -384,8 +384,8 @@ static void die2(void)
|
||||||
|
|
||||||
updateObjective(b->name);
|
updateObjective(b->name);
|
||||||
|
|
||||||
addDefeatedTarget(b->name);
|
game.stats[STAT_TARGETS_DEFEATED]++;
|
||||||
|
|
||||||
game.enemiesKilled++;
|
game.stats[STAT_ENEMIES_KILLED]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,6 @@ 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);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern void addDefeatedTarget(char *name);
|
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
extern Game game;
|
extern Game game;
|
||||||
|
|
|
@ -376,9 +376,11 @@ static void die2()
|
||||||
|
|
||||||
updateObjective(b->name);
|
updateObjective(b->name);
|
||||||
|
|
||||||
addDefeatedTarget(b->name);
|
game.stats[STAT_TARGETS_DEFEATED]++;
|
||||||
|
|
||||||
game.enemiesKilled++;
|
awardTrophy("");
|
||||||
|
|
||||||
|
game.stats[STAT_ENEMIES_KILLED]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,13 +29,13 @@ extern void addSmokeParticles(float x, float y);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
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 addDefeatedTarget(char *name);
|
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern double randF(void);
|
extern double randF(void);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
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);
|
||||||
extern void addExplosion(float x, float y, int radius, Entity *owner);
|
extern void addExplosion(float x, float y, int radius, Entity *owner);
|
||||||
|
extern void awardTrophy(char *id);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
extern Game game;
|
extern Game game;
|
||||||
|
|
|
@ -330,9 +330,11 @@ static void die2(void)
|
||||||
|
|
||||||
updateObjective(b->name);
|
updateObjective(b->name);
|
||||||
|
|
||||||
addDefeatedTarget(b->name);
|
game.stats[STAT_TARGETS_DEFEATED]++;
|
||||||
|
|
||||||
game.enemiesKilled++;
|
awardTrophy("");
|
||||||
|
|
||||||
|
game.stats[STAT_ENEMIES_KILLED]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ extern float limit(float i, float a, float b);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
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 addDefeatedTarget(char *name);
|
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern void playSound(int snd, int ch);
|
extern void playSound(int snd, int ch);
|
||||||
extern Bullet *createBaseBullet(Unit *owner);
|
extern Bullet *createBaseBullet(Unit *owner);
|
||||||
|
@ -36,6 +35,7 @@ extern void getSlope(int x1, int y1, int x2, int y2, float *dx, float *dy);
|
||||||
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 void initTankTrack(Entity *e);
|
extern void initTankTrack(Entity *e);
|
||||||
|
extern void awardTrophy(char *id);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
extern Game game;
|
extern Game game;
|
||||||
|
|
|
@ -118,7 +118,7 @@ static void touch(Entity *other)
|
||||||
|
|
||||||
if (b->owner->type == world.bob->type)
|
if (b->owner->type == world.bob->type)
|
||||||
{
|
{
|
||||||
game.statShotsHit[b->weaponType]++;
|
game.stats[STAT_SHOTS_HIT]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,7 @@ static void touch(Entity *other)
|
||||||
|
|
||||||
if (b->owner->type == world.bob->type)
|
if (b->owner->type == world.bob->type)
|
||||||
{
|
{
|
||||||
game.statShotsHit[WPN_GRENADES]++;
|
game.stats[STAT_SHOTS_HIT]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(other->flags & EF_BOMB_SHIELD))
|
if (!(other->flags & EF_BOMB_SHIELD))
|
||||||
|
|
|
@ -74,7 +74,7 @@ static void touch(Entity *other)
|
||||||
|
|
||||||
if (b->owner->type == world.bob->type)
|
if (b->owner->type == world.bob->type)
|
||||||
{
|
{
|
||||||
game.statShotsHit[WPN_LASER]++;
|
game.stats[STAT_SHOTS_HIT]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (other->type == ET_BOB && world.bob->stunTimer == 0)
|
if (other->type == ET_BOB && world.bob->stunTimer == 0)
|
||||||
|
|
|
@ -85,10 +85,10 @@ static void die2(void)
|
||||||
|
|
||||||
if (u->isMissionTarget)
|
if (u->isMissionTarget)
|
||||||
{
|
{
|
||||||
addDefeatedTarget(u->name);
|
game.stats[STAT_TARGETS_DEFEATED]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
game.enemiesKilled++;
|
game.stats[STAT_ENEMIES_KILLED]++;
|
||||||
|
|
||||||
mx = (int) ((u->x + (u->w / 2)) / MAP_TILE_SIZE);
|
mx = (int) ((u->x + (u->w / 2)) / MAP_TILE_SIZE);
|
||||||
my = (int) (u->y / MAP_TILE_SIZE) + 1;
|
my = (int) (u->y / MAP_TILE_SIZE) + 1;
|
||||||
|
|
|
@ -30,7 +30,6 @@ extern void playSound(int snd, int ch);
|
||||||
extern void addBloodDecal(int x, int y);
|
extern void addBloodDecal(int x, int y);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern int enemyCanSeePlayer(Entity *e);
|
extern int enemyCanSeePlayer(Entity *e);
|
||||||
extern void addDefeatedTarget(char *name);
|
|
||||||
extern void fireTriggers(char *name);
|
extern void fireTriggers(char *name);
|
||||||
extern void addRandomItems(float x, float y);
|
extern void addRandomItems(float x, float y);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
|
|
|
@ -93,10 +93,10 @@ static void touch(Entity *other)
|
||||||
|
|
||||||
if (u->isMissionTarget)
|
if (u->isMissionTarget)
|
||||||
{
|
{
|
||||||
addDefeatedTarget(u->name);
|
game.stats[STAT_TARGETS_DEFEATED]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
game.enemiesKilled++;
|
game.stats[STAT_ENEMIES_KILLED]++;
|
||||||
|
|
||||||
mx = (int) ((u->x + (u->w / 2)) / MAP_TILE_SIZE);
|
mx = (int) ((u->x + (u->w / 2)) / MAP_TILE_SIZE);
|
||||||
my = (int) ((u->y + u->h) / MAP_TILE_SIZE) + 1;
|
my = (int) ((u->y + u->h) / MAP_TILE_SIZE) + 1;
|
||||||
|
|
|
@ -28,7 +28,6 @@ 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 updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern int enemyCanSeePlayer(Entity *e);
|
extern int enemyCanSeePlayer(Entity *e);
|
||||||
extern void addDefeatedTarget(char *name);
|
|
||||||
extern void fireTriggers(char *name);
|
extern void fireTriggers(char *name);
|
||||||
extern void addRandomItems(float x, float y);
|
extern void addRandomItems(float x, float y);
|
||||||
extern int rrnd(int low, int high);
|
extern int rrnd(int low, int high);
|
||||||
|
|
|
@ -51,5 +51,7 @@ static void touch(Entity *other)
|
||||||
pickupItem();
|
pickupItem();
|
||||||
|
|
||||||
playSound(SND_ITEM, CH_ITEM);
|
playSound(SND_ITEM, CH_ITEM);
|
||||||
|
|
||||||
|
game.stats[STAT_BATTERIES_PICKED_UP]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,4 +27,5 @@ extern void setGameplayMessage(int type, char *format, ...);
|
||||||
extern int touchedPlayer(Entity *e);
|
extern int touchedPlayer(Entity *e);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
|
extern Game game;
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -50,6 +50,8 @@ static void touch(Entity *other)
|
||||||
{
|
{
|
||||||
game.cells++;
|
game.cells++;
|
||||||
|
|
||||||
|
game.stats[STAT_CELLS_FOUND]++;
|
||||||
|
|
||||||
world.bob->power = world.bob->powerMax = game.cells;
|
world.bob->power = world.bob->powerMax = game.cells;
|
||||||
|
|
||||||
setGameplayMessage(MSG_OBJECTIVE, _("Found a battery cell - Max power increased!"));
|
setGameplayMessage(MSG_OBJECTIVE, _("Found a battery cell - Max power increased!"));
|
||||||
|
|
|
@ -48,5 +48,7 @@ static void touch(Entity *other)
|
||||||
pickupItem();
|
pickupItem();
|
||||||
|
|
||||||
playSound(SND_CHERRY, CH_BOB);
|
playSound(SND_CHERRY, CH_BOB);
|
||||||
|
|
||||||
|
game.stats[STAT_CHERRIES_PICKED_UP]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,4 +28,5 @@ extern void pickupItem(void);
|
||||||
extern float limit(float i, float a, float b);
|
extern float limit(float i, float a, float b);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
|
extern Game game;
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -62,6 +62,8 @@ static void touch(Entity *other)
|
||||||
{
|
{
|
||||||
game.hearts++;
|
game.hearts++;
|
||||||
|
|
||||||
|
game.stats[STAT_HEARTS_FOUND]++;
|
||||||
|
|
||||||
world.bob->health = world.bob->healthMax = game.hearts;
|
world.bob->health = world.bob->healthMax = game.hearts;
|
||||||
|
|
||||||
setGameplayMessage(MSG_OBJECTIVE, _("Found a heart - Max health increased!"));
|
setGameplayMessage(MSG_OBJECTIVE, _("Found a heart - Max health increased!"));
|
||||||
|
|
|
@ -135,7 +135,7 @@ static void bobPickupItem(void)
|
||||||
if (i->thinkTime == 0)
|
if (i->thinkTime == 0)
|
||||||
{
|
{
|
||||||
addItem(i);
|
addItem(i);
|
||||||
game.keysFound++;
|
game.stats[STAT_KEYS_FOUND]++;
|
||||||
updateObjective("KEY");
|
updateObjective("KEY");
|
||||||
|
|
||||||
setGameplayMessage(MSG_STANDARD, _("Picked up a %s"), i->name);
|
setGameplayMessage(MSG_STANDARD, _("Picked up a %s"), i->name);
|
||||||
|
|
|
@ -106,5 +106,7 @@ static void touchWhiteKeycard(Entity *other)
|
||||||
updateObjective("White Keycard");
|
updateObjective("White Keycard");
|
||||||
|
|
||||||
teekaExitMission();
|
teekaExitMission();
|
||||||
|
|
||||||
|
awardTrophy("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,5 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
extern Entity *createItem(void);
|
extern Entity *createItem(void);
|
||||||
extern void updateObjective(char *targetName);
|
extern void updateObjective(char *targetName);
|
||||||
extern void teekaExitMission(void);
|
extern void teekaExitMission(void);
|
||||||
|
extern void awardTrophy(char *id);
|
||||||
|
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -96,5 +96,7 @@ static void touch(Entity *other)
|
||||||
pickupItem();
|
pickupItem();
|
||||||
|
|
||||||
playSound(SND_WEAPON, CH_ITEM);
|
playSound(SND_WEAPON, CH_ITEM);
|
||||||
|
|
||||||
|
game.stats[STAT_WEAPONS_PICKED_UP]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,4 +29,5 @@ extern const char *getWeaponName(int i);
|
||||||
extern Entity *initConsumable(void);
|
extern Entity *initConsumable(void);
|
||||||
|
|
||||||
extern Entity *self;
|
extern Entity *self;
|
||||||
|
extern Game game;
|
||||||
extern World world;
|
extern World world;
|
||||||
|
|
|
@ -32,39 +32,11 @@ void initGame(void)
|
||||||
game.cells = 5;
|
game.cells = 5;
|
||||||
game.hearts = 10;
|
game.hearts = 10;
|
||||||
|
|
||||||
game.timePlayed = 0;
|
game.stats[STAT_TIME_PLAYED] = 0;
|
||||||
|
|
||||||
loadMetaInfo();
|
loadMetaInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
void addRescuedMIA(char *name)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0 ; i < game.totalMIAs ; i++)
|
|
||||||
{
|
|
||||||
if (strcmp(game.mias[i], "") == 0)
|
|
||||||
{
|
|
||||||
STRNCPY(game.mias[i], name, MAX_NAME_LENGTH);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void addDefeatedTarget(char *name)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0 ; i < game.totalTargets ; i++)
|
|
||||||
{
|
|
||||||
if (strcmp(game.targets[i], "") == 0)
|
|
||||||
{
|
|
||||||
STRNCPY(game.targets[i], name, MAX_NAME_LENGTH);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int getNumItemsCarried(void)
|
int getNumItemsCarried(void)
|
||||||
{
|
{
|
||||||
int rtn, i;
|
int rtn, i;
|
||||||
|
@ -265,7 +237,6 @@ static void loadMetaInfo(void)
|
||||||
{
|
{
|
||||||
cJSON *root;
|
cJSON *root;
|
||||||
char *text;
|
char *text;
|
||||||
int i;
|
|
||||||
|
|
||||||
text = readFile("data/meta/meta.json");
|
text = readFile("data/meta/meta.json");
|
||||||
|
|
||||||
|
@ -279,18 +250,6 @@ static void loadMetaInfo(void)
|
||||||
|
|
||||||
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Meta [keys=%d, targets=%d, mias=%d, hearts=%d, cells=%d]", game.totalKeys, game.totalTargets, game.totalMIAs, game.totalHearts, game.totalCells);
|
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Meta [keys=%d, targets=%d, mias=%d, hearts=%d, cells=%d]", game.totalKeys, game.totalTargets, game.totalMIAs, game.totalHearts, game.totalCells);
|
||||||
|
|
||||||
game.mias = malloc(sizeof(char*) * game.totalMIAs);
|
|
||||||
for (i = 0 ; i < game.totalMIAs ; i++)
|
|
||||||
{
|
|
||||||
game.mias[i] = malloc(MAX_NAME_LENGTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
game.targets = malloc(sizeof(char*) * game.totalTargets);
|
|
||||||
for (i = 0 ; i < game.totalTargets ; i++)
|
|
||||||
{
|
|
||||||
game.targets[i] = malloc(MAX_NAME_LENGTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
cJSON_Delete(root);
|
cJSON_Delete(root);
|
||||||
|
|
||||||
free(text);
|
free(text);
|
||||||
|
|
|
@ -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 "trophies.h"
|
||||||
|
|
||||||
|
void awardTrophy(char *id)
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
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"
|
|
@ -71,7 +71,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
frames = 0;
|
frames = 0;
|
||||||
|
|
||||||
game.timePlayed++;
|
game.stats[STAT_TIME_PLAYED]++;
|
||||||
|
|
||||||
nextSecond = SDL_GetTicks() + 1000;
|
nextSecond = SDL_GetTicks() + 1000;
|
||||||
}
|
}
|
||||||
|
|
|
@ -345,25 +345,16 @@ typedef struct {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int cells;
|
int cells;
|
||||||
int hearts;
|
int hearts;
|
||||||
int keysFound;
|
|
||||||
int totalMIAs;
|
int totalMIAs;
|
||||||
int totalTargets;
|
int totalTargets;
|
||||||
int totalCells;
|
int totalCells;
|
||||||
int totalHearts;
|
int totalHearts;
|
||||||
int totalKeys;
|
int totalKeys;
|
||||||
int deaths;
|
unsigned int stats[STAT_MAX];
|
||||||
int statShotsFired[WPN_ANY];
|
|
||||||
int statShotsHit[WPN_ANY];
|
|
||||||
int enemiesKilled;
|
|
||||||
int missionsPlayed;
|
|
||||||
long timePlayed;
|
|
||||||
char worldId[MAX_NAME_LENGTH];
|
char worldId[MAX_NAME_LENGTH];
|
||||||
int isResumingMission;
|
int isResumingMission;
|
||||||
int isComplete;
|
int isComplete;
|
||||||
char **mias;
|
|
||||||
char **targets;
|
|
||||||
Tuple keys[MAX_KEY_TYPES];
|
Tuple keys[MAX_KEY_TYPES];
|
||||||
Tuple originalKeys[MAX_KEY_TYPES];
|
|
||||||
Tuple missionStatusHead, *missionStatusTail;
|
Tuple missionStatusHead, *missionStatusTail;
|
||||||
} Game;
|
} Game;
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
void initAtlasTest(void)
|
void initAtlasTest(void)
|
||||||
{
|
{
|
||||||
dev.cheatStatic = 0;
|
dev.cheatStatic = 0;
|
||||||
dev.cheatBlind = 0;
|
dev.cheatBlind = 1;
|
||||||
dev.cheatNoEnemies = 0;
|
dev.cheatNoEnemies = 0;
|
||||||
dev.cheatKeys = 1;
|
dev.cheatKeys = 0;
|
||||||
dev.cheatPower = 1;
|
dev.cheatPower = 1;
|
||||||
dev.cheatHealth = 1;
|
dev.cheatHealth = 1;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ void initAtlasTest(void)
|
||||||
|
|
||||||
initHub();
|
initHub();
|
||||||
|
|
||||||
loadWorld("greenlands1");
|
loadWorld("greenlands2");
|
||||||
|
|
||||||
initWorld();
|
initWorld();
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ void initWorld(void)
|
||||||
|
|
||||||
if (!game.isResumingMission)
|
if (!game.isResumingMission)
|
||||||
{
|
{
|
||||||
game.missionsPlayed++;
|
game.stats[STAT_MISSIONS_PLAYED]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
world.bob->flags |= EF_GONE;
|
world.bob->flags |= EF_GONE;
|
||||||
|
|
Loading…
Reference in New Issue