mirror of
https://github.com/kevinbentley/Descent3.git
synced 2025-12-19 17:37:42 -05:00
Replace Zero_vector by vector{}
As far as the set of .cpp files which are using vecmat.h are
concerned, `Zero_vector` is out of reach for the compiler optimizer,
because it is extern / lives in a separate translation unit. An
expression like `x == Zero_vector` or `v = Zero_vector` thus has to
perform memory loads (for Zero_vector's x,y,z parts) before
comparison or copying, respectively. By using an immediate zero
vector `vector{}` instead, the unnecessary extra loads should go
away.
I present exhibit A:
```
void copyxx(vector *x) { *x = Zero_vector; }
4905e0: 48 8b 05 41 c0 56 00 movq 0x56c041(%rip),%rax # 9fc628 <Zero_vector>
4905e7: 48 89 07 movq %rax,(%rdi)
4905ea: 8b 05 40 c0 56 00 movl 0x56c040(%rip),%eax # 9fc630 <Zero_vector+0x8>
4905f0: 89 47 08 movl %eax,0x8(%rdi)
4905f3: c3 ret
```
vs.
```
void copyxx(vector *x) { *x = vector{}; }
4905c0: 48 c7 07 00 00 00 00 movq $0x0,(%rdi)
4905c7: c7 47 08 00 00 00 00 movl $0x0,0x8(%rdi)
4905ce: c3 ret
```
This commit is contained in:
@@ -1745,7 +1745,7 @@ bool AIMoveTowardsPosition(object *obj, /*velocity *new_vel,*/ vector *pos, floa
|
||||
|
||||
if (stop_at_end_point) {
|
||||
if (vm_VectorDistance(pos, &obj->pos) <= .2f) {
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
*f_moved = true;
|
||||
return true;
|
||||
}
|
||||
@@ -1772,7 +1772,7 @@ bool AIMoveTowardsPosition(object *obj, /*velocity *new_vel,*/ vector *pos, floa
|
||||
if (*pos == obj->pos) {
|
||||
physics_info *phys_info = &obj->mtype.phys_info;
|
||||
|
||||
if (phys_info->velocity != Zero_vector) {
|
||||
if (phys_info->velocity != vector{}) {
|
||||
vector vel_diff = -phys_info->velocity;
|
||||
scalar delta_vel = vm_NormalizeVector(&vel_diff);
|
||||
scalar max_delta_vel = Frametime * ai_info->max_delta_velocity * acc_scale;
|
||||
@@ -1825,7 +1825,7 @@ bool move_relative_object_vec(object *obj, vector *vec, object *target, float ci
|
||||
normal_component = opposite_fvec * vm_Dot3Product(opposite_fvec, vec_to_plane);
|
||||
plane_component = vec_to_plane - normal_component;
|
||||
|
||||
if (plane_component == Zero_vector) {
|
||||
if (plane_component == vector{}) {
|
||||
goal_dir = target->orient.rvec;
|
||||
} else {
|
||||
goal_dir = plane_component;
|
||||
@@ -1914,7 +1914,7 @@ bool compute_dodge_dir(vector *movement_dir, object *obj, object *dodge_obj) {
|
||||
|
||||
dodge_vec *= scale;
|
||||
|
||||
if (dodge_vec != Zero_vector && (obj->ai_info->dodge_till_time < Gametime ||
|
||||
if (dodge_vec != vector{} && (obj->ai_info->dodge_till_time < Gametime ||
|
||||
dodge_vec.mag() > obj->ai_info->last_dodge_dir.mag())) {
|
||||
obj->ai_info->last_dodge_dir = dodge_vec;
|
||||
}
|
||||
@@ -1953,7 +1953,7 @@ bool goal_do_avoid_walls(object *obj, vector *mdir) {
|
||||
int num_faces;
|
||||
float rad;
|
||||
int i;
|
||||
vector awall_dir = Zero_vector;
|
||||
vector awall_dir{};
|
||||
float closest_dist;
|
||||
vector pos;
|
||||
bool f_danger = false;
|
||||
@@ -1973,7 +1973,7 @@ bool goal_do_avoid_walls(object *obj, vector *mdir) {
|
||||
|
||||
closest_dist = rad + 1.0f;
|
||||
|
||||
if (obj->mtype.phys_info.velocity == Zero_vector) {
|
||||
if (obj->mtype.phys_info.velocity == vector{}) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2115,7 +2115,7 @@ void AITurnTowardsDir(object *obj, /*velocity *new_vel,*/ vector *goal_dir /*, b
|
||||
matrix saved_orient = obj->orient;
|
||||
vector saved_uvec = obj->orient.uvec;
|
||||
|
||||
if (*goal_dir == Zero_vector || vm_Dot3Product(obj->orient.fvec, (*goal_dir)) >= ONE_DEGREE_ARC_COS)
|
||||
if (*goal_dir == vector{} || vm_Dot3Product(obj->orient.fvec, (*goal_dir)) >= ONE_DEGREE_ARC_COS)
|
||||
return; // No goal_dir or less than 1 degree off goal
|
||||
|
||||
if (obj->size > 32.0f && (vm_Dot3Product(obj->orient.fvec, (*goal_dir))) >= FIVE_DEGREE_ARC_COS)
|
||||
@@ -2318,7 +2318,7 @@ bool MeleeHitOk(object *obj) {
|
||||
if (target->movement_type == MT_PHYSICS || target->movement_type == MT_PHYSICS) {
|
||||
relative_vel = -target->mtype.phys_info.velocity;
|
||||
} else {
|
||||
relative_vel = Zero_vector;
|
||||
relative_vel = vector{};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3685,7 +3685,7 @@ bool AIInit(object *obj, uint8_t ai_class, uint8_t ai_type, uint8_t ai_movement)
|
||||
|
||||
ai_info->vec_to_target_perceived = obj->orient.fvec;
|
||||
|
||||
ai_info->last_dodge_dir = Zero_vector;
|
||||
ai_info->last_dodge_dir = vector{};
|
||||
ai_info->dodge_till_time = Gametime - 1.0f;
|
||||
|
||||
if (ObjGet(obj->parent_handle)) {
|
||||
@@ -4081,7 +4081,7 @@ bool AiGoalAvoid(vector *adir, object *obj, object *a_obj, float dist) {
|
||||
if (a_obj->movement_type == MT_PHYSICS || a_obj->movement_type == MT_WALKING)
|
||||
a_vel = a_obj->mtype.phys_info.velocity;
|
||||
else
|
||||
a_vel = Zero_vector;
|
||||
a_vel = vector{};
|
||||
|
||||
vector to_avoid = a_obj->pos - obj->pos;
|
||||
vector mdir;
|
||||
@@ -4546,11 +4546,11 @@ void ai_move(object *obj) {
|
||||
// object *g_objs[5]; // 1 target + 2 enemies + 2 friends
|
||||
|
||||
object *targetptr = ObjGet(ai_info->target_handle); // The target of this AI
|
||||
ai_info->movement_dir = Zero_vector;
|
||||
ai_info->movement_dir = vector{};
|
||||
|
||||
// Hacked flocking code
|
||||
if (ai_info->ai_type == AIT_BIRD_FLOCK1) {
|
||||
vector composite_dir = Zero_vector;
|
||||
vector composite_dir{};
|
||||
|
||||
for (int temp = 0; temp < AI_FriendNumNear; temp++) {
|
||||
object *g_obj = AI_FriendObj[temp];
|
||||
@@ -4565,7 +4565,7 @@ void ai_move(object *obj) {
|
||||
}
|
||||
|
||||
// Facing code
|
||||
if (composite_dir == Zero_vector)
|
||||
if (composite_dir == vector{})
|
||||
composite_dir = obj->orient.fvec;
|
||||
|
||||
// FLOCK HEIGHT CODE
|
||||
@@ -4601,8 +4601,8 @@ void ai_move(object *obj) {
|
||||
// Stop objects that have not been active lately
|
||||
if (!(ai_info->flags & AIF_PERSISTANT) && Gametime - ai_info->last_see_target_time > CHECK_VIS_INFREQUENTLY_TIME &&
|
||||
Gametime - ai_info->last_hear_target_time > CHECK_VIS_INFREQUENTLY_TIME && ai_info->awareness == AWARE_NONE) {
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.rotvel = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
obj->mtype.phys_info.rotvel = vector{};
|
||||
} else {
|
||||
// Determine movement stuff
|
||||
if (obj->movement_type == MT_PHYSICS || obj->movement_type == MT_WALKING) {
|
||||
@@ -5004,7 +5004,7 @@ void ai_move(object *obj) {
|
||||
int16_t robots[6];
|
||||
int num_robots =
|
||||
fvi_QuickDistObjectList(&obj->pos, obj->roomnum, 30.0f, robots, 6, false, true, false, true);
|
||||
vector d = Zero_vector;
|
||||
vector d{};
|
||||
int i;
|
||||
float closest = 100000.0f;
|
||||
|
||||
@@ -5031,7 +5031,7 @@ void ai_move(object *obj) {
|
||||
}
|
||||
}
|
||||
|
||||
if (d != Zero_vector) {
|
||||
if (d != vector{}) {
|
||||
if (closest < 30.0f) {
|
||||
float scale = 1.0f - closest / 30.0f;
|
||||
vm_NormalizeVector(&d);
|
||||
@@ -5065,16 +5065,16 @@ void ai_move(object *obj) {
|
||||
}
|
||||
} else {
|
||||
if (!(f_dodge || f_avoid ||
|
||||
(ai_info->dodge_till_time >= Gametime && ai_info->last_dodge_dir != Zero_vector))) {
|
||||
(ai_info->dodge_till_time >= Gametime && ai_info->last_dodge_dir != vector{}))) {
|
||||
AIMoveTowardsPosition(obj, &obj->pos, 1.0f, false, &goal_mdir, &goal_f_moved);
|
||||
goal_mset = true;
|
||||
}
|
||||
}
|
||||
|
||||
// BLEND THIS!
|
||||
if ((f_dodge || f_avoid || (ai_info->dodge_till_time >= Gametime && ai_info->last_dodge_dir != Zero_vector)) ||
|
||||
if ((f_dodge || f_avoid || (ai_info->dodge_till_time >= Gametime && ai_info->last_dodge_dir != vector{})) ||
|
||||
(!goal_f_moved && goal_mset)) {
|
||||
if (!f_dodge && (ai_info->dodge_till_time >= Gametime && ai_info->last_dodge_dir != Zero_vector)) {
|
||||
if (!f_dodge && (ai_info->dodge_till_time >= Gametime && ai_info->last_dodge_dir != vector{})) {
|
||||
f_dodge = true;
|
||||
ai_info->movement_dir += ai_info->last_dodge_dir;
|
||||
|
||||
@@ -5550,7 +5550,7 @@ static inline void ai_walker_stuff(object *obj) {
|
||||
}
|
||||
}
|
||||
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
}
|
||||
} else if (ai_info->movement_type == MC_WALKING) {
|
||||
int next_anim;
|
||||
@@ -6028,8 +6028,8 @@ void AIDoFrame(object *obj) {
|
||||
|
||||
// AI objects don't use thrust (in general)
|
||||
obj->mtype.phys_info.flags &= ~PF_USES_THRUST;
|
||||
obj->mtype.phys_info.rotthrust = Zero_vector;
|
||||
obj->mtype.phys_info.thrust = Zero_vector;
|
||||
obj->mtype.phys_info.rotthrust = vector{};
|
||||
obj->mtype.phys_info.thrust = vector{};
|
||||
|
||||
if (obj->type == OBJ_DUMMY)
|
||||
return;
|
||||
@@ -6145,7 +6145,7 @@ void AIDoFrame(object *obj) {
|
||||
if (speed > 0.1f && speed <= ai_info->max_velocity * 2.0) {
|
||||
if (obj->mtype.phys_info.drag > 0.0f && obj->mtype.phys_info.mass > 0.0f) {
|
||||
obj->mtype.phys_info.flags |= PF_USES_THRUST;
|
||||
obj->mtype.phys_info.rotthrust = Zero_vector;
|
||||
obj->mtype.phys_info.rotthrust = vector{};
|
||||
obj->mtype.phys_info.thrust = obj->mtype.phys_info.velocity * obj->mtype.phys_info.drag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2640,7 +2640,7 @@ void PlayerSetControlToAI(int slot, float velocity) {
|
||||
pobj->ai_info->last_render_time = -1.0f;
|
||||
pobj->ai_info->next_target_update_time = Gametime;
|
||||
pobj->ai_info->notify_flags |= AI_NOTIFIES_ALWAYS_ON;
|
||||
pobj->ai_info->last_see_target_pos = Zero_vector;
|
||||
pobj->ai_info->last_see_target_pos = vector{};
|
||||
pobj->ai_info->dodge_vel_percent = 1.0f;
|
||||
pobj->ai_info->attack_vel_percent = 1.0f;
|
||||
pobj->ai_info->fight_same = 0.0f;
|
||||
|
||||
@@ -1309,7 +1309,7 @@ int CreateAndFireWeapon(vector *pos, vector *dir, object *parent, int weapon_num
|
||||
if (fdot > 0.0)
|
||||
fvel = parent->orient.fvec * fdot;
|
||||
else
|
||||
fvel = Zero_vector;
|
||||
fvel = vector{};
|
||||
|
||||
vector rvel = 0.1f * parent->orient.rvec * vm_Dot3Product(parent->mtype.phys_info.velocity, parent->orient.rvec);
|
||||
vector uvel = 0.1f * parent->orient.uvec * vm_Dot3Product(parent->mtype.phys_info.velocity, parent->orient.uvec);
|
||||
@@ -1373,7 +1373,7 @@ int CreateAndFireWeapon(vector *pos, vector *dir, object *parent, int weapon_num
|
||||
// Steers a homing missile
|
||||
void HomingTurnTowardObj(object *weapon, object *target) {
|
||||
vector dir_to_target;
|
||||
vector movement = Zero_vector;
|
||||
vector movement{};
|
||||
|
||||
if (target == NULL)
|
||||
return;
|
||||
@@ -1613,7 +1613,7 @@ object *HomingAquireTarget(object *obj) {
|
||||
|
||||
// Does homing code
|
||||
void HomingDoFrame(object *obj) {
|
||||
obj->mtype.phys_info.rotthrust = Zero_vector;
|
||||
obj->mtype.phys_info.rotthrust = vector{};
|
||||
|
||||
HomingTurnTowardObj(obj, HomingAquireTarget(obj));
|
||||
}
|
||||
@@ -1840,7 +1840,7 @@ int FireWeaponFromObject(object *obj, int weapon_num, int gun_num, bool f_force_
|
||||
if (f_force_forward) {
|
||||
WeaponCalcGun(&laser_pos, NULL, obj, gun_num);
|
||||
laser_dir = obj->orient.fvec;
|
||||
} else if (f_force_target && obj->ai_info && obj->ai_info->vec_to_target_perceived != Zero_vector) {
|
||||
} else if (f_force_target && obj->ai_info && obj->ai_info->vec_to_target_perceived != vector{}) {
|
||||
WeaponCalcGun(&laser_pos, NULL, obj, gun_num);
|
||||
laser_dir = obj->ai_info->vec_to_target_perceived;
|
||||
} else {
|
||||
@@ -2301,7 +2301,7 @@ void DoSprayEffect(object *obj, otype_wb_info *static_wb, uint8_t wb_index) {
|
||||
if (fdot > (scalar)0.0)
|
||||
fvel = obj->orient.fvec * fdot;
|
||||
else
|
||||
fvel = Zero_vector;
|
||||
fvel = vector{};
|
||||
|
||||
vector rvel = (scalar)0.1f * obj->orient.rvec * vm_Dot3Product(obj->mtype.phys_info.velocity, obj->orient.rvec);
|
||||
vector uvel = (scalar)0.1f * obj->orient.uvec * vm_Dot3Product(obj->mtype.phys_info.velocity, obj->orient.uvec);
|
||||
@@ -3355,7 +3355,7 @@ void TimeoutWeapon(object *obj) {
|
||||
|
||||
if ((Weapons[n].flags & WF_MATTER_WEAPON) && !(Weapons[n].flags & WF_SPAWNS_TIMEOUT) &&
|
||||
(Weapons[n].spawn_count <= 0)) {
|
||||
vector temp = Zero_vector;
|
||||
vector temp{};
|
||||
|
||||
if (Weapons[obj->id].sounds[WSI_IMPACT_WALL] != SOUND_NONE_INDEX)
|
||||
Sound_system.Play3dSound(Weapons[obj->id].sounds[WSI_IMPACT_WALL], SND_PRIORITY_HIGH, obj);
|
||||
|
||||
@@ -1092,7 +1092,7 @@ void SetFallingPhysics(object *objp) {
|
||||
|
||||
// Special stuff for walkers
|
||||
if (objp->movement_type == MT_WALKING) {
|
||||
objp->mtype.phys_info.rotvel = Zero_vector;
|
||||
objp->mtype.phys_info.rotvel = vector{};
|
||||
objp->mtype.phys_info.flags |= PF_POINT_COLLIDE_WALLS;
|
||||
scalar proj = vm_Dot3Product(objp->mtype.phys_info.velocity, objp->orient.uvec);
|
||||
if (proj < 0.0f)
|
||||
|
||||
@@ -518,7 +518,7 @@ void DemoWriteChangedObjects() {
|
||||
if ((Objects[i].type == OBJ_PLAYER) || (Objects[i].type == OBJ_OBSERVER) || (Objects[i].type == OBJ_ROBOT) ||
|
||||
(Objects[i].type == OBJ_POWERUP) || (Objects[i].type == OBJ_CLUTTER) || (Objects[i].type == OBJ_BUILDING) ||
|
||||
(Objects[i].type == OBJ_CAMERA)) {
|
||||
if ((Objects[i].flags & OF_MOVED_THIS_FRAME)) //||(Objects[i].mtype.phys_info.velocity!=Zero_vector))
|
||||
if ((Objects[i].flags & OF_MOVED_THIS_FRAME)) //||(Objects[i].mtype.phys_info.velocity!=vector{}))
|
||||
{
|
||||
DemoWriteChangedObj(&Objects[i]);
|
||||
// num_changed++;
|
||||
@@ -923,8 +923,8 @@ void DemoReadObj() {
|
||||
// if((!((obj->flags&OF_DYING)||(obj->flags&OF_EXPLODING)||(obj->flags&OF_DEAD)))&&obj->type!=255)
|
||||
|
||||
if (obj->type != OBJ_NONE) {
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.rotvel = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
obj->mtype.phys_info.rotvel = vector{};
|
||||
ObjSetPos(obj, &pos, roomnum, &orient, true);
|
||||
poly_model *pm = &Poly_models[obj->rtype.pobj_info.model_num];
|
||||
if ((!(obj->flags & OF_ATTACHED)) && (pm->n_attach))
|
||||
@@ -990,7 +990,7 @@ void DemoReadWeaponFire() {
|
||||
weapobjnum = cf_ReadShort(Demo_cfp);
|
||||
int16_t gunnum = cf_ReadShort(Demo_cfp);
|
||||
ASSERT(uniqueid != 0xffffffff);
|
||||
ASSERT(dir != Zero_vector);
|
||||
ASSERT(dir != vector{});
|
||||
|
||||
// This is a hack for the napalm, omega & vauss to prevent making files incompatible
|
||||
if ((obj->type == OBJ_PLAYER) && (obj->id != Player_num)) {
|
||||
|
||||
@@ -714,7 +714,7 @@ bool Cinematic_StartCine(tGameCinematic *info, const char *text_string, int came
|
||||
camera->ai_info->last_render_time = -1.0f;
|
||||
camera->ai_info->next_target_update_time = Gametime;
|
||||
camera->ai_info->notify_flags |= AI_NOTIFIES_ALWAYS_ON;
|
||||
camera->ai_info->last_see_target_pos = Zero_vector;
|
||||
camera->ai_info->last_see_target_pos = vector{};
|
||||
camera->ai_info->dodge_vel_percent = 1.0f;
|
||||
camera->ai_info->attack_vel_percent = 1.0f;
|
||||
camera->ai_info->fight_same = 0.0f;
|
||||
@@ -836,7 +836,7 @@ bool Cinematic_StartCine(tGameCinematic *info, const char *text_string, int came
|
||||
vector turn_to = target->pos - camera->pos;
|
||||
vm_NormalizeVector(&turn_to);
|
||||
|
||||
if (turn_to == Zero_vector) {
|
||||
if (turn_to == vector{}) {
|
||||
LOG_WARNING << "Cine: No turn_to or less than 1 degree off goal";
|
||||
goto continue_start;
|
||||
}
|
||||
@@ -1113,7 +1113,7 @@ void Cinematic_Frame(void) {
|
||||
vector turn_to = target->pos - camera->pos;
|
||||
vm_NormalizeVector(&turn_to);
|
||||
|
||||
if (turn_to == Zero_vector) {
|
||||
if (turn_to == vector{}) {
|
||||
LOG_WARNING << "Cine: No turn_to or less than 1 degree off goal";
|
||||
goto continue_frame;
|
||||
}
|
||||
|
||||
@@ -239,7 +239,7 @@ matcen::matcen() {
|
||||
|
||||
m_status = 0;
|
||||
|
||||
m_create_pnt = Zero_vector;
|
||||
m_create_pnt = vector{};
|
||||
m_create_room = MATCEN_ERROR;
|
||||
|
||||
m_cached_prod_index = -1;
|
||||
@@ -567,7 +567,7 @@ bool matcen::ComputeCreatePnt() {
|
||||
int num_valid_faces = 0;
|
||||
room *rp = &Rooms[m_roomnum];
|
||||
|
||||
m_create_pnt = Zero_vector;
|
||||
m_create_pnt = vector{};
|
||||
|
||||
for (i = 0; i < m_num_spawn_pnts; i++) {
|
||||
if (m_spawn_pnt[i] >= 0 && m_spawn_pnt[i] < rp->num_faces) {
|
||||
@@ -623,7 +623,7 @@ bool matcen::ComputeCreatePnt() {
|
||||
int i;
|
||||
int num_valid_gps = 0;
|
||||
|
||||
m_create_pnt = Zero_vector;
|
||||
m_create_pnt = vector{};
|
||||
|
||||
for (i = 0; i < m_num_spawn_pnts; i++) {
|
||||
if (WeaponCalcGun(&m_spawn_vec[num_valid_gps], &m_spawn_normal[num_valid_gps], master_obj, m_spawn_pnt[i])) {
|
||||
|
||||
@@ -5751,7 +5751,7 @@ void MultiDoPowerupReposition(uint8_t *data) {
|
||||
if (terrain)
|
||||
roomnum = MAKE_ROOMNUM(roomnum);
|
||||
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
|
||||
ObjSetPos(obj, &pos, roomnum, &obj->orient, true);
|
||||
}
|
||||
@@ -8942,8 +8942,8 @@ void MultiDoRequestToMove(uint8_t *data) {
|
||||
|
||||
do_physics_sim(obj);
|
||||
|
||||
obj->mtype.phys_info.thrust = Zero_vector;
|
||||
obj->mtype.phys_info.rotthrust = Zero_vector;
|
||||
obj->mtype.phys_info.thrust = vector{};
|
||||
obj->mtype.phys_info.rotthrust = vector{};
|
||||
obj->orient = orient;
|
||||
|
||||
bool client_error = 0;
|
||||
|
||||
@@ -741,7 +741,7 @@ void msafe_GetValue(int type, msafe_struct *mstruct) {
|
||||
case MSAFE_OBJECT_POS:
|
||||
objp = ObjGet(mstruct->objhandle);
|
||||
if (!objp)
|
||||
mstruct->pos = Zero_vector;
|
||||
mstruct->pos = vector{};
|
||||
else
|
||||
mstruct->pos = objp->pos;
|
||||
break;
|
||||
@@ -762,7 +762,7 @@ void msafe_GetValue(int type, msafe_struct *mstruct) {
|
||||
case MSAFE_OBJECT_WORLD_POSITION:
|
||||
objp = ObjGet(mstruct->objhandle);
|
||||
if (!objp) {
|
||||
mstruct->pos = Zero_vector;
|
||||
mstruct->pos = vector{};
|
||||
mstruct->orient = Identity_matrix;
|
||||
mstruct->roomnum = -1;
|
||||
} else {
|
||||
@@ -774,28 +774,28 @@ void msafe_GetValue(int type, msafe_struct *mstruct) {
|
||||
case MSAFE_OBJECT_VELOCITY:
|
||||
objp = ObjGet(mstruct->objhandle);
|
||||
if (!objp || (objp->movement_type != MT_WALKING && objp->movement_type != MT_PHYSICS))
|
||||
mstruct->velocity = Zero_vector;
|
||||
mstruct->velocity = vector{};
|
||||
else
|
||||
mstruct->velocity = objp->mtype.phys_info.velocity;
|
||||
break;
|
||||
case MSAFE_OBJECT_ROTVELOCITY:
|
||||
objp = ObjGet(mstruct->objhandle);
|
||||
if (!objp || (objp->movement_type != MT_WALKING && objp->movement_type != MT_PHYSICS))
|
||||
mstruct->rot_velocity = Zero_vector;
|
||||
mstruct->rot_velocity = vector{};
|
||||
else
|
||||
mstruct->rot_velocity = objp->mtype.phys_info.rotvel;
|
||||
break;
|
||||
case MSAFE_OBJECT_THRUST:
|
||||
objp = ObjGet(mstruct->objhandle);
|
||||
if (!objp || (objp->movement_type != MT_WALKING && objp->movement_type != MT_PHYSICS))
|
||||
mstruct->thrust = Zero_vector;
|
||||
mstruct->thrust = vector{};
|
||||
else
|
||||
mstruct->thrust = objp->mtype.phys_info.thrust;
|
||||
break;
|
||||
case MSAFE_OBJECT_ROTTHRUST:
|
||||
objp = ObjGet(mstruct->objhandle);
|
||||
if (!objp || (objp->movement_type != MT_WALKING && objp->movement_type != MT_PHYSICS))
|
||||
mstruct->rot_thrust = Zero_vector;
|
||||
mstruct->rot_thrust = vector{};
|
||||
else
|
||||
mstruct->rot_thrust = objp->mtype.phys_info.rotthrust;
|
||||
break;
|
||||
|
||||
@@ -3132,8 +3132,8 @@ void ObjSetOrient(object *obj, const matrix *orient) {
|
||||
obj->wall_sphere_offset = Poly_models[obj->rtype.pobj_info.model_num].wall_size_offset * m;
|
||||
obj->anim_sphere_offset = Poly_models[obj->rtype.pobj_info.model_num].anim_size_offset * m;
|
||||
} else {
|
||||
obj->wall_sphere_offset = Zero_vector;
|
||||
obj->anim_sphere_offset = Zero_vector;
|
||||
obj->wall_sphere_offset = vector{};
|
||||
obj->anim_sphere_offset = vector{};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -688,7 +688,7 @@ void osipf_RoomValue(int roomnum, char op, char vtype, void *ptr, int index) {
|
||||
if (index < 0 || index >= rp->num_faces || rp->faces[index].num_verts <= 0) {
|
||||
*(vector *)ptr = rp->path_pnt;
|
||||
} else {
|
||||
*(vector *)ptr = Zero_vector;
|
||||
*(vector *)ptr = vector{};
|
||||
|
||||
for (i = 0; i < rp->faces[index].num_verts; i++) {
|
||||
*(vector *)ptr += rp->verts[rp->faces[index].face_verts[i]];
|
||||
@@ -1680,13 +1680,13 @@ vector osipf_AIFindHidePos(int hideobjhandle, int viewobjhandle, float time, int
|
||||
if (hide_obj == NULL) {
|
||||
LOG_ERROR << "Illegal Hide Object Passed To AIFindHidePos";
|
||||
*hide_room = -1;
|
||||
return Zero_vector;
|
||||
return vector{};
|
||||
}
|
||||
|
||||
if (hide_obj->control_type != CT_AI) {
|
||||
LOG_ERROR << "Illegal Object CT Passed To AIFindHidePos";
|
||||
*hide_room = -1;
|
||||
return Zero_vector;
|
||||
return vector{};
|
||||
}
|
||||
|
||||
if (view_obj == NULL) {
|
||||
@@ -1980,7 +1980,7 @@ vector osipf_AIGetRoomPathPoint(int roomnum) {
|
||||
int cell = CELLNUM(roomnum);
|
||||
|
||||
if (cell >= TERRAIN_DEPTH * TERRAIN_WIDTH) {
|
||||
return Zero_vector;
|
||||
return vector{};
|
||||
} else {
|
||||
vector pos;
|
||||
|
||||
@@ -1993,7 +1993,7 @@ vector osipf_AIGetRoomPathPoint(int roomnum) {
|
||||
return Rooms[roomnum].path_pnt;
|
||||
}
|
||||
|
||||
return Zero_vector;
|
||||
return vector{};
|
||||
}
|
||||
|
||||
int osipf_AIFindEnergyCenter(int objhandle) {
|
||||
@@ -2079,8 +2079,8 @@ void osipf_GetGunPos(int objhandle, int gun_number, vector *gun_pnt, vector *gun
|
||||
|
||||
if (obj == NULL) {
|
||||
LOG_ERROR << "Illegal Object Passed To AIGetGunPosition";
|
||||
*gun_pnt = Zero_vector;
|
||||
*gun_normal = Zero_vector;
|
||||
*gun_pnt = vector{};
|
||||
*gun_normal = vector{};
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2092,8 +2092,8 @@ void osipf_GetGroundPos(int objhandle, int ground_number, vector *ground_pnt, ve
|
||||
|
||||
if (obj == NULL) {
|
||||
LOG_ERROR << "Illegal Object Passed To Obj_GetGroundPos";
|
||||
*ground_pnt = Zero_vector;
|
||||
*ground_normal = Zero_vector;
|
||||
*ground_pnt = vector{};
|
||||
*ground_normal = vector{};
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -548,7 +548,7 @@ void InitRoom(room *rp, int nverts, int nfaces, int nportals) {
|
||||
ASSERT(nfaces > 0);
|
||||
#endif
|
||||
|
||||
rp->wind = Zero_vector;
|
||||
rp->wind = vector{};
|
||||
|
||||
rp->num_faces = nfaces;
|
||||
rp->num_verts = nverts;
|
||||
@@ -1210,8 +1210,8 @@ void CreateRoomObjects() {
|
||||
objnum = ObjCreate(OBJ_ROOM, r, roomnum, &pos, NULL);
|
||||
ASSERT(objnum != -1); // DAJ -1FIX moved up
|
||||
Objects[objnum].size = rad;
|
||||
Objects[objnum].wall_sphere_offset = Zero_vector;
|
||||
Objects[objnum].anim_sphere_offset = Zero_vector;
|
||||
Objects[objnum].wall_sphere_offset = vector{};
|
||||
Objects[objnum].anim_sphere_offset = vector{};
|
||||
|
||||
if ((rad >= MIN_BIG_OBJ_RAD) && !(Objects[objnum].flags & OF_BIG_OBJECT)) {
|
||||
BigObjAdd(objnum);
|
||||
|
||||
@@ -157,7 +157,6 @@
|
||||
// vecmat_external.h is where anything that can be used by DLLs should be.
|
||||
#include "vecmat_external.h"
|
||||
|
||||
extern const vector Zero_vector;
|
||||
extern const matrix Identity_matrix;
|
||||
|
||||
// Used for debugging. It is used in printf's so we do not have to write out the structure 3 times
|
||||
|
||||
@@ -1140,7 +1140,7 @@ float ComputeDefaultSizeFunc(int handle, float *size_ptr, vector *offset_ptr, bo
|
||||
int start_frame = 0;
|
||||
int end_frame = 0;
|
||||
|
||||
vector geometric_center = Zero_vector;
|
||||
vector geometric_center{};
|
||||
|
||||
// Chris: Come see me when you are ready to deal with the paging problem - JL
|
||||
pm = GetPolymodelPointer(handle);
|
||||
@@ -1294,7 +1294,7 @@ float ComputeDefaultSize(int type, int handle, float *size_ptr) {
|
||||
|
||||
if (type == OBJ_PLAYER) {
|
||||
Poly_models[handle].anim_size *= PLAYER_SIZE_SCALAR;
|
||||
Poly_models[handle].anim_size_offset = Zero_vector;
|
||||
Poly_models[handle].anim_size_offset = vector{};
|
||||
}
|
||||
} else {
|
||||
if (type == OBJ_POWERUP) {
|
||||
@@ -1303,10 +1303,10 @@ float ComputeDefaultSize(int type, int handle, float *size_ptr) {
|
||||
}
|
||||
|
||||
Poly_models[handle].wall_size = size;
|
||||
Poly_models[handle].wall_size_offset = Zero_vector;
|
||||
Poly_models[handle].wall_size_offset = vector{};
|
||||
|
||||
Poly_models[handle].anim_size = size;
|
||||
Poly_models[handle].anim_size_offset = Zero_vector;
|
||||
Poly_models[handle].anim_size_offset = vector{};
|
||||
}
|
||||
|
||||
Poly_models[handle].flags |= PMF_SIZE_COMPUTED;
|
||||
|
||||
@@ -1528,7 +1528,7 @@ void ConvertEulerToAxisAmount(vector *e, vector *n, float *w) {
|
||||
|
||||
// If there isn't a rotation, return something valid
|
||||
if (rotspeed == 0.0f || scale == 0.0f) {
|
||||
*n = Zero_vector;
|
||||
*n = vector{};
|
||||
n->y() = 1.0f;
|
||||
*w = 0.0f;
|
||||
|
||||
@@ -1546,7 +1546,7 @@ void ConvertEulerToAxisAmount(vector *e, vector *n, float *w) {
|
||||
n->y() = rotmat.fvec.x() - rotmat.rvec.z();
|
||||
n->z() = rotmat.rvec.y() - rotmat.uvec.x();
|
||||
|
||||
if (*n != Zero_vector) {
|
||||
if (*n != vector{}) {
|
||||
vm_NormalizeVector(n);
|
||||
|
||||
float ct = (rotmat.rvec.x() + rotmat.uvec.y() + rotmat.fvec.z() - 1.0f) / 2.0f;
|
||||
@@ -1576,7 +1576,7 @@ void ConvertAxisAmountToEuler(vector *n, float *w, vector *e) {
|
||||
vector s_result;
|
||||
|
||||
if (*w == 0.0f) {
|
||||
*e = Zero_vector;
|
||||
*e = vector{};
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1642,7 +1642,7 @@ void bump_obj_against_fixed(object *obj, vector *collision_point, vector *collis
|
||||
if (temp1 != 0.0f) {
|
||||
vm_CrossProduct(&w1, &n1, &r1);
|
||||
} else {
|
||||
w1 = Zero_vector;
|
||||
w1 = vector{};
|
||||
}
|
||||
|
||||
vector p1 = obj->mtype.phys_info.velocity + w1;
|
||||
@@ -1711,14 +1711,14 @@ void bump_two_objects(object *object0, object *object1, vector *collision_point,
|
||||
|
||||
// Determine if a moving object hits a non-moving object
|
||||
if ((object0->movement_type != MT_PHYSICS && object0->movement_type != MT_WALKING) ||
|
||||
(object0->movement_type == MT_PHYSICS && object0->mtype.phys_info.velocity == Zero_vector &&
|
||||
(object0->movement_type == MT_PHYSICS && object0->mtype.phys_info.velocity == vector{} &&
|
||||
(object0->mtype.phys_info.flags & PF_LOCK_MASK) && (object0->mtype.phys_info.flags & PF_POINT_COLLIDE_WALLS))) {
|
||||
t = object1;
|
||||
other = object0;
|
||||
*collision_normal *= -1.0f;
|
||||
}
|
||||
if ((object1->movement_type != MT_PHYSICS && object1->movement_type != MT_WALKING) ||
|
||||
(object1->movement_type == MT_PHYSICS && object1->mtype.phys_info.velocity == Zero_vector &&
|
||||
(object1->movement_type == MT_PHYSICS && object1->mtype.phys_info.velocity == vector{} &&
|
||||
(object1->mtype.phys_info.flags & PF_LOCK_MASK) && (object1->mtype.phys_info.flags & PF_POINT_COLLIDE_WALLS))) {
|
||||
t = object0;
|
||||
other = object1;
|
||||
@@ -1728,7 +1728,7 @@ void bump_two_objects(object *object0, object *object1, vector *collision_point,
|
||||
if (t) {
|
||||
// chrishack -- walker hack
|
||||
if (t->movement_type != MT_PHYSICS && t->movement_type != MT_WALKING) {
|
||||
t->mtype.phys_info.velocity = Zero_vector;
|
||||
t->mtype.phys_info.velocity = vector{};
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1850,13 +1850,13 @@ void bump_two_objects(object *object0, object *object1, vector *collision_point,
|
||||
if (temp1 != 0.0f) {
|
||||
vm_CrossProduct(&w1, &n1, &r1);
|
||||
} else {
|
||||
w1 = Zero_vector;
|
||||
w1 = vector{};
|
||||
}
|
||||
|
||||
if (temp2 != 0.0f) {
|
||||
vm_CrossProduct(&w2, &n2, &r2);
|
||||
} else {
|
||||
w2 = Zero_vector;
|
||||
w2 = vector{};
|
||||
}
|
||||
|
||||
vector p1 = object0->mtype.phys_info.velocity + w1;
|
||||
@@ -2072,7 +2072,7 @@ void collide_generic_and_player(object *robotobj, object *playerobj, vector *col
|
||||
if (robotobj->movement_type == MT_PHYSICS || robotobj->movement_type == MT_WALKING) {
|
||||
rvel = robotobj->mtype.phys_info.velocity;
|
||||
} else {
|
||||
rvel = Zero_vector;
|
||||
rvel = vector{};
|
||||
}
|
||||
rvel -= playerobj->mtype.phys_info.velocity;
|
||||
float speed = vm_NormalizeVector(&rvel);
|
||||
|
||||
@@ -1449,7 +1449,7 @@ float rad, vector *ep0, vector *ep1)
|
||||
float cdist; // Closest dist
|
||||
|
||||
vector perp = (mdir ^ edir); // Determines the normalized perp to both lines
|
||||
if(perp == Zero_vector)
|
||||
if(perp == vector{})
|
||||
goto check_ends; // We are moving parallal to the cylinder (only end collisions are possible)
|
||||
pmag = vm_NormalizeVector(&perp);
|
||||
|
||||
@@ -2669,7 +2669,7 @@ int fvi_FindIntersection(fvi_query *fq, fvi_info *hit_data, bool no_subdivision)
|
||||
this_obj->type != OBJ_PLAYER && fq->rad == this_obj->size) {
|
||||
if (this_obj->mtype.phys_info.flags & PF_POINT_COLLIDE_WALLS) {
|
||||
fvi_wall_sphere_rad = 0.0f;
|
||||
fvi_wall_sphere_offset = Zero_vector;
|
||||
fvi_wall_sphere_offset = vector{};
|
||||
fvi_wall_sphere_p0 = *fq->p0;
|
||||
fvi_wall_sphere_p1 = *fq->p1;
|
||||
} else {
|
||||
@@ -2688,23 +2688,23 @@ int fvi_FindIntersection(fvi_query *fq, fvi_info *hit_data, bool no_subdivision)
|
||||
fvi_wall_sphere_rad = fq->rad * PLAYER_SIZE_SCALAR;
|
||||
if (Players[this_obj->id].flags & (PLAYER_FLAGS_DEAD | PLAYER_FLAGS_DYING))
|
||||
fvi_wall_sphere_rad *= 0.5f;
|
||||
fvi_wall_sphere_offset = Zero_vector;
|
||||
fvi_wall_sphere_offset = vector{};
|
||||
fvi_wall_sphere_p0 = *fq->p0;
|
||||
fvi_wall_sphere_p1 = *fq->p1;
|
||||
} else if ((this_obj) && this_obj->mtype.phys_info.flags & PF_POINT_COLLIDE_WALLS) {
|
||||
fvi_wall_sphere_rad = 0.0f;
|
||||
fvi_wall_sphere_offset = Zero_vector;
|
||||
fvi_wall_sphere_offset = vector{};
|
||||
fvi_wall_sphere_p0 = *fq->p0;
|
||||
fvi_wall_sphere_p1 = *fq->p1;
|
||||
} else {
|
||||
fvi_wall_sphere_rad = fq->rad;
|
||||
fvi_wall_sphere_offset = Zero_vector;
|
||||
fvi_wall_sphere_offset = vector{};
|
||||
fvi_wall_sphere_p0 = *fq->p0;
|
||||
fvi_wall_sphere_p1 = *fq->p1;
|
||||
}
|
||||
|
||||
fvi_anim_sphere_rad = fq->rad;
|
||||
fvi_anim_sphere_offset = Zero_vector;
|
||||
fvi_anim_sphere_offset = vector{};
|
||||
fvi_anim_sphere_p0 = *fq->p0;
|
||||
fvi_anim_sphere_p1 = *fq->p1;
|
||||
}
|
||||
@@ -3203,7 +3203,7 @@ vector PointSpeed(object *obj, vector *pos, matrix *orient, vector *rotvel, vect
|
||||
if (temp1 != 0.0f) {
|
||||
vm_CrossProduct(&w1, &n1, &r1);
|
||||
} else {
|
||||
w1 = Zero_vector;
|
||||
w1 = vector{};
|
||||
}
|
||||
|
||||
return *velocity + w1;
|
||||
@@ -3245,7 +3245,7 @@ bool BBoxPlaneIntersection(bool fast_exit, vector *collision_point, vector *coll
|
||||
verts[i] += *new_pos;
|
||||
}
|
||||
|
||||
vector xxx_normal = Zero_vector;
|
||||
vector xxx_normal{};
|
||||
xxx_normal.y() = 1.0f;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
@@ -3733,7 +3733,7 @@ fvi_query_ptr->p1)); matrix orient = *fvi_query_ptr->o_orient; vector rotvel = *
|
||||
// Save results of this simulation
|
||||
old_sim_time_remaining = sim_time_remaining;
|
||||
moved_vec_n = end_pos - *p0;
|
||||
if(moved_vec_n != Zero_vector)
|
||||
if(moved_vec_n != vector{})
|
||||
{
|
||||
actual_dist = vm_NormalizeVector(&moved_vec_n);
|
||||
}
|
||||
@@ -3988,7 +3988,7 @@ inline void check_terrain_node(int cur_node, bool f_check_local_nodes, bool f_ch
|
||||
fvi_hit_data_ptr->hit_pnt = *fvi_query_ptr->p0;
|
||||
|
||||
fvi_collision_dist = 0.0;
|
||||
movement_dir = Zero_vector;
|
||||
movement_dir = vector{};
|
||||
hit_dist = 0.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -617,7 +617,7 @@ bool PhysicsDoSimRot(object *obj, float frame_time, matrix *orient, vector *rott
|
||||
|
||||
if (pi->rotdrag > 0.0f) {
|
||||
if (!(pi->flags & PF_USES_THRUST)) {
|
||||
*rotthrust = Zero_vector;
|
||||
*rotthrust = vector{};
|
||||
}
|
||||
|
||||
PhysicsApplyConstRotForce(*obj, *rotthrust, *rotvel, frame_time);
|
||||
@@ -661,7 +661,7 @@ void PhysicsDoSimLinear(const object &obj, const vector &pos, const vector &forc
|
||||
|
||||
vector forceToUse = force;
|
||||
if (!ROOMNUM_OUTSIDE(obj.roomnum) && !(obj.mtype.phys_info.flags & PF_LOCK_MASK) &&
|
||||
Rooms[obj.roomnum].wind != Zero_vector && count == 0 && obj.mtype.phys_info.drag > 0.0f &&
|
||||
Rooms[obj.roomnum].wind != vector{} && count == 0 && obj.mtype.phys_info.drag > 0.0f &&
|
||||
!(obj.type == OBJ_POWERUP && Level_powerups_ignore_wind)) {
|
||||
// Factor in outside wind
|
||||
const vector &wind = Rooms[obj.roomnum].wind;
|
||||
@@ -753,7 +753,7 @@ void do_physics_sim(object *obj) {
|
||||
}
|
||||
|
||||
if (obj->type == OBJ_PLAYER &&
|
||||
(obj->mtype.phys_info.thrust != Zero_vector || obj->mtype.phys_info.rotthrust != Zero_vector)) {
|
||||
(obj->mtype.phys_info.thrust != vector{} || obj->mtype.phys_info.rotthrust != vector{})) {
|
||||
Players[obj->id].last_thrust_time = Gametime;
|
||||
}
|
||||
|
||||
@@ -840,7 +840,7 @@ void do_physics_sim(object *obj) {
|
||||
fabs(pi->rotvel.x()) > .000001 || fabs(pi->rotvel.y()) > .000001 || fabs(pi->rotvel.z()) > .000001 ||
|
||||
fabs(pi->rotthrust.x()) > .000001 || fabs(pi->rotthrust.y()) > .000001 || fabs(pi->rotthrust.z()) > .000001 ||
|
||||
(obj->mtype.phys_info.flags & PF_GRAVITY) ||
|
||||
((!ROOMNUM_OUTSIDE(obj->roomnum)) && Rooms[obj->roomnum].wind != Zero_vector) ||
|
||||
((!ROOMNUM_OUTSIDE(obj->roomnum)) && Rooms[obj->roomnum].wind != vector{}) ||
|
||||
(obj->mtype.phys_info.flags & PF_WIGGLE) ||
|
||||
((obj->ai_info != NULL) && ((obj->ai_info->flags & AIF_REPORT_NEW_ORIENT) != 0)))) {
|
||||
if ((obj->flags & OF_MOVED_THIS_FRAME)) {
|
||||
@@ -1030,7 +1030,7 @@ void do_physics_sim(object *obj) {
|
||||
|
||||
if (fate != HIT_NONE) {
|
||||
if (obj->type == OBJ_PLAYER && hit_info.num_hits > 1) {
|
||||
vector n = Zero_vector;
|
||||
vector n{};
|
||||
int i;
|
||||
|
||||
for (i = 0; i < hit_info.num_hits; i++) {
|
||||
@@ -1155,7 +1155,7 @@ void do_physics_sim(object *obj) {
|
||||
// Save results of this simulation
|
||||
old_sim_time_remaining = sim_time_remaining;
|
||||
moved_vec_n = obj->pos - start_pos; // chrishack -- use this copy
|
||||
if (moved_vec_n != Zero_vector) {
|
||||
if (moved_vec_n != vector{}) {
|
||||
actual_dist = vm_NormalizeVector(&moved_vec_n);
|
||||
} else {
|
||||
actual_dist = 0.0f;
|
||||
@@ -1212,7 +1212,7 @@ void do_physics_sim(object *obj) {
|
||||
switch (fate) {
|
||||
case HIT_NONE:
|
||||
if (obj->type == OBJ_WEAPON && (obj->mtype.phys_info.flags & (PF_GRAVITY | PF_WIND))) {
|
||||
if (obj->mtype.phys_info.velocity != Zero_vector)
|
||||
if (obj->mtype.phys_info.velocity != vector{})
|
||||
vm_VectorToMatrix(&obj->orient, &obj->mtype.phys_info.velocity, &obj->orient.uvec, NULL);
|
||||
}
|
||||
f_continue_sim = false;
|
||||
@@ -1353,8 +1353,8 @@ void do_physics_sim(object *obj) {
|
||||
}
|
||||
|
||||
if (v_mag < 1.8f) {
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.rotvel = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
obj->mtype.phys_info.rotvel = vector{};
|
||||
goto skip_sim;
|
||||
} else {
|
||||
goto slide_sim;
|
||||
@@ -1402,9 +1402,9 @@ void do_physics_sim(object *obj) {
|
||||
// obj->mtype.phys_info.velocity *= (luke_test);
|
||||
} else if (obj->type == OBJ_CLUTTER && !(obj->mtype.phys_info.flags & PF_LOCK_MASK)) {
|
||||
// Do rolling rotvel hack
|
||||
obj->mtype.phys_info.rotvel = Zero_vector;
|
||||
obj->mtype.phys_info.rotvel = vector{};
|
||||
|
||||
if (obj->mtype.phys_info.velocity != Zero_vector) {
|
||||
if (obj->mtype.phys_info.velocity != vector{}) {
|
||||
vector axis;
|
||||
scalar speed = vm_GetMagnitude(&obj->mtype.phys_info.velocity);
|
||||
|
||||
@@ -1437,7 +1437,7 @@ void do_physics_sim(object *obj) {
|
||||
|
||||
// Weapons should face their new heading. This is so missiles are pointing in the correct direct.
|
||||
if (obj->type == OBJ_WEAPON && (bounced || (obj->mtype.phys_info.flags & (PF_GRAVITY | PF_WIND))))
|
||||
if (obj->mtype.phys_info.velocity != Zero_vector)
|
||||
if (obj->mtype.phys_info.velocity != vector{})
|
||||
vm_VectorToMatrix(&obj->orient, &obj->mtype.phys_info.velocity, &obj->orient.uvec, NULL);
|
||||
}
|
||||
}
|
||||
@@ -1527,7 +1527,7 @@ void do_physics_sim(object *obj) {
|
||||
(obj->type == OBJ_BUILDING && obj->ai_info)) &&
|
||||
sim_time_remaining == old_sim_time_remaining &&
|
||||
(Objects[hit_info.hit_object[0]].movement_type == MT_NONE ||
|
||||
(Objects[hit_info.hit_object[0]].mtype.phys_info.velocity == Zero_vector &&
|
||||
(Objects[hit_info.hit_object[0]].mtype.phys_info.velocity == vector{} &&
|
||||
(Objects[hit_info.hit_object[0]].mtype.phys_info.flags & PF_LOCK_MASK)))) {
|
||||
obj->mtype.phys_info.velocity += hit_info.hit_wallnorm[0];
|
||||
}
|
||||
@@ -1588,7 +1588,7 @@ void do_physics_sim(object *obj) {
|
||||
if (count >= sim_loop_limit) {
|
||||
if (obj->type == OBJ_PLAYER) {
|
||||
LOG_WARNING << "Too many collisions for player!";
|
||||
obj->mtype.phys_info.velocity = Zero_vector;
|
||||
obj->mtype.phys_info.velocity = vector{};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1702,7 +1702,7 @@ bool PhysComputeWalkerPosOrient(object *obj, vector *pos, matrix *orient) {
|
||||
}
|
||||
|
||||
int num_ave = 0;
|
||||
vector ave_diff = Zero_vector;
|
||||
vector ave_diff{};
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
int fate;
|
||||
@@ -1726,7 +1726,7 @@ bool PhysComputeWalkerPosOrient(object *obj, vector *pos, matrix *orient) {
|
||||
if (num_ave > 0) {
|
||||
ave_diff /= num_ave;
|
||||
} else
|
||||
ave_diff = Zero_vector;
|
||||
ave_diff = vector{};
|
||||
|
||||
vector uvec;
|
||||
vm_GetPerp(&uvec, &hp[0], &hp[1], &hp[2]);
|
||||
@@ -1945,7 +1945,7 @@ void do_walking_sim(object *obj) {
|
||||
|
||||
int bounced = 0; // Did the object bounce?
|
||||
|
||||
vector total_force = Zero_vector; // Constant force acting on an object
|
||||
vector total_force{}; // Constant force acting on an object
|
||||
|
||||
bool f_continue_sim; // Should we run another simulation loop
|
||||
|
||||
@@ -1978,7 +1978,7 @@ void do_walking_sim(object *obj) {
|
||||
fabs(pi->rotvel.x()) > .000001 || fabs(pi->rotvel.y()) > .000001 || fabs(pi->rotvel.z()) > .000001 ||
|
||||
fabs(pi->rotthrust.x()) > .000001 || fabs(pi->rotthrust.y()) > .000001 || fabs(pi->rotthrust.z()) > .000001 ||
|
||||
(obj->mtype.phys_info.flags & PF_GRAVITY) ||
|
||||
((!ROOMNUM_OUTSIDE(obj->roomnum)) && Rooms[obj->roomnum].wind != Zero_vector) ||
|
||||
((!ROOMNUM_OUTSIDE(obj->roomnum)) && Rooms[obj->roomnum].wind != vector{}) ||
|
||||
(obj->mtype.phys_info.flags & PF_WIGGLE) ||
|
||||
((obj->ai_info != NULL) && ((obj->ai_info->flags & AIF_REPORT_NEW_ORIENT) != 0)))) {
|
||||
if ((obj->flags & OF_MOVED_THIS_FRAME)) {
|
||||
@@ -2023,7 +2023,7 @@ void do_walking_sim(object *obj) {
|
||||
|
||||
// Simulate movement until we are done (i.e. Frametime has passed or object is done moving)
|
||||
do {
|
||||
obj->mtype.phys_info.rotvel = Zero_vector;
|
||||
obj->mtype.phys_info.rotvel = vector{};
|
||||
|
||||
#ifdef _DEBUG
|
||||
// This records the sim.
|
||||
@@ -2103,18 +2103,18 @@ void do_walking_sim(object *obj) {
|
||||
}
|
||||
} else {
|
||||
f_step = false;
|
||||
movement_vec = Zero_vector;
|
||||
movement_vec = vector{};
|
||||
}
|
||||
} else {
|
||||
f_step = false;
|
||||
movement_vec = Zero_vector;
|
||||
movement_vec = vector{};
|
||||
}
|
||||
} else {
|
||||
f_step = false;
|
||||
}
|
||||
|
||||
if (!f_step) {
|
||||
pi->velocity = Zero_vector;
|
||||
pi->velocity = vector{};
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2153,7 +2153,7 @@ void do_walking_sim(object *obj) {
|
||||
// Save results of this simulation
|
||||
old_sim_time_remaining = sim_time_remaining;
|
||||
moved_vec_n = obj->pos - start_pos; // chrishack -- use this copy
|
||||
if (moved_vec_n != Zero_vector) {
|
||||
if (moved_vec_n != vector{}) {
|
||||
actual_dist = vm_NormalizeVector(&moved_vec_n);
|
||||
} else {
|
||||
actual_dist = 0.0f;
|
||||
@@ -2319,7 +2319,7 @@ void do_walking_sim(object *obj) {
|
||||
|
||||
// Weapons should face their new heading. This is so missiles are pointing in the correct direct.
|
||||
if (obj->type == OBJ_WEAPON && (bounced || (obj->mtype.phys_info.flags & (PF_GRAVITY | PF_WIND))))
|
||||
if (obj->mtype.phys_info.velocity != Zero_vector)
|
||||
if (obj->mtype.phys_info.velocity != vector{})
|
||||
vm_VectorToMatrix(&obj->orient, &obj->mtype.phys_info.velocity, &obj->orient.uvec, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3119,7 +3119,7 @@ bool Humonculous::DoNotify(int me, tOSIRISEventInfo *data) {
|
||||
case HM_ABOUT_TO_FAKE_DEATH:
|
||||
case HM_ABOUT_TO_DIE: {
|
||||
if (data->evt_ai_notify.notify_type == AIN_SCRIPTED_ORIENT) {
|
||||
vector uvec = Zero_vector;
|
||||
vector uvec{};
|
||||
uvec.y() = 1.0f;
|
||||
|
||||
if (AI_TurnTowardsVectors(me, &memory->land_fvec, &uvec))
|
||||
@@ -3482,7 +3482,7 @@ void Humonculous::DoInterval(int me) {
|
||||
switch (memory->mode) {
|
||||
case HM_INTRO_CUTSCENE: {
|
||||
if (memory->mode_time < H_DOOR_WAIT_TIME && memory->mode_time + Game_GetFrameTime() >= H_DOOR_WAIT_TIME) {
|
||||
vector velocity = Zero_vector;
|
||||
vector velocity{};
|
||||
velocity.y() = 65.0f;
|
||||
|
||||
Obj_Value(me, VF_SET, OBJV_V_VELOCITY, &velocity);
|
||||
@@ -3664,7 +3664,7 @@ void Humonculous::DoInterval(int me) {
|
||||
|
||||
case HM_FAKE_DEATH: {
|
||||
if (memory->mode_time > 4.0f) {
|
||||
vector velocity = Zero_vector;
|
||||
vector velocity{};
|
||||
velocity.y() = 40.0f;
|
||||
|
||||
Obj_Value(me, VF_SET, OBJV_V_VELOCITY, &velocity);
|
||||
@@ -8352,7 +8352,7 @@ bool Sparky::DoNotify(int me_handle, tOSIRISEventInfo *data) {
|
||||
|
||||
Obj_Value(me_handle, VF_SET, OBJV_V_ROTVELOCITY, &rvel);
|
||||
|
||||
vector dir = Zero_vector;
|
||||
vector dir{};
|
||||
AI_Value(me_handle, VF_SET, AIV_V_MOVEMENT_DIR, &dir);
|
||||
}
|
||||
|
||||
|
||||
@@ -554,7 +554,7 @@ bool MercEndBoss::DoNotify(int me, tOSIRISEventInfo *data) {
|
||||
|
||||
Obj_Value(me, VF_SET, OBJV_V_ROTVELOCITY, &rvel);
|
||||
|
||||
vector dir = Zero_vector;
|
||||
vector dir{};
|
||||
AI_Value(me, VF_SET, AIV_V_MOVEMENT_DIR, &dir);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ scalar vm_VectorNormalizeFast(vector *a) {
|
||||
mag = vm_GetMagnitudeFast(a);
|
||||
|
||||
if (mag == 0.0) {
|
||||
*a = Zero_vector;
|
||||
*a = vector{};
|
||||
return 0;
|
||||
}
|
||||
*a /= mag;
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
#include "fix.h"
|
||||
#include "vecmat_external.h"
|
||||
|
||||
const vector Zero_vector = vector{};
|
||||
|
||||
// Disable the "possible loss of data" warning
|
||||
#pragma warning(disable : 4244)
|
||||
|
||||
|
||||
@@ -879,12 +879,12 @@ bool hlsSystem::ComputePlayInfo(int sound_obj_index, vector *virtual_pos, vector
|
||||
if (objp->movement_type == MT_PHYSICS || objp->movement_type == MT_WALKING)
|
||||
*virtual_vel = objp->mtype.phys_info.velocity;
|
||||
else
|
||||
*virtual_vel = Zero_vector;
|
||||
*virtual_vel = vector{};
|
||||
|
||||
sound_pos = objp->pos;
|
||||
sound_seg = objp->roomnum;
|
||||
} else {
|
||||
*virtual_vel = Zero_vector;
|
||||
*virtual_vel = vector{};
|
||||
sound_pos = m_sound_objects[sound_obj_index].m_link_info.pos_info.pos;
|
||||
sound_seg = m_sound_objects[sound_obj_index].m_link_info.pos_info.segnum;
|
||||
}
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
#include "pserror.h"
|
||||
#include "psrand.h"
|
||||
|
||||
const vector Zero_vector = vector{};
|
||||
const matrix Identity_matrix = IDENTITY_MATRIX;
|
||||
|
||||
void vm_AverageVector(vector *a, int num) {
|
||||
|
||||
Reference in New Issue
Block a user