[Change] Some more clean up.

This commit is contained in:
Allanis 2014-04-10 20:09:23 +01:00
parent b6ede4eb01
commit da58e41da9
3 changed files with 37 additions and 18 deletions

View File

@ -1369,7 +1369,7 @@ void pilot_addHook(Pilot* pilot, int type, int hook) {
*/ */
void pilot_init(Pilot* pilot, Ship* ship, char* name, int faction, void pilot_init(Pilot* pilot, Ship* ship, char* name, int faction,
char* ai, const double dir, const Vec2* pos, char* ai, const double dir, const Vec2* pos,
const Vec2* vel, const int flags) { const Vec2* vel, const unsigned int flags) {
ShipOutfit* so; ShipOutfit* so;
@ -1432,6 +1432,10 @@ void pilot_init(Pilot* pilot, Ship* ship, char* name, int faction,
pilot->think = ai_think; pilot->think = ai_think;
pilot->render = pilot_render; pilot->render = pilot_render;
} }
/* Set enter hyperspace flag if needed. */
if(flags & PILOT_HYP_END)
pilot_setFlag(pilot, PILOT_HYP_END);
/* All update the same way. */ /* All update the same way. */
pilot->update = pilot_update; pilot->update = pilot_update;
@ -1462,7 +1466,7 @@ void pilot_init(Pilot* pilot, Ship* ship, char* name, int faction,
*/ */
unsigned int pilot_create(Ship* ship, char* name, int faction, unsigned int pilot_create(Ship* ship, char* name, int faction,
char* ai, const double dir, const Vec2* pos, char* ai, const double dir, const Vec2* pos,
const Vec2* vel, const int flags) { const Vec2* vel, const unsigned int flags) {
Pilot* dyn; Pilot* dyn;
@ -1499,7 +1503,7 @@ unsigned int pilot_create(Ship* ship, char* name, int faction,
* @return Pointer to the new pilot (not added to stack). * @return Pointer to the new pilot (not added to stack).
*/ */
Pilot* pilot_createEmpty(Ship* ship, char* name, Pilot* pilot_createEmpty(Ship* ship, char* name,
int faction, char* ai, const int flags) { int faction, char* ai, const unsigned int flags) {
Pilot* dyn; Pilot* dyn;
dyn = MALLOC_L(Pilot); dyn = MALLOC_L(Pilot);
@ -1650,19 +1654,29 @@ void pilots_cleanAll(void) {
*/ */
void pilots_update(double dt) { void pilots_update(double dt) {
int i; int i;
Pilot* p;
for(i = 0; i < pilot_nstack; i++) { for(i = 0; i < pilot_nstack; i++) {
if(pilot_stack[i]->think && !pilot_isDisabled(pilot_stack[i])) { p = pilot_stack[i];
/* See if should think. */
if(p->think && !pilot_isDisabled(p)) {
/* Hyperspace gets special treatment. */ /* Hyperspace gets special treatment. */
if(pilot_isFlag(pilot_stack[i], PILOT_HYP_PREP)) if(pilot_isFlag(p, PILOT_HYP_PREP))
pilot_hyperspace(pilot_stack[i]); pilot_hyperspace(p);
/* Entering hyperspace. */
else if(pilot_isFlag(p, PILOT_HYP_END)) {
if(VMOD(p->solid->vel) < 2*p->speed)
pilot_rmFlag(p, PILOT_HYP_END);
}
else else
pilot_stack[i]->think(pilot_stack[i]); p->think(p);
} }
if(pilot_stack[i]->update) { if(p->update) { /* Update. */
if(pilot_isFlag(pilot_stack[i], PILOT_DELETE)) if(pilot_isFlag(p, PILOT_DELETE))
pilot_destroy(pilot_stack[i]); pilot_destroy(p);
else else
pilot_stack[i]->update(pilot_stack[i], dt); p->update(p, dt);
} }
} }
} }

View File

@ -53,8 +53,9 @@
#define PILOT_HYP_PREP (1<<15) /**< Pilot is getting ready for hyperspace. */ #define PILOT_HYP_PREP (1<<15) /**< Pilot is getting ready for hyperspace. */
#define PILOT_HYP_BEGIN (1<<16) /**< Pilot is starting engines. */ #define PILOT_HYP_BEGIN (1<<16) /**< Pilot is starting engines. */
#define PILOT_HYPERSPACE (1<<17) /**< Pilot is in hyperspace. */ #define PILOT_HYPERSPACE (1<<17) /**< Pilot is in hyperspace. */
#define PILOT_BOARDED (1<<18) /**< Pilot has been boarded already! */ #define PILOT_HYP_END (1<<18) /**< Pilot is exiting hyperspace. */
#define PILOT_BRIBED (1<<19) /**< Pilot has been bribed already. */ #define PILOT_BOARDED (1<<20) /**< Pilot has been boarded already! */
#define PILOT_BRIBED (1<<21) /**< Pilot has been bribed already. */
#define PILOT_DISABLED (1<<26) /**< Pilot is disabled. */ #define PILOT_DISABLED (1<<26) /**< Pilot is disabled. */
#define PILOT_DEAD (1<<27) /**< Pilot is on it's death bed. */ #define PILOT_DEAD (1<<27) /**< Pilot is on it's death bed. */
#define PILOT_DEATH_SOUND (1<<28) /**< Pilot just did death explosion. */ #define PILOT_DEATH_SOUND (1<<28) /**< Pilot just did death explosion. */
@ -269,14 +270,14 @@ int pilot_rmMissionCargo(Pilot* pilot, unsigned int cargo_id, int jettison);
/* Creation. */ /* Creation. */
void pilot_init(Pilot* dest, Ship* ship, char* name, int faction, void pilot_init(Pilot* dest, Ship* ship, char* name, int faction,
char* ai, const double dir, const Vec2* pos, char* ai, const double dir, const Vec2* pos,
const Vec2* vel, const int flags); const Vec2* vel, const unsigned int flags);
unsigned int pilot_create(Ship* ship, char* name, int faction, unsigned int pilot_create(Ship* ship, char* name, int faction,
char* ai, const double dir, const Vec2* pos, char* ai, const double dir, const Vec2* pos,
const Vec2* vel, const int flags); const Vec2* vel, const unsigned int flags);
Pilot* pilot_createEmpty(Ship* ship, char* name, Pilot* pilot_createEmpty(Ship* ship, char* name,
int faction, char* ai, const int flags); int faction, char* ai, const unsigned int flags);
Pilot* pilot_copy(Pilot* src); Pilot* pilot_copy(Pilot* src);

View File

@ -457,6 +457,7 @@ static void space_addFleet(Fleet* fleet, int init) {
FleetPilot* plt; FleetPilot* plt;
Planet* planet; Planet* planet;
int i, c; int i, c;
unsigned int flags;
double a, d; double a, d;
Vec2 vv, vp, vn; Vec2 vv, vp, vn;
@ -515,10 +516,13 @@ static void space_addFleet(Fleet* fleet, int init) {
vect_cadd(&vp, RNG(75, 150) * (RNG(0,1) ? 1 : -1), vect_cadd(&vp, RNG(75, 150) * (RNG(0,1) ? 1 : -1),
RNG(75, 150) * (RNG(0,1) ? 1 : -1)); RNG(75, 150) * (RNG(0,1) ? 1 : -1));
a = vect_angle(&vp, &vn); a = vect_angle(&vp, &vn);
flags = 0;
/* Entering via hyperspace. */ /* Entering via hyperspace. */
if(c == 0) if(c == 0) {
vect_pset(&vv, HYPERSPACE_VEL, a); vect_pset(&vv, HYPERSPACE_VEL, a);
flags |= PILOT_HYP_END;
}
/* Starting out landed. */ /* Starting out landed. */
else if(c == 1) else if(c == 1)
vectnull(&vv); vectnull(&vv);
@ -534,7 +538,7 @@ static void space_addFleet(Fleet* fleet, int init) {
a, a,
&vp, &vp,
&vv, &vv,
0); flags);
} }
} }