From: Mario Date: Fri, 22 Jul 2016 16:28:18 +0000 (+1000) Subject: Remove .move_* fields and MOVETYPE_PUSH logic (doesn't work) X-Git-Tag: xonotic-v0.8.2~700^2~39^2~12 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=7666560c6a475aefe6b55ff74a20444f328e0093;p=xonotic%2Fxonotic-data.pk3dir.git Remove .move_* fields and MOVETYPE_PUSH logic (doesn't work) --- diff --git a/qcsrc/client/weapons/projectile.qc b/qcsrc/client/weapons/projectile.qc index 39032cd70..973005e12 100644 --- a/qcsrc/client/weapons/projectile.qc +++ b/qcsrc/client/weapons/projectile.qc @@ -18,7 +18,7 @@ void SUB_Stop(entity this, entity toucher) { - this.move_velocity = this.move_avelocity = '0 0 0'; + this.velocity = this.avelocity = '0 0 0'; this.move_movetype = MOVETYPE_NONE; } @@ -58,11 +58,11 @@ void Projectile_Draw(entity this) float t; float a; - f = this.move_flags; + f = this.flags; if (this.count & 0x80) { - // this.move_flags &= ~FL_ONGROUND; + // this.flags &= ~FL_ONGROUND; if (this.move_movetype == MOVETYPE_NONE || this.move_movetype == MOVETYPE_FLY) Movetype_Physics_NoMatchServer(this); // the trivial movetypes do not have to match the @@ -72,9 +72,9 @@ void Projectile_Draw(entity this) // moving, we might still be ticrate dependent. else Movetype_Physics_MatchServer(this, autocvar_cl_projectiles_sloppy); - if (!(this.move_flags & FL_ONGROUND)) + if (!(this.flags & FL_ONGROUND)) if (this.velocity != '0 0 0') - this.move_angles = this.angles = vectoangles(this.velocity); + this.angles = vectoangles(this.velocity); } else { @@ -209,9 +209,9 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew) // projectiles no longer being able to lie on a bmodel this.move_nomonsters = MOVE_WORLDONLY; if (f & 0x40) - this.move_flags |= FL_ONGROUND; + this.flags |= FL_ONGROUND; else - this.move_flags &= ~FL_ONGROUND; + this.flags &= ~FL_ONGROUND; if (!this.move_time) { @@ -243,8 +243,6 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew) this.gravity = ReadCoord(); else this.gravity = 0; // none - this.move_origin = this.origin; - this.move_velocity = this.velocity; } if (time == this.spawntime || (this.count & 0x80) || (f & 0x08)) @@ -344,8 +342,8 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew) this.maxs = '0 0 -4'; this.move_movetype = MOVETYPE_BOUNCE; settouch(this, func_null); - this.move_bounce_factor = WEP_CVAR_SEC(electro, bouncefactor); - this.move_bounce_stopspeed = WEP_CVAR_SEC(electro, bouncestop); + this.bouncefactor = WEP_CVAR_SEC(electro, bouncefactor); + this.bouncestop = WEP_CVAR_SEC(electro, bouncestop); break; case PROJECTILE_RPC: case PROJECTILE_ROCKET: @@ -362,8 +360,8 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew) this.maxs = '3 3 3'; this.move_movetype = MOVETYPE_BOUNCE; settouch(this, func_null); - this.move_bounce_factor = WEP_CVAR(mortar, bouncefactor); - this.move_bounce_stopspeed = WEP_CVAR(mortar, bouncestop); + this.bouncefactor = WEP_CVAR(mortar, bouncefactor); + this.bouncestop = WEP_CVAR(mortar, bouncestop); break; case PROJECTILE_SHAMBLER_LIGHTNING: this.mins = '-8 -8 -8'; @@ -443,9 +441,9 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew) this.mins = '0 0 -4'; this.maxs = '0 0 -4'; this.move_movetype = MOVETYPE_BOUNCE; - this.move_touch = func_null; - this.move_bounce_factor = WEP_CVAR_SEC(electro, bouncefactor); - this.move_bounce_stopspeed = WEP_CVAR_SEC(electro, bouncestop); + settouch(this, func_null); + this.bouncefactor = WEP_CVAR_SEC(electro, bouncefactor); + this.bouncestop = WEP_CVAR_SEC(electro, bouncestop); break; */ default: diff --git a/qcsrc/common/effects/qc/casings.qc b/qcsrc/common/effects/qc/casings.qc index 308a7b219..9eae42051 100644 --- a/qcsrc/common/effects/qc/casings.qc +++ b/qcsrc/common/effects/qc/casings.qc @@ -49,10 +49,10 @@ void Casing_Delete(entity this) void Casing_Draw(entity this) { - if (this.move_flags & FL_ONGROUND) + if (this.flags & FL_ONGROUND) { - this.move_angles_x = 0; - this.move_angles_z = 0; + this.angles_x = 0; + this.angles_z = 0; UNSET_ONGROUND(this); } @@ -121,8 +121,8 @@ void Casing_Damage(entity this, float thisdmg, int hittype, vector org, vector t { if (thisforce.z < 0) thisforce.z = 0; - this.move_velocity = this.move_velocity + thisforce + '0 0 100'; - this.move_flags &= ~FL_ONGROUND; + this.velocity = this.velocity + thisforce + '0 0 100'; + this.flags &= ~FL_ONGROUND; } NET_HANDLE(casings, bool isNew) @@ -151,10 +151,8 @@ NET_HANDLE(casings, bool isNew) casing.drawmask = MASK_NORMAL; casing.draw = Casing_Draw; - casing.move_origin = casing.origin; - casing.move_velocity = casing.velocity + 2 * prandomvec(); - casing.move_angles = casing.angles; - casing.move_avelocity = '0 250 0' + 100 * prandomvec(); + casing.velocity = casing.velocity + 2 * prandomvec(); + casing.avelocity = '0 250 0' + 100 * prandomvec(); casing.move_movetype = MOVETYPE_BOUNCE; settouch(casing, Casing_Touch); casing.move_time = time; diff --git a/qcsrc/common/effects/qc/damageeffects.qc b/qcsrc/common/effects/qc/damageeffects.qc index c1144d261..09ec8868f 100644 --- a/qcsrc/common/effects/qc/damageeffects.qc +++ b/qcsrc/common/effects/qc/damageeffects.qc @@ -255,8 +255,8 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew) if(it.damageforcescale) if(vdist(thisforce, !=, 0)) { - it.move_velocity = it.move_velocity + damage_explosion_calcpush(it.damageforcescale * thisforce, it.move_velocity, autocvar_g_balance_damagepush_speedfactor); - it.move_flags &= ~FL_ONGROUND; + it.velocity = it.velocity + damage_explosion_calcpush(it.damageforcescale * thisforce, it.velocity, autocvar_g_balance_damagepush_speedfactor); + it.flags &= ~FL_ONGROUND; } if(w_issilent) diff --git a/qcsrc/common/effects/qc/gibs.qc b/qcsrc/common/effects/qc/gibs.qc index b88a57f4d..aaecf18f9 100644 --- a/qcsrc/common/effects/qc/gibs.qc +++ b/qcsrc/common/effects/qc/gibs.qc @@ -192,10 +192,9 @@ void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector org = trace_endpos; } - gib.move_origin = org; setorigin(gib, org); - gib.move_velocity = vconst * autocvar_cl_gibs_velocity_scale + vrand * autocvar_cl_gibs_velocity_random + '0 0 1' * autocvar_cl_gibs_velocity_up; - gib.move_avelocity = prandomvec() * vlen(gib.move_velocity) * autocvar_cl_gibs_avelocity_scale; + gib.velocity = vconst * autocvar_cl_gibs_velocity_scale + vrand * autocvar_cl_gibs_velocity_random + '0 0 1' * autocvar_cl_gibs_velocity_up; + gib.avelocity = prandomvec() * vlen(gib.velocity) * autocvar_cl_gibs_avelocity_scale; gib.move_time = time; gib.damageforcescale = autocvar_cl_gibs_damageforcescale; diff --git a/qcsrc/common/gamemodes/gamemode/onslaught/cl_controlpoint.qc b/qcsrc/common/gamemodes/gamemode/onslaught/cl_controlpoint.qc index 8389b22da..bbd3f03b3 100644 --- a/qcsrc/common/gamemodes/gamemode/onslaught/cl_controlpoint.qc +++ b/qcsrc/common/gamemodes/gamemode/onslaught/cl_controlpoint.qc @@ -74,9 +74,9 @@ void cpicon_draw(entity this) } this.angles_x = this.punchangle_x; - this.angles_y = this.punchangle_y + this.move_angles_y; + this.angles_y = this.punchangle_y + this.angles_y; this.angles_z = this.punchangle_z; - this.move_angles_y = this.move_angles_y + 45 * frametime; + this.angles_y = this.angles_y + 45 * frametime; } setorigin(this, this.cp_origin + this.cp_bob_origin + this.cp_bob_dmg); @@ -119,7 +119,6 @@ void cpicon_construct(entity this) setsize(this.icon_realmodel, CPICON_MIN, CPICON_MAX); this.icon_realmodel.movetype = MOVETYPE_NOCLIP; this.icon_realmodel.solid = SOLID_NOT; - this.icon_realmodel.move_origin = this.icon_realmodel.origin; } if(this.iscaptured) { this.icon_realmodel.solid = SOLID_BBOX; } @@ -127,7 +126,6 @@ void cpicon_construct(entity this) this.move_movetype = MOVETYPE_NOCLIP; this.solid = SOLID_NOT; this.movetype = MOVETYPE_NOCLIP; - this.move_origin = this.origin; this.move_time = time; this.drawmask = MASK_NORMAL; this.alpha = 1; diff --git a/qcsrc/common/gamemodes/gamemode/onslaught/cl_generator.qc b/qcsrc/common/gamemodes/gamemode/onslaught/cl_generator.qc index 03e81f4bd..30ecfb1ac 100644 --- a/qcsrc/common/gamemodes/gamemode/onslaught/cl_generator.qc +++ b/qcsrc/common/gamemodes/gamemode/onslaught/cl_generator.qc @@ -33,7 +33,6 @@ void ons_generator_ray_spawn(vector org) setmodel(e, MDL_ONS_RAY); setorigin(e, org); e.angles = randomvec() * 360; - e.move_origin = org; e.movetype = MOVETYPE_NONE; e.alpha = 0; e.scale = random() * 5 + 8; @@ -155,7 +154,6 @@ void generator_construct(entity this) this.move_movetype = MOVETYPE_NOCLIP; this.solid = SOLID_BBOX; this.movetype = MOVETYPE_NOCLIP; - this.move_origin = this.origin; this.move_time = time; this.drawmask = MASK_NORMAL; this.alpha = 1; diff --git a/qcsrc/common/mutators/mutator/nades/nades.qc b/qcsrc/common/mutators/mutator/nades/nades.qc index fd9a4226a..7ba2f6f5b 100644 --- a/qcsrc/common/mutators/mutator/nades/nades.qc +++ b/qcsrc/common/mutators/mutator/nades/nades.qc @@ -572,13 +572,11 @@ void nade_entrap_touch(entity this, entity toucher) if(!pushdeltatime) return; // div0: ticrate independent, 1 = identity (not 20) -#ifdef SVQC toucher.velocity = toucher.velocity * pow(autocvar_g_nades_entrap_strength, pushdeltatime); + #ifdef SVQC UpdateCSQCProjectile(toucher); -#elif defined(CSQC) - toucher.move_velocity = toucher.move_velocity * pow(autocvar_g_nades_entrap_strength, pushdeltatime); -#endif + #endif } if ( IS_REAL_CLIENT(toucher) || IS_VEHICLE(toucher) || IS_MONSTER(toucher) ) diff --git a/qcsrc/common/mutators/mutator/nades/net.qc b/qcsrc/common/mutators/mutator/nades/net.qc index af320d9c1..26ebd504e 100644 --- a/qcsrc/common/mutators/mutator/nades/net.qc +++ b/qcsrc/common/mutators/mutator/nades/net.qc @@ -34,7 +34,7 @@ void orb_setup(entity e) e.solid = SOLID_NOT; e.drawmask = MASK_NORMAL; e.scale = 0.01; - e.avelocity = e.move_avelocity = '7 0 11'; + e.avelocity = '7 0 11'; e.renderflags |= RF_ADDITIVE; } #endif diff --git a/qcsrc/common/physics/movetypes/_mod.inc b/qcsrc/common/physics/movetypes/_mod.inc index 4effcbd04..5cb1d0bc4 100644 --- a/qcsrc/common/physics/movetypes/_mod.inc +++ b/qcsrc/common/physics/movetypes/_mod.inc @@ -1,7 +1,6 @@ // generated file; do not modify #include #include -#include #include #include #include diff --git a/qcsrc/common/physics/movetypes/_mod.qh b/qcsrc/common/physics/movetypes/_mod.qh index 32ae3813c..1b1241a0a 100644 --- a/qcsrc/common/physics/movetypes/_mod.qh +++ b/qcsrc/common/physics/movetypes/_mod.qh @@ -1,7 +1,6 @@ // generated file; do not modify #include #include -#include #include #include #include diff --git a/qcsrc/common/physics/movetypes/all.inc b/qcsrc/common/physics/movetypes/all.inc index 322b3c4de..70157d186 100644 --- a/qcsrc/common/physics/movetypes/all.inc +++ b/qcsrc/common/physics/movetypes/all.inc @@ -1,4 +1,3 @@ -#include "push.qc" #include "toss.qc" #include "walk.qc" #include "step.qc" diff --git a/qcsrc/common/physics/movetypes/follow.qc b/qcsrc/common/physics/movetypes/follow.qc index 421c0e73f..515208987 100644 --- a/qcsrc/common/physics/movetypes/follow.qc +++ b/qcsrc/common/physics/movetypes/follow.qc @@ -4,7 +4,7 @@ void _Movetype_Physics_Follow(entity this) // SV_Physics_Follow if(e.angles == this.punchangle) { - this.move_origin = e.origin + this.view_ofs; + this.origin = e.origin + this.view_ofs; } else { @@ -19,11 +19,11 @@ void _Movetype_Physics_Follow(entity this) // SV_Physics_Follow ang = e.angles; ang_x = -e.angles_x; makevectors(ang); - this.move_origin_x = v_x * v_forward_x + v_y * v_forward_y + v_z * v_forward_z + e.origin_x; - this.move_origin_x = v_x * v_right_x + v_y * v_right_y + v_z * v_right_z + e.origin_y; - this.move_origin_x = v_x * v_up_x + v_y * v_up_y + v_z * v_up_z + e.origin_z; + this.origin_x = v_x * v_forward_x + v_y * v_forward_y + v_z * v_forward_z + e.origin_x; + this.origin_x = v_x * v_right_x + v_y * v_right_y + v_z * v_right_z + e.origin_y; + this.origin_x = v_x * v_up_x + v_y * v_up_y + v_z * v_up_z + e.origin_z; } - this.move_angles = e.angles + this.v_angle; + this.angles = e.angles + this.v_angle; _Movetype_LinkEdict(this, false); } diff --git a/qcsrc/common/physics/movetypes/movetypes.qc b/qcsrc/common/physics/movetypes/movetypes.qc index 78429dda9..f00128da4 100644 --- a/qcsrc/common/physics/movetypes/movetypes.qc +++ b/qcsrc/common/physics/movetypes/movetypes.qc @@ -21,11 +21,11 @@ void _Movetype_WallFriction(entity this, vector stepnormal) // SV_WallFriction if(d < 0) { - i = (stepnormal * this.move_velocity); + i = (stepnormal * this.velocity); into = i * stepnormal; - side = this.move_velocity - into; - this.move_velocity_x = side.x * (1 * d); - this.move_velocity_y = side.y * (1 * d); + side = this.velocity - into; + this.velocity_x = side.x * (1 * d); + this.velocity_y = side.y * (1 * d); }*/ } @@ -46,23 +46,23 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma this.move_didgravity = 1; grav = dt * (PHYS_ENTGRAVITY(this) ? PHYS_ENTGRAVITY(this) : 1) * PHYS_GRAVITY(this); - if(!GAMEPLAYFIX_NOGRAVITYONGROUND || !(this.move_flags & FL_ONGROUND)) + if(!GAMEPLAYFIX_NOGRAVITYONGROUND || !(this.flags & FL_ONGROUND)) { if(GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE) - this.move_velocity_z -= grav * 0.5; + this.velocity_z -= grav * 0.5; else - this.move_velocity_z -= grav; + this.velocity_z -= grav; } } - original_velocity = primal_velocity = restore_velocity = this.move_velocity; + original_velocity = primal_velocity = restore_velocity = this.velocity; for(bumpcount = 0;bumpcount < MAX_CLIP_PLANES;bumpcount++) { - if(this.move_velocity == '0 0 0') + if(this.velocity == '0 0 0') break; - push = this.move_velocity * time_left; + push = this.velocity * time_left; _Movetype_PushEntity(this, push, true); if(trace_startsolid) { @@ -76,7 +76,7 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma // abort move if we're stuck in the world (and didn't make it out) if(trace_startsolid && trace_allsolid) { - this.move_velocity = restore_velocity; + this.velocity = restore_velocity; return 3; } @@ -99,14 +99,14 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma trace_ent = NULL; } - this.move_flags |= FL_ONGROUND; + this.flags |= FL_ONGROUND; this.move_groundentity = trace_ent; } } else if(stepheight) { // step - handle it immediately - vector org = this.move_origin; + vector org = this.origin; vector steppush = '0 0 1' * stepheight; _Movetype_PushEntity(this, steppush, true); @@ -122,7 +122,7 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma break; } float trace2_fraction = trace_fraction; - steppush = '0 0 1' * (org_z - this.move_origin_z); + steppush = '0 0 1' * (org_z - this.origin_z); _Movetype_PushEntity(this, steppush, true); if(trace_startsolid) { @@ -131,15 +131,15 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma } // accept the new position if it made some progress... - if(fabs(this.move_origin_x - org_x) >= 0.03125 || fabs(this.move_origin_y - org_y) >= 0.03125) + if(fabs(this.origin_x - org_x) >= 0.03125 || fabs(this.origin_y - org_y) >= 0.03125) { - trace_endpos = this.move_origin; + trace_endpos = this.origin; time_left *= 1 - trace2_fraction; numplanes = 0; continue; } else - this.move_origin = org; + this.origin = org; } else { @@ -153,7 +153,7 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma if(my_trace_fraction >= 0.001) { // actually covered some distance - original_velocity = this.move_velocity; + original_velocity = this.velocity; numplanes = 0; } @@ -163,7 +163,7 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma if(numplanes >= MAX_CLIP_PLANES) { // this shouldn't really happen - this.move_velocity = '0 0 0'; + this.velocity = '0 0 0'; blocked = 3; break; } @@ -192,14 +192,14 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma if(i != numplanes) { // go along this plane - this.move_velocity = new_velocity; + this.velocity = new_velocity; } else { // go along the crease if(numplanes != 2) { - this.move_velocity = '0 0 0'; + this.velocity = '0 0 0'; blocked = 7; break; } @@ -211,29 +211,29 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma dir.x *= ilength; dir.y *= ilength; dir.z *= ilength; - float d = (dir * this.move_velocity); - this.move_velocity = dir * d; + float d = (dir * this.velocity); + this.velocity = dir * d; } // if current velocity is against the original velocity, // stop dead to avoid tiny occilations in sloping corners - if((this.move_velocity * primal_velocity) <= 0) + if((this.velocity * primal_velocity) <= 0) { - this.move_velocity = '0 0 0'; + this.velocity = '0 0 0'; break; } } // LordHavoc: this came from QW and allows you to get out of water more easily - if(GAMEPLAYFIX_EASIERWATERJUMP(this) && (this.move_flags & FL_WATERJUMP) && !(blocked & 8)) - this.move_velocity = primal_velocity; + if(GAMEPLAYFIX_EASIERWATERJUMP(this) && (this.flags & FL_WATERJUMP) && !(blocked & 8)) + this.velocity = primal_velocity; if(applygravity) { - if(!GAMEPLAYFIX_NOGRAVITYONGROUND || !(this.move_flags & FL_ONGROUND)) + if(!GAMEPLAYFIX_NOGRAVITYONGROUND || !(this.flags & FL_ONGROUND)) { if(GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE) - this.move_velocity_z -= grav * 0.5f; + this.velocity_z -= grav * 0.5f; } } @@ -242,74 +242,74 @@ int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnorma void _Movetype_CheckVelocity(entity this) // SV_CheckVelocity { - // if(vlen(this.move_velocity) < 0.0001) - // this.move_velocity = '0 0 0'; + // if(vlen(this.velocity) < 0.0001) + // this.velocity = '0 0 0'; } bool _Movetype_CheckWater(entity this) // SV_CheckWater { - vector point = this.move_origin; + vector point = this.origin; point.z += this.mins.z + 1; int nativecontents = pointcontents(point); - if(this.move_watertype && this.move_watertype != nativecontents) + if(this.watertype && this.watertype != nativecontents) { - // dprintf("_Movetype_CheckWater(): Original: '%d', New: '%d'\n", this.move_watertype, nativecontents); + // dprintf("_Movetype_CheckWater(): Original: '%d', New: '%d'\n", this.watertype, nativecontents); if(this.contentstransition) - this.contentstransition(this.move_watertype, nativecontents); + this.contentstransition(this.watertype, nativecontents); } - this.move_waterlevel = WATERLEVEL_NONE; - this.move_watertype = CONTENT_EMPTY; + this.waterlevel = WATERLEVEL_NONE; + this.watertype = CONTENT_EMPTY; int supercontents = Mod_Q1BSP_SuperContentsFromNativeContents(nativecontents); if(supercontents & DPCONTENTS_LIQUIDSMASK) { - this.move_watertype = nativecontents; - this.move_waterlevel = WATERLEVEL_WETFEET; - point.z = this.move_origin.z + (this.mins.z + this.maxs.z) * 0.5; + this.watertype = nativecontents; + this.waterlevel = WATERLEVEL_WETFEET; + point.z = this.origin.z + (this.mins.z + this.maxs.z) * 0.5; if(Mod_Q1BSP_SuperContentsFromNativeContents(pointcontents(point)) & DPCONTENTS_LIQUIDSMASK) { - this.move_waterlevel = WATERLEVEL_SWIMMING; - point.z = this.move_origin.z + this.view_ofs.z; + this.waterlevel = WATERLEVEL_SWIMMING; + point.z = this.origin.z + this.view_ofs.z; if(Mod_Q1BSP_SuperContentsFromNativeContents(pointcontents(point)) & DPCONTENTS_LIQUIDSMASK) - this.move_waterlevel = WATERLEVEL_SUBMERGED; + this.waterlevel = WATERLEVEL_SUBMERGED; } } - return this.move_waterlevel > 1; + return this.waterlevel > 1; } void _Movetype_CheckWaterTransition(entity ent) // SV_CheckWaterTransition { - int contents = pointcontents(ent.move_origin); + int contents = pointcontents(ent.origin); - if(!ent.move_watertype) + if(!ent.watertype) { // just spawned here if(!autocvar_cl_gameplayfix_fixedcheckwatertransition) { - ent.move_watertype = contents; - ent.move_waterlevel = 1; + ent.watertype = contents; + ent.waterlevel = 1; return; } } - else if(ent.move_watertype != contents) + else if(ent.watertype != contents) { - // dprintf("_Movetype_CheckWaterTransition(): Origin: %s, Direct: '%d', Original: '%d', New: '%d'\n", vtos(ent.move_origin), pointcontents(ent.move_origin), ent.move_watertype, contents); + // dprintf("_Movetype_CheckWaterTransition(): Origin: %s, Direct: '%d', Original: '%d', New: '%d'\n", vtos(ent.origin), pointcontents(ent.origin), ent.watertype, contents); if(ent.contentstransition) - ent.contentstransition(ent.move_watertype, contents); + ent.contentstransition(ent.watertype, contents); } if(contents <= CONTENT_WATER) { - ent.move_watertype = contents; - ent.move_waterlevel = 1; + ent.watertype = contents; + ent.waterlevel = 1; } else { - ent.move_watertype = CONTENT_EMPTY; - ent.move_waterlevel = (autocvar_cl_gameplayfix_fixedcheckwatertransition ? 0 : contents); + ent.watertype = CONTENT_EMPTY; + ent.waterlevel = (autocvar_cl_gameplayfix_fixedcheckwatertransition ? 0 : contents); } } @@ -337,7 +337,7 @@ void _Movetype_LinkEdict_TouchAreaGrid(entity this) // SV_LinkEdict_TouchAreaGr trace_fraction = 1; trace_inwater = false; trace_inopen = true; - trace_endpos = it.move_origin; + trace_endpos = it.origin; trace_plane_normal = '0 0 1'; trace_plane_dist = 0; trace_ent = this; @@ -361,10 +361,10 @@ void _Movetype_LinkEdict(entity this, bool touch_triggers) // SV_LinkEdict mi = this.mins; ma = this.maxs; } - mi += this.move_origin; - ma += this.move_origin; + mi += this.origin; + ma += this.origin; - if(this.move_flags & FL_ITEM) + if(this.flags & FL_ITEM) { mi.x -= 15; mi.y -= 15; @@ -394,18 +394,18 @@ entity _Movetype_TestEntityPosition_ent; bool _Movetype_TestEntityPosition(vector ofs) // SV_TestEntityPosition { entity this = _Movetype_TestEntityPosition_ent; -// vector org = this.move_origin + ofs; +// vector org = this.origin + ofs; int cont = this.dphitcontentsmask; this.dphitcontentsmask = DPCONTENTS_SOLID; - tracebox(this.move_origin, this.mins, this.maxs, this.move_origin, ((this.move_movetype == MOVETYPE_FLY_WORLDONLY) ? MOVE_WORLDONLY : MOVE_NOMONSTERS), this); + tracebox(this.origin, this.mins, this.maxs, this.origin, ((this.move_movetype == MOVETYPE_FLY_WORLDONLY) ? MOVE_WORLDONLY : MOVE_NOMONSTERS), this); this.dphitcontentsmask = cont; if(trace_startsolid) return true; - if(vdist(trace_endpos - this.move_origin, >, 0.0001)) - this.move_origin = trace_endpos; + if(vdist(trace_endpos - this.origin, >, 0.0001)) + this.origin = trace_endpos; return false; } @@ -431,12 +431,12 @@ bool _Movetype_UnstickEntity(entity this) // SV_UnstickEntity #undef X { LOG_DEBUGF("Can't unstick an entity (edict: %d, classname: %s, origin: %s)\n", - etof(this), this.classname, vtos(this.move_origin)); + etof(this), this.classname, vtos(this.origin)); return false; } } LOG_DEBUGF("Sucessfully unstuck an entity (edict: %d, classname: %s, origin: %s)\n", - etof(this), this.classname, vtos(this.move_origin)); + etof(this), this.classname, vtos(this.origin)); _Movetype_LinkEdict(this, true); return true; } @@ -454,7 +454,7 @@ vector _Movetype_ClipVelocity(vector vel, vector norm, float f) // SV_ClipVeloc void _Movetype_PushEntityTrace(entity this, vector push) { - vector end = this.move_origin + push; + vector end = this.origin + push; int type; if(this.move_nomonsters) type = max(0, this.move_nomonsters); @@ -467,7 +467,7 @@ void _Movetype_PushEntityTrace(entity this, vector push) else type = MOVE_NORMAL; - tracebox(this.move_origin, this.mins, this.maxs, end, type, this); + tracebox(this.origin, this.mins, this.maxs, end, type, this); } float _Movetype_PushEntity(entity this, vector push, bool failonstartsolid) // SV_PushEntity @@ -477,10 +477,10 @@ float _Movetype_PushEntity(entity this, vector push, bool failonstartsolid) // if(trace_startsolid && failonstartsolid) return trace_fraction; - this.move_origin = trace_endpos; + this.origin = trace_endpos; if(trace_fraction < 1) - if(this.solid >= SOLID_TRIGGER && (!(this.move_flags & FL_ONGROUND) || (this.move_groundentity != trace_ent))) + if(this.solid >= SOLID_TRIGGER && (!(this.flags & FL_ONGROUND) || (this.move_groundentity != trace_ent))) _Movetype_Impact(this, trace_ent); return trace_fraction; @@ -551,7 +551,7 @@ void _Movetype_Physics_Frame(entity this, float movedt) { case MOVETYPE_PUSH: case MOVETYPE_FAKEPUSH: - _Movetype_Physics_Pusher(this, movedt); + LOG_DEBUGF("Physics: Lacking QuakeC support for Push movetype, FIX ME by using engine physics!\n"); break; case MOVETYPE_NONE: break; @@ -560,8 +560,8 @@ void _Movetype_Physics_Frame(entity this, float movedt) break; case MOVETYPE_NOCLIP: _Movetype_CheckWater(this); - this.move_origin = this.move_origin + TICRATE * this.move_velocity; - this.move_angles = this.move_angles + TICRATE * this.move_avelocity; + this.origin = this.origin + movedt * this.velocity; + this.angles = this.angles + movedt * this.avelocity; _Movetype_LinkEdict(this, false); break; case MOVETYPE_STEP: @@ -591,7 +591,7 @@ void _Movetype_Physics_ClientFrame(entity this, float movedt) { case MOVETYPE_PUSH: case MOVETYPE_FAKEPUSH: - _Movetype_Physics_Pusher(this, movedt); + LOG_DEBUGF("Physics: Lacking QuakeC support for Push movetype, FIX ME by using engine physics!\n"); break; case MOVETYPE_NONE: break; @@ -600,8 +600,8 @@ void _Movetype_Physics_ClientFrame(entity this, float movedt) break; case MOVETYPE_NOCLIP: _Movetype_CheckWater(this); - this.move_origin = this.move_origin + movedt * this.move_velocity; - this.move_angles = this.move_angles + movedt * this.move_avelocity; + this.origin = this.origin + movedt * this.velocity; + this.angles = this.angles + movedt * this.avelocity; _Movetype_LinkEdict(this, false); break; case MOVETYPE_STEP: @@ -632,10 +632,7 @@ void Movetype_Physics_NoMatchServer(entity this) // optimized if(wasfreed(this)) return; - this.avelocity = this.move_avelocity; - this.velocity = this.move_velocity; - this.angles = this.move_angles; - setorigin(this, this.move_origin); + setorigin(this, this.origin); } void Movetype_Physics_MatchServer(entity this, bool sloppy) @@ -658,7 +655,7 @@ void Movetype_Physics_MatchTicrate(entity this, float tr, bool sloppy) // SV_Ph this.move_time += n * tr; if(!this.move_didgravity) - this.move_didgravity = ((this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS) && !(this.move_flags & FL_ONGROUND)); + this.move_didgravity = ((this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS) && !(this.flags & FL_ONGROUND)); for (int i = 0; i < n; ++i) { @@ -667,12 +664,11 @@ void Movetype_Physics_MatchTicrate(entity this, float tr, bool sloppy) // SV_Ph return; } - this.avelocity = this.move_avelocity; - if(dt > 0 && this.move_movetype != MOVETYPE_NONE && !(this.move_flags & FL_ONGROUND)) + if(dt > 0 && this.move_movetype != MOVETYPE_NONE && !(this.flags & FL_ONGROUND)) { // now continue the move from move_time to time - this.velocity = this.move_velocity; + if(this.move_didgravity > 0) { @@ -682,11 +678,11 @@ void Movetype_Physics_MatchTicrate(entity this, float tr, bool sloppy) // SV_Ph * PHYS_GRAVITY(this); } - this.angles = this.move_angles + dt * this.avelocity; + this.angles = this.angles + dt * this.avelocity; if(sloppy || this.move_movetype == MOVETYPE_NOCLIP) { - setorigin(this, this.move_origin + dt * this.velocity); + setorigin(this, this.origin + dt * this.velocity); } else { @@ -700,8 +696,7 @@ void Movetype_Physics_MatchTicrate(entity this, float tr, bool sloppy) // SV_Ph } else { - this.velocity = this.move_velocity; - this.angles = this.move_angles; - setorigin(this, this.move_origin); + + setorigin(this, this.origin); } } diff --git a/qcsrc/common/physics/movetypes/movetypes.qh b/qcsrc/common/physics/movetypes/movetypes.qh index 09b6e4d96..4459bbf59 100644 --- a/qcsrc/common/physics/movetypes/movetypes.qh +++ b/qcsrc/common/physics/movetypes/movetypes.qh @@ -12,16 +12,16 @@ .float move_movetype; .float move_time; -.vector move_origin; -.vector move_angles; -.vector move_velocity; -.vector move_avelocity; -.int move_flags; -.int move_watertype; -.int move_waterlevel; +//.vector move_origin; +//.vector move_angles; +//.vector move_velocity; +//.vector move_avelocity; +//.int move_flags; +//.int move_watertype; +//.int move_waterlevel; .void(float, float)contentstransition; -.float move_bounce_factor; -.float move_bounce_stopspeed; +//.float move_bounce_factor; +//.float move_bounce_stopspeed; .float move_nomonsters; // -1 for MOVE_NORMAL, otherwise a MOVE_ constant .entity aiment; diff --git a/qcsrc/common/physics/movetypes/push.qc b/qcsrc/common/physics/movetypes/push.qc deleted file mode 100644 index 5a0426edc..000000000 --- a/qcsrc/common/physics/movetypes/push.qc +++ /dev/null @@ -1,153 +0,0 @@ -void _Movetype_PushMove(entity this, float dt) // SV_PushMove -{ - if (this.move_velocity == '0 0 0' && this.move_avelocity == '0 0 0') - { - this.move_ltime += dt; - return; - } - - switch (this.solid) - { - // LordHavoc: valid pusher types - case SOLID_BSP: - case SOLID_BBOX: - case SOLID_SLIDEBOX: - case SOLID_CORPSE: // LordHavoc: this would be weird... - break; - // LordHavoc: no collisions - case SOLID_NOT: - case SOLID_TRIGGER: - this.move_origin = this.move_origin + dt * this.move_velocity; - this.move_angles = this.move_angles + dt * this.move_avelocity; - this.move_angles_x -= 360.0 * floor(this.move_angles.x * (1.0 / 360.0)); - this.move_angles_y -= 360.0 * floor(this.move_angles.y * (1.0 / 360.0)); - this.move_angles_z -= 360.0 * floor(this.move_angles.z * (1.0 / 360.0)); - this.move_ltime += dt; - _Movetype_LinkEdict(this, true); - return; - default: - LOG_TRACEF("_Movetype_PushMove: entity %e, unrecognized solid type %d\n", this, this.solid); - return; - } - - bool rotated = (this.move_angles * this.move_angles) + (this.move_avelocity * this.move_avelocity) > 0; - - vector move1 = this.move_velocity * dt; - vector moveangle = this.move_avelocity * dt; - - makevectors_matrix(-moveangle); - -// vector pushorig = this.move_origin; -// vector pushang = this.move_angles; -// float pushltime = this.move_ltime; - -// move the pusher to its final position - - this.move_origin = this.move_origin + dt * this.move_velocity; - this.move_angles = this.move_angles + dt * this.move_avelocity; - - this.move_ltime += dt; - _Movetype_LinkEdict(this, true); - - int savesolid = this.solid; - - if (this.move_movetype != MOVETYPE_FAKEPUSH) - { - FOREACH_ENTITY_RADIUS(0.5 * (this.absmin + this.absmax), 0.5 * vlen(this.absmax - this.absmin), true, { - switch (it.move_movetype) - { - case MOVETYPE_NONE: - case MOVETYPE_PUSH: - case MOVETYPE_FOLLOW: - case MOVETYPE_NOCLIP: - case MOVETYPE_FLY_WORLDONLY: - continue; - default: - break; - } - - if (it.owner == this) - continue; - - if (this.owner == it) - continue; - - vector pivot = it.mins + 0.5 * (it.maxs - it.mins); - vector move; - if (rotated) - { - vector org = (it.move_origin - this.move_origin) + pivot; - vector org2; - org2.x = org * v_forward; - org2.y = org * v_right; - org2.z = org * v_up; - move = (org2 - org) + move1; - } - else - { - move = move1; - } - - // physics objects need better collisions than this code can do - if (it.move_movetype == 32) // MOVETYPE_PHYSICS - { - it.move_origin = it.move_origin + move; - _Movetype_LinkEdict(it, true); - continue; - } - - // try moving the contacted entity - this.solid = SOLID_NOT; - bool flag = false; - flag = _Movetype_PushEntity(it, move, true); - if (!flag) - { - // entity "it" got teleported - it.move_angles_y += trace_fraction * moveangle.y; - this.solid = savesolid; - continue; // pushed enough - } - // FIXME: turn players specially - it.move_angles_y += trace_fraction * moveangle.y; - this.solid = savesolid; - - // this trace.fraction < 1 check causes items to fall off of pushers - // if they pass under or through a wall - // the groundentity check causes items to fall off of ledges - if (it.move_movetype != MOVETYPE_WALK && (trace_fraction < 1 || it.move_groundentity != this)) - it.move_flags &= ~FL_ONGROUND; - }); - } - - this.move_angles_x -= 360.0 * floor(this.move_angles.x * (1.0 / 360.0)); - this.move_angles_y -= 360.0 * floor(this.move_angles.y * (1.0 / 360.0)); - this.move_angles_z -= 360.0 * floor(this.move_angles.z * (1.0 / 360.0)); -} - -void _Movetype_Physics_Pusher(entity this, float dt) // SV_Physics_Pusher -{ - float oldltime = this.move_ltime; - float thinktime = this.move_nextthink; - float movetime; - if (thinktime < this.move_ltime + dt) - { - movetime = thinktime - this.move_ltime; - if (movetime < 0) - movetime = 0; - } - else - { - movetime = dt; - } - - if (movetime) - // advances this.move_ltime if not blocked - _Movetype_PushMove(this, movetime); - - if (thinktime > oldltime && thinktime <= this.move_ltime) - { - this.move_nextthink = 0; - this.move_time = time; - this.move_think(this); - } -} diff --git a/qcsrc/common/physics/movetypes/step.qc b/qcsrc/common/physics/movetypes/step.qc index d7a2d5627..4480bb30d 100644 --- a/qcsrc/common/physics/movetypes/step.qc +++ b/qcsrc/common/physics/movetypes/step.qc @@ -1,10 +1,10 @@ void _Movetype_Physics_Step(entity this, float dt) // SV_Physics_Step { - if(this.move_flags & FL_ONGROUND) + if(this.flags & FL_ONGROUND) { if(this.velocity_z >= (1.0 / 32.0) && UPWARD_VELOCITY_CLEARS_ONGROUND(this)) { - this.move_flags &= ~FL_ONGROUND; + this.flags &= ~FL_ONGROUND; _Movetype_CheckVelocity(this); _Movetype_FlyMove(this, dt, true, '0 0 0', 0); _Movetype_LinkEdict(this, true); diff --git a/qcsrc/common/physics/movetypes/toss.qc b/qcsrc/common/physics/movetypes/toss.qc index 5bea38c5b..7b8f863a5 100644 --- a/qcsrc/common/physics/movetypes/toss.qc +++ b/qcsrc/common/physics/movetypes/toss.qc @@ -2,11 +2,11 @@ void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss { - if (this.move_flags & FL_ONGROUND) + if (this.flags & FL_ONGROUND) { - if (this.move_velocity.z >= 1 / 32 && UPWARD_VELOCITY_CLEARS_ONGROUND(this)) + if (this.velocity.z >= 1 / 32 && UPWARD_VELOCITY_CLEARS_ONGROUND(this)) { - this.move_flags &= ~FL_ONGROUND; + this.flags &= ~FL_ONGROUND; } else if (!this.move_groundentity) { @@ -26,7 +26,7 @@ void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss /*if (this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS) { this.move_didgravity = 1; - this.move_velocity_z -= (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE ? 0.5 : 1) + this.velocity_z -= (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE ? 0.5 : 1) * dt * (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this); @@ -35,15 +35,15 @@ void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss if (this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS) { this.move_didgravity = true; - this.move_velocity_z -= (((this.gravity) ? this.gravity : 1) * PHYS_GRAVITY(this) * dt); + this.velocity_z -= (((this.gravity) ? this.gravity : 1) * PHYS_GRAVITY(this) * dt); } - this.move_angles = this.move_angles + this.move_avelocity * dt; + this.angles = this.angles + this.avelocity * dt; float movetime = dt; for (int bump = 0; bump < MAX_CLIP_PLANES && movetime > 0; ++bump) { - vector move = this.move_velocity * movetime; + vector move = this.velocity * movetime; _Movetype_PushEntity(this, move, true); if (wasfreed(this)) return; @@ -63,45 +63,45 @@ void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss if (this.move_movetype == MOVETYPE_BOUNCEMISSILE) { - this.move_velocity = _Movetype_ClipVelocity(this.move_velocity, trace_plane_normal, 2.0); - this.move_flags &= ~FL_ONGROUND; + this.velocity = _Movetype_ClipVelocity(this.velocity, trace_plane_normal, 2.0); + this.flags &= ~FL_ONGROUND; } else if (this.move_movetype == MOVETYPE_BOUNCE) { - float bouncefac = this.move_bounce_factor; if (!bouncefac) bouncefac = 0.5; - float bouncestop = this.move_bounce_stopspeed; if (!bouncestop) bouncestop = 60 / 800; - bouncestop *= (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this); + float bouncefac = this.bouncefactor; if (!bouncefac) bouncefac = 0.5; + float bstop = this.bouncestop; if (!bstop) bstop = 60 / 800; + bstop *= (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this); - this.move_velocity = _Movetype_ClipVelocity(this.move_velocity, trace_plane_normal, 1 + bouncefac); + this.velocity = _Movetype_ClipVelocity(this.velocity, trace_plane_normal, 1 + bouncefac); - float d = trace_plane_normal * this.move_velocity; - if (trace_plane_normal.z > 0.7 && d < bouncestop && d > -bouncestop) + float d = trace_plane_normal * this.velocity; + if (trace_plane_normal.z > 0.7 && d < bstop && d > -bstop) { - this.move_flags |= FL_ONGROUND; + this.flags |= FL_ONGROUND; this.move_groundentity = trace_ent; - this.move_velocity = '0 0 0'; - this.move_avelocity = '0 0 0'; + this.velocity = '0 0 0'; + this.avelocity = '0 0 0'; } else { - this.move_flags &= ~FL_ONGROUND; + this.flags &= ~FL_ONGROUND; } } else { - this.move_velocity = _Movetype_ClipVelocity(this.move_velocity, trace_plane_normal, 1.0); + this.velocity = _Movetype_ClipVelocity(this.velocity, trace_plane_normal, 1.0); if (trace_plane_normal.z > 0.7) { - this.move_flags |= FL_ONGROUND; + this.flags |= FL_ONGROUND; this.move_groundentity = trace_ent; if (trace_ent.solid == SOLID_BSP) this.move_suspendedinair = true; - this.move_velocity = '0 0 0'; - this.move_avelocity = '0 0 0'; + this.velocity = '0 0 0'; + this.avelocity = '0 0 0'; } else { - this.move_flags &= ~FL_ONGROUND; + this.flags &= ~FL_ONGROUND; } } @@ -110,12 +110,12 @@ void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss break; // DP revision 8918 (WHY...) - if (this.move_flags & FL_ONGROUND) + if (this.flags & FL_ONGROUND) break; } - //if (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE && this.move_didgravity > 0 && !(this.move_flags & FL_ONGROUND)) - // this.move_velocity_z -= 0.5 * dt * (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this); + //if (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE && this.move_didgravity > 0 && !(this.flags & FL_ONGROUND)) + // this.velocity_z -= 0.5 * dt * (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this); _Movetype_CheckWaterTransition(this); } diff --git a/qcsrc/common/physics/movetypes/walk.qc b/qcsrc/common/physics/movetypes/walk.qc index e92624626..24c9c8c5e 100644 --- a/qcsrc/common/physics/movetypes/walk.qc +++ b/qcsrc/common/physics/movetypes/walk.qc @@ -9,15 +9,15 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove if (GAMEPLAYFIX_UNSTICKPLAYERS(this)) _Movetype_UnstickEntity(this); - bool applygravity = (!_Movetype_CheckWater(this) && this.move_movetype == MOVETYPE_WALK && !(this.move_flags & FL_WATERJUMP)); + bool applygravity = (!_Movetype_CheckWater(this) && this.move_movetype == MOVETYPE_WALK && !(this.flags & FL_WATERJUMP)); _Movetype_CheckVelocity(this); // do a regular slide move unless it looks like you ran into a step - bool oldonground = (this.move_flags & FL_ONGROUND); + bool oldonground = (this.flags & FL_ONGROUND); - vector start_origin = this.move_origin; - vector start_velocity = this.move_velocity; + vector start_origin = this.origin; + vector start_velocity = this.velocity; int clip = _Movetype_FlyMove(this, dt, applygravity, stepnormal, GAMEPLAYFIX_STEPMULTIPLETIMES(this) ? PHYS_STEPHEIGHT(this) : 0); @@ -26,8 +26,8 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove // only try this if there was no floor in the way in the trace (no, // this check seems to be not REALLY necessary, because if clip & 1, // our trace will hit that thing too) - vector upmove = this.move_origin + '0 0 1'; - vector downmove = this.move_origin - '0 0 1'; + vector upmove = this.origin + '0 0 1'; + vector downmove = this.origin - '0 0 1'; int type; if (this.move_movetype == MOVETYPE_FLYMISSILE) type = MOVE_MISSILE; @@ -43,7 +43,7 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove // if the move did not hit the ground at any point, we're not on ground if (!(clip & 1)) - this.move_flags &= ~FL_ONGROUND; + this.flags &= ~FL_ONGROUND; _Movetype_CheckVelocity(this); _Movetype_LinkEdict(this, true); @@ -51,16 +51,16 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove if (clip & 8) // teleport return; - if (this.move_flags & FL_WATERJUMP) + if (this.flags & FL_WATERJUMP) return; if (PHYS_NOSTEP(this)) return; - vector originalmove_origin = this.move_origin; - vector originalmove_velocity = this.move_velocity; + vector originalorigin = this.origin; + vector originalvelocity = this.velocity; // originalmove_clip = clip; - int originalmove_flags = this.move_flags; + int originalflags = this.flags; entity originalmove_groundentity = this.move_groundentity; // if move didn't block on a step, return @@ -78,14 +78,14 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove // return if attempting to jump while airborn (unless sv_jumpstep) if (!PHYS_JUMPSTEP(this)) - if (!oldonground && this.move_waterlevel == 0) + if (!oldonground && this.waterlevel == 0) return; } // try moving up and forward to go up a step // back to start pos - this.move_origin = start_origin; - this.move_velocity = start_velocity; + this.origin = start_origin; + this.velocity = start_velocity; // move up vector upmove = '0 0 1' * PHYS_STEPHEIGHT(this); @@ -99,9 +99,9 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove } // move forward - this.move_velocity_z = 0; + this.velocity_z = 0; clip = _Movetype_FlyMove(this, dt, applygravity, stepnormal, 0); - this.move_velocity_z += start_velocity.z; + this.velocity_z += start_velocity.z; if (clip & 8) { // we got teleported when upstepping... must abort the move @@ -115,15 +115,15 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove // check for stuckness, possibly due to the limited precision of floats // in the clipping hulls if (clip - && fabs(originalmove_origin.y - this.move_origin.y) < 0.03125 - && fabs(originalmove_origin.x - this.move_origin.x) < 0.03125) + && fabs(originalorigin.y - this.origin.y) < 0.03125 + && fabs(originalorigin.x - this.origin.x) < 0.03125) { // Con_Printf("wall\n"); // stepping up didn't make any progress, revert to original move - this.move_origin = originalmove_origin; - this.move_velocity = originalmove_velocity; + this.origin = originalorigin; + this.velocity = originalvelocity; // clip = originalmove_clip; - this.move_flags = originalmove_flags; + this.flags = originalflags; this.move_groundentity = originalmove_groundentity; // now try to unstick if needed // clip = SV_TryUnstick (ent, oldvel); @@ -137,7 +137,7 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove _Movetype_WallFriction(this, stepnormal); } // don't do the down move if stepdown is disabled, moving upward, not in water, or the move started offground or ended onground - else if (!GAMEPLAYFIX_STEPDOWN(this) || this.move_waterlevel >= 3 || start_velocity.z >= (1.0 / 32.0) || !oldonground || (this.move_flags & FL_ONGROUND)) + else if (!GAMEPLAYFIX_STEPDOWN(this) || this.waterlevel >= 3 || start_velocity.z >= (1.0 / 32.0) || !oldonground || (this.flags & FL_ONGROUND)) { return; } @@ -165,9 +165,9 @@ void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove // if the push down didn't end up on good ground, use the move without // the step up. This happens near wall / slope combinations, and can // cause the player to hop up higher on a slope too steep to climb - this.move_origin = originalmove_origin; - this.move_velocity = originalmove_velocity; - this.move_flags = originalmove_flags; + this.origin = originalorigin; + this.velocity = originalvelocity; + this.flags = originalflags; this.move_groundentity = originalmove_groundentity; } diff --git a/qcsrc/common/t_items.qc b/qcsrc/common/t_items.qc index e722c96c6..598e5d1ec 100644 --- a/qcsrc/common/t_items.qc +++ b/qcsrc/common/t_items.qc @@ -68,18 +68,18 @@ void ItemDraw(entity this) if(this.gravity) { Movetype_Physics_MatchServer(this, false); - if(this.move_flags & FL_ONGROUND) - { // For some reason move_avelocity gets set to '0 0 0' here ... + if(this.flags & FL_ONGROUND) + { // For some reason avelocity gets set to '0 0 0' here ... this.oldorigin = this.origin; this.gravity = 0; if(autocvar_cl_animate_items) { // ... so reset it if animations are requested. if(this.ItemStatus & ITS_ANIMATE1) - this.move_avelocity = '0 180 0'; + this.avelocity = '0 180 0'; if(this.ItemStatus & ITS_ANIMATE2) - this.move_avelocity = '0 -90 0'; + this.avelocity = '0 -90 0'; } } } @@ -87,13 +87,13 @@ void ItemDraw(entity this) { if(this.ItemStatus & ITS_ANIMATE1) { - this.angles += this.move_avelocity * frametime; + this.angles += this.avelocity * frametime; setorigin(this, '0 0 10' + this.oldorigin + '0 0 8' * sin(time * 2)); } if(this.ItemStatus & ITS_ANIMATE2) { - this.angles += this.move_avelocity * frametime; + this.angles += this.avelocity * frametime; setorigin(this, '0 0 8' + this.oldorigin + '0 0 4' * sin(time * 3)); } } @@ -107,7 +107,7 @@ void ItemDrawSimple(entity this) { Movetype_Physics_MatchServer(this, false); - if(this.move_flags & FL_ONGROUND) + if(this.flags & FL_ONGROUND) this.gravity = 0; } @@ -164,7 +164,6 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew) this.angles_x = ReadAngle(); this.angles_y = ReadAngle(); this.angles_z = ReadAngle(); - this.move_angles = this.angles; } if(sf & ISF_SIZE) @@ -198,7 +197,7 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew) this.move_movetype = MOVETYPE_TOSS; this.draw = ItemDraw; this.solid = SOLID_TRIGGER; - //this.move_flags |= FL_ITEM; + //this.flags |= FL_ITEM; bool use_bigsize = ReadByte(); @@ -253,13 +252,12 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew) { this.gravity = 1; this.pushable = true; - //this.move_angles = '0 0 0'; + //this.angles = '0 0 0'; this.move_movetype = MOVETYPE_TOSS; - this.move_velocity_x = ReadCoord(); - this.move_velocity_y = ReadCoord(); - this.move_velocity_z = ReadCoord(); - this.velocity = this.move_velocity; - this.move_origin = this.oldorigin; + this.velocity_x = ReadCoord(); + this.velocity_y = ReadCoord(); + this.velocity_z = ReadCoord(); + setorigin(this, this.oldorigin); if(!this.move_time) { @@ -273,10 +271,10 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew) if(autocvar_cl_animate_items) { if(this.ItemStatus & ITS_ANIMATE1) - this.move_avelocity = '0 180 0'; + this.avelocity = '0 180 0'; if(this.ItemStatus & ITS_ANIMATE2) - this.move_avelocity = '0 -90 0'; + this.avelocity = '0 -90 0'; } this.entremove = ItemRemove; diff --git a/qcsrc/common/triggers/func/conveyor.qc b/qcsrc/common/triggers/func/conveyor.qc index ab4cc12d5..bdb80fe14 100644 --- a/qcsrc/common/triggers/func/conveyor.qc +++ b/qcsrc/common/triggers/func/conveyor.qc @@ -156,7 +156,6 @@ void conveyor_init(entity this) this.movetype = MOVETYPE_NONE; this.model = ""; this.solid = SOLID_TRIGGER; - this.move_origin = this.origin; this.move_time = time; } diff --git a/qcsrc/common/triggers/func/door.qc b/qcsrc/common/triggers/func/door.qc index 2b3decf64..a27787634 100644 --- a/qcsrc/common/triggers/func/door.qc +++ b/qcsrc/common/triggers/func/door.qc @@ -824,10 +824,7 @@ NET_HANDLE(ENT_CLIENT_DOOR, bool isnew) door_init_startopen(this); this.move_time = time; - this.move_origin = this.origin; this.move_movetype = MOVETYPE_PUSH; - this.move_angles = this.angles; - this.move_blocked = door_blocked; } if(sf & SF_TRIGGER_RESET) @@ -841,7 +838,6 @@ NET_HANDLE(ENT_CLIENT_DOOR, bool isnew) this.origin_y = ReadCoord(); this.origin_z = ReadCoord(); setorigin(this, this.origin); - this.move_origin = this.origin; this.pos1_x = ReadCoord(); this.pos1_y = ReadCoord(); diff --git a/qcsrc/common/triggers/func/plat.qc b/qcsrc/common/triggers/func/plat.qc index 6f7ebaad3..86b7b3880 100644 --- a/qcsrc/common/triggers/func/plat.qc +++ b/qcsrc/common/triggers/func/plat.qc @@ -177,8 +177,6 @@ NET_HANDLE(ENT_CLIENT_PLAT, bool isnew) plat_reset(this); // also called here this.move_movetype = MOVETYPE_PUSH; - this.move_origin = this.origin; - this.move_angles = this.angles; this.move_time = time; plat_spawn_inside_trigger(this); @@ -188,8 +186,6 @@ NET_HANDLE(ENT_CLIENT_PLAT, bool isnew) { plat_reset(this); - this.move_origin = this.origin; - this.move_angles = this.angles; this.move_time = time; } return true; diff --git a/qcsrc/common/triggers/func/train.qc b/qcsrc/common/triggers/func/train.qc index 3f6af7d00..85dc5b29a 100644 --- a/qcsrc/common/triggers/func/train.qc +++ b/qcsrc/common/triggers/func/train.qc @@ -327,8 +327,6 @@ NET_HANDLE(ENT_CLIENT_TRAIN, bool isnew) train_next(this); this.move_movetype = MOVETYPE_PUSH; - this.move_origin = this.origin; - this.move_angles = this.angles; this.move_time = time; } diff --git a/qcsrc/common/triggers/subs.qh b/qcsrc/common/triggers/subs.qh index 1ce3ea2e9..9d6274171 100644 --- a/qcsrc/common/triggers/subs.qh +++ b/qcsrc/common/triggers/subs.qh @@ -1,42 +1,16 @@ #ifndef SUBS_H #define SUBS_H -#ifdef SVQC - - #define SUB_ANGLES(s) (s).angles - #define SUB_VELOCITY velocity - #define SUB_AVELOCITY avelocity - #define SUB_ORIGIN origin - #define SUB_SETORIGIN(s,v) setorigin((s), (v)) - #define SUB_NEXTTHINK nextthink - #define SUB_THINK(e, f) setthink(e, f) - #define SUB_THUNK(e) getthink(e) - #define SUB_LTIME ltime - #define SUB_FLAGS flags - -#elif defined(CSQC) - - void _Movetype_LinkEdict(entity this, float touch_triggers); - - #define SUB_ANGLES(s) (s).move_angles - #define SUB_VELOCITY move_velocity - #define SUB_AVELOCITY move_avelocity - #define SUB_ORIGIN move_origin - #define SUB_NEXTTHINK move_nextthink - #define SUB_THINK(e, f) ((e).move_think = (f)) - #define SUB_THUNK(e) ((e).move_think) - #define SUB_LTIME move_ltime - #define SUB_FLAGS move_flags - -.vector move_origin; - - void SUB_SETORIGIN(entity s, vector v) - { - s.move_origin = v; - _Movetype_LinkEdict(s, true); - } - -#endif +#define SUB_ANGLES(s) (s).angles +#define SUB_VELOCITY velocity +#define SUB_AVELOCITY avelocity +#define SUB_ORIGIN origin +#define SUB_SETORIGIN(s,v) setorigin((s), (v)) +#define SUB_NEXTTHINK nextthink +#define SUB_THINK(e, f) setthink(e, f) +#define SUB_THUNK(e) getthink(e) +#define SUB_LTIME ltime +#define SUB_FLAGS flags void SUB_SetFade (entity ent, float when, float fading_time); diff --git a/qcsrc/common/triggers/teleporters.qc b/qcsrc/common/triggers/teleporters.qc index 20f618aa2..be8666eb8 100644 --- a/qcsrc/common/triggers/teleporters.qc +++ b/qcsrc/common/triggers/teleporters.qc @@ -124,22 +124,20 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle UpdateCSQCProjectileAfterTeleport(player); UpdateItemAfterTeleport(player); #elif defined(CSQC) - from = player.move_origin; - player.move_origin = to; - player.move_angles = to_angles; - player.move_velocity = to_velocity; - player.move_flags &= ~FL_ONGROUND; + from = player.origin; + setorigin(player, to); + player.angles = to_angles; + player.velocity = to_velocity; + player.flags &= ~FL_ONGROUND; player.iflags |= IFLAG_TELEPORTED | IFLAG_V_ANGLE | IFLAG_ANGLES; player.csqcmodel_teleported = 1; player.v_angle = to_angles; - if(player.isplayermodel) // not for anything but the main player + if(player == csqcplayer) // not for anything but the main player { - setproperty(VF_ANGLES, player.move_angles); - setproperty(VF_CL_VIEWANGLES, player.move_angles); + setproperty(VF_ANGLES, player.angles); + setproperty(VF_CL_VIEWANGLES, player.angles); } - - makevectors(player.move_angles); #endif #ifdef SVQC @@ -213,35 +211,17 @@ entity Simple_TeleportPlayer(entity teleporter, entity player) makevectors(e.mangle); -#ifdef SVQC if(e.speed) if(vdist(player.velocity, >, e.speed)) player.velocity = normalize(player.velocity) * max(0, e.speed); -#elif defined(CSQC) - if(e.speed) - if(vdist(player.move_velocity, >, e.speed)) - player.move_velocity = normalize(player.move_velocity) * max(0, e.speed); -#endif -#ifdef SVQC if(STAT(TELEPORT_MAXSPEED, player)) if(vdist(player.velocity, >, STAT(TELEPORT_MAXSPEED, player))) player.velocity = normalize(player.velocity) * max(0, STAT(TELEPORT_MAXSPEED, player)); -#elif defined(CSQC) - if(STAT(TELEPORT_MAXSPEED, player)) - if(vdist(player.move_velocity, >, STAT(TELEPORT_MAXSPEED, player))) - player.move_velocity = normalize(player.move_velocity) * max(0, STAT(TELEPORT_MAXSPEED, player)); -#endif -#ifdef SVQC locout = e.origin + '0 0 1' * (1 - player.mins.z - 24); TeleportPlayer(teleporter, player, locout, e.mangle, v_forward * vlen(player.velocity), '0 0 0', '0 0 0', TELEPORT_FLAGS_TELEPORTER); -#elif defined(CSQC) - locout = e.origin + '0 0 1' * (1 - player.mins.z - 24); - - TeleportPlayer(teleporter, player, locout, e.mangle, v_forward * vlen(player.move_velocity), '0 0 0', '0 0 0', TELEPORT_FLAGS_TELEPORTER); -#endif return e; } @@ -310,7 +290,7 @@ void WarpZone_PostTeleportPlayer_Callback(entity pl) #ifdef SVQC if(!(pl.flags & FL_PROJECTILE)) #elif defined(CSQC) - if(!(pl.move_flags & BIT(15))) // FL_PROJECTILE + if(!(pl.flags & BIT(15))) // FL_PROJECTILE #endif LOG_INFO("A non-projectile got through a warpzone and its owner cleared. It's a ", pl.classname, ".\n"); pl.owner = NULL; diff --git a/qcsrc/common/triggers/trigger/impulse.qc b/qcsrc/common/triggers/trigger/impulse.qc index 3d9a87a46..cdf4a7291 100644 --- a/qcsrc/common/triggers/trigger/impulse.qc +++ b/qcsrc/common/triggers/trigger/impulse.qc @@ -21,11 +21,7 @@ void trigger_impulse_touch1(entity this, entity toucher) return; } -#ifdef SVQC str = min(this.radius, vlen(this.origin - toucher.origin)); -#elif defined(CSQC) - str = min(this.radius, vlen(this.origin - toucher.move_origin)); -#endif if(this.falloff == 1) str = (str / this.radius) * this.strength; @@ -41,35 +37,20 @@ void trigger_impulse_touch1(entity this, entity toucher) if(this.spawnflags & 64) { -#ifdef SVQC float addspeed = str - toucher.velocity * normalize(targ.origin - this.origin); if (addspeed > 0) { float accelspeed = min(8 * pushdeltatime * str, addspeed); toucher.velocity += accelspeed * normalize(targ.origin - this.origin); } -#elif defined(CSQC) - float addspeed = str - toucher.move_velocity * normalize(targ.origin - this.origin); - if (addspeed > 0) - { - float accelspeed = min(8 * pushdeltatime * str, addspeed); - toucher.move_velocity += accelspeed * normalize(targ.origin - this.origin); - } -#endif } else -#ifdef SVQC toucher.velocity = toucher.velocity + normalize(targ.origin - this.origin) * str * pushdeltatime; -#elif defined(CSQC) - toucher.move_velocity = toucher.move_velocity + normalize(targ.origin - this.origin) * str * pushdeltatime; -#endif -#ifdef SVQC UNSET_ONGROUND(toucher); +#ifdef SVQC UpdateCSQCProjectile(toucher); -#elif defined(CSQC) - toucher.move_flags &= ~FL_ONGROUND; #endif } @@ -92,12 +73,10 @@ void trigger_impulse_touch2(entity this, entity toucher) if(!pushdeltatime) return; // div0: ticrate independent, 1 = identity (not 20) -#ifdef SVQC toucher.velocity = toucher.velocity * pow(this.strength, pushdeltatime); +#ifdef SVQC UpdateCSQCProjectile(toucher); -#elif defined(CSQC) - toucher.move_velocity = toucher.move_velocity * pow(this.strength, pushdeltatime); #endif } @@ -122,11 +101,7 @@ void trigger_impulse_touch3(entity this, entity toucher) setsize(this, '-1 -1 -1' * this.radius,'1 1 1' * this.radius); -#ifdef SVQC str = min(this.radius, vlen(this.origin - toucher.origin)); -#elif defined(CSQC) - str = min(this.radius, vlen(this.origin - toucher.move_origin)); -#endif if(this.falloff == 1) str = (1 - str / this.radius) * this.strength; // 1 in the inside @@ -135,12 +110,10 @@ void trigger_impulse_touch3(entity this, entity toucher) else str = this.strength; -#ifdef SVQC toucher.velocity = toucher.velocity + normalize(toucher.origin - this.origin) * str * pushdeltatime; +#ifdef SVQC UpdateCSQCProjectile(toucher); -#elif defined(CSQC) - toucher.move_velocity = toucher.move_velocity + normalize(toucher.move_origin - this.origin) * str * pushdeltatime; #endif } diff --git a/qcsrc/common/triggers/trigger/jumppads.qc b/qcsrc/common/triggers/trigger/jumppads.qc index 88f785f39..ffe3d4ee8 100644 --- a/qcsrc/common/triggers/trigger/jumppads.qc +++ b/qcsrc/common/triggers/trigger/jumppads.qc @@ -146,7 +146,6 @@ void trigger_push_touch(entity this, entity toucher) if(this.enemy) { toucher.velocity = trigger_push_calculatevelocity(toucher.origin, this.enemy, this.height); - toucher.move_velocity = toucher.velocity; } else if(this.target && this.target != "") { @@ -160,22 +159,18 @@ void trigger_push_touch(entity this, entity toucher) RandomSelection_Add(e, 0, string_null, 1, 1); } toucher.velocity = trigger_push_calculatevelocity(toucher.origin, RandomSelection_chosen_ent, this.height); - toucher.move_velocity = toucher.velocity; } else { toucher.velocity = this.movedir; - toucher.move_velocity = toucher.velocity; } -#ifdef SVQC UNSET_ONGROUND(toucher); -#elif defined(CSQC) - toucher.move_flags &= ~FL_ONGROUND; +#ifdef CSQC if (toucher.flags & FL_PROJECTILE) { - toucher.move_angles = vectoangles (toucher.move_velocity); + toucher.angles = vectoangles (toucher.velocity); switch(toucher.move_movetype) { case MOVETYPE_FLY: diff --git a/qcsrc/common/triggers/trigger/teleport.qc b/qcsrc/common/triggers/trigger/teleport.qc index 484daeedf..69e2c49c1 100644 --- a/qcsrc/common/triggers/trigger/teleport.qc +++ b/qcsrc/common/triggers/trigger/teleport.qc @@ -114,7 +114,7 @@ NET_HANDLE(ENT_CLIENT_TRIGGER_TELEPORT, bool isnew) this.entremove = trigger_remove_generic; this.solid = SOLID_TRIGGER; - //this.move_touch = trigger_push_touch; + //settouch(this, trigger_push_touch); this.move_time = time; defer(this, 0.25, teleport_findtarget); diff --git a/qcsrc/common/turrets/cl_turrets.qc b/qcsrc/common/turrets/cl_turrets.qc index 55719cb3f..7e4330308 100644 --- a/qcsrc/common/turrets/cl_turrets.qc +++ b/qcsrc/common/turrets/cl_turrets.qc @@ -34,7 +34,7 @@ void turret_draw(entity this) if(dt <= 0) return; - this.tur_head.angles += dt * this.tur_head.move_avelocity; + this.tur_head.angles += dt * this.tur_head.avelocity; if (this.health < 127) { @@ -304,10 +304,9 @@ entity turret_gibtoss(string _model, vector _from, vector _to, vector _cmod, flo gib.gravity = 1; gib.move_movetype = MOVETYPE_BOUNCE; - gib.move_origin = _from; setorigin(gib, _from); - gib.move_velocity = _to; - gib.move_avelocity = prandomvec() * 32; + gib.velocity = _to; + gib.avelocity = prandomvec() * 32; gib.move_time = time; gib.damageforcescale = 1; @@ -341,9 +340,9 @@ void turret_die(entity this) entity headgib = turret_gibtoss((get_turretinfo(this.m_id)).head_model, this.origin + '0 0 32', '0 0 200' + randomvec() * 200, '-1 -1 -1', true); if(headgib) { - headgib.angles = headgib.move_angles = this.tur_head.angles; - headgib.avelocity = headgib.move_avelocity = this.tur_head.move_avelocity + randomvec() * 45; - headgib.avelocity_y = headgib.move_avelocity_y = headgib.move_avelocity_y * 5; + headgib.angles = this.tur_head.angles; + headgib.avelocity = this.tur_head.avelocity + randomvec() * 45; + headgib.avelocity_y = headgib.avelocity_y * 5; headgib.gravity = 0.5; } } @@ -382,10 +381,9 @@ NET_HANDLE(ENT_CLIENT_TURRET, bool isnew) if(this.tur_head == NULL) // aparenly this can happpen before TNSF_SETUP. great. this.tur_head = spawn(); - this.tur_head.move_angles_x = ReadShort(); - this.tur_head.move_angles_y = ReadShort(); - //this.tur_head.angles = this.angles + this.tur_head.move_angles; - this.tur_head.angles = this.tur_head.move_angles; + this.tur_head.angles_x = ReadShort(); + this.tur_head.angles_y = ReadShort(); + //this.tur_head.angles = this.angles + this.tur_head.angles; } if(sf & TNSF_AVEL) @@ -393,8 +391,8 @@ NET_HANDLE(ENT_CLIENT_TURRET, bool isnew) if(this.tur_head == NULL) // aparenly this can happpen before TNSF_SETUP. great. this.tur_head = spawn(); - this.tur_head.move_avelocity_x = ReadShort(); - this.tur_head.move_avelocity_y = ReadShort(); + this.tur_head.avelocity_x = ReadShort(); + this.tur_head.avelocity_y = ReadShort(); } if(sf & TNSF_MOVE) @@ -408,11 +406,9 @@ NET_HANDLE(ENT_CLIENT_TURRET, bool isnew) this.velocity_y = ReadShort(); this.velocity_z = ReadShort(); - this.move_angles_y = ReadShort(); + this.angles_y = ReadShort(); this.move_time = time; - this.move_velocity = this.velocity; - this.move_origin = this.origin; } if(sf & TNSF_ANIM) diff --git a/qcsrc/common/turrets/turret/ewheel.qc b/qcsrc/common/turrets/turret/ewheel.qc index a72a9f016..25879f599 100644 --- a/qcsrc/common/turrets/turret/ewheel.qc +++ b/qcsrc/common/turrets/turret/ewheel.qc @@ -247,8 +247,7 @@ void ewheel_draw(entity this) fixedmakevectors(this.angles); setorigin(this, this.origin + this.velocity * dt); - this.tur_head.angles += dt * this.tur_head.move_avelocity; - this.angles_y = this.move_angles_y; + this.tur_head.angles += dt * this.tur_head.avelocity; if (this.health < 127) if(random() < 0.05) @@ -260,7 +259,6 @@ void ewheel_draw(entity this) it.gravity = 1; it.movetype = MOVETYPE_BOUNCE; it.move_movetype = MOVETYPE_BOUNCE; - it.move_origin = it.origin; it.move_time = time; it.draw = ewheel_draw; } diff --git a/qcsrc/common/turrets/turret/walker.qc b/qcsrc/common/turrets/turret/walker.qc index 029495276..46108e0b7 100644 --- a/qcsrc/common/turrets/turret/walker.qc +++ b/qcsrc/common/turrets/turret/walker.qc @@ -642,8 +642,7 @@ void walker_draw(entity this) fixedmakevectors(this.angles); movelib_groundalign4point(this, 300, 100, 0.25, 45); setorigin(this, this.origin + this.velocity * dt); - this.tur_head.angles += dt * this.tur_head.move_avelocity; - this.angles_y = this.move_angles_y; + this.tur_head.angles += dt * this.tur_head.avelocity; if (this.health < 127) if(random() < 0.15) @@ -653,9 +652,7 @@ void walker_draw(entity this) METHOD(WalkerTurret, tr_setup, void(WalkerTurret this, entity it)) { it.gravity = 1; - it.movetype = MOVETYPE_BOUNCE; it.move_movetype = MOVETYPE_BOUNCE; - it.move_origin = it.origin; it.move_time = time; it.draw = walker_draw; } diff --git a/qcsrc/common/vehicles/cl_vehicles.qc b/qcsrc/common/vehicles/cl_vehicles.qc index 57f5990bb..fd3655211 100644 --- a/qcsrc/common/vehicles/cl_vehicles.qc +++ b/qcsrc/common/vehicles/cl_vehicles.qc @@ -33,7 +33,7 @@ void AuxiliaryXhair_Draw2D(entity this) return; vector size = draw_getimagesize(this.axh_image) * autocvar_cl_vehicles_crosshair_size; - vector pos = project_3d_to_2d(this.move_origin) - 0.5 * size; + vector pos = project_3d_to_2d(this.origin) - 0.5 * size; if (!(pos.z < 0 || pos.x < 0 || pos.y < 0 || pos.x > vid_conwidth || pos.y > vid_conheight)) { @@ -63,9 +63,9 @@ NET_HANDLE(ENT_CLIENT_AUXILIARYXHAIR, bool isnew) AuxiliaryXhair[axh_id] = axh; } - axh.move_origin_x = ReadCoord(); - axh.move_origin_y = ReadCoord(); - axh.move_origin_z = ReadCoord(); + axh.origin_x = ReadCoord(); + axh.origin_y = ReadCoord(); + axh.origin_z = ReadCoord(); axh.colormod_x = ReadByte() / 255; axh.colormod_y = ReadByte() / 255; axh.colormod_z = ReadByte() / 255; diff --git a/qcsrc/common/vehicles/vehicle/bumblebee_weapons.qc b/qcsrc/common/vehicles/vehicle/bumblebee_weapons.qc index b2e838f94..d5a7bcedf 100644 --- a/qcsrc/common/vehicles/vehicle/bumblebee_weapons.qc +++ b/qcsrc/common/vehicles/vehicle/bumblebee_weapons.qc @@ -50,6 +50,8 @@ bool bumble_raygun_send(entity this, entity to, float sf) void bumble_raygun_draw(entity this); +.vector bumble_origin; + NET_HANDLE(ENT_CLIENT_BUMBLE_RAYGUN, bool isnew) { int sf = ReadByte(); @@ -82,9 +84,9 @@ NET_HANDLE(ENT_CLIENT_BUMBLE_RAYGUN, bool isnew) if(sf & BRG_END) { - this.move_origin_x = ReadCoord(); - this.move_origin_y = ReadCoord(); - this.move_origin_z = ReadCoord(); + this.bumble_origin_x = ReadCoord(); + this.bumble_origin_y = ReadCoord(); + this.bumble_origin_z = ReadCoord(); } return true; } @@ -96,13 +98,13 @@ void bumble_raygun_draw(entity this) vector _dir; vector _vtmp1, _vtmp2; - _len = vlen(this.origin - this.move_origin); - _dir = normalize(this.move_origin - this.origin); + _len = vlen(this.origin - this.bumble_origin); + _dir = normalize(this.bumble_origin - this.origin); if(this.bumble_raygun_nextdraw < time) { boxparticles(particleeffectnum(Effects_from(this.traileffect)), this, this.origin, this.origin + _dir * -64, _dir * -_len , _dir * -_len, 1, PARTICLES_USEALPHA); - boxparticles(this.lip, this, this.move_origin, this.move_origin + _dir * -64, _dir * -200 , _dir * -200, 1, PARTICLES_USEALPHA); + boxparticles(this.lip, this, this.bumble_origin, this.bumble_origin + _dir * -64, _dir * -200 , _dir * -200, 1, PARTICLES_USEALPHA); this.bumble_raygun_nextdraw = time + 0.1; } @@ -124,7 +126,7 @@ void bumble_raygun_draw(entity this) _vtmp1 += randomvec() * (_len * 0.2) * (frametime * 10); //this.raygun_l3; Draw_CylindricLine(_vtmp2, _vtmp1, sz, "gfx/colors/white.tga", 1, 1, this.colormod, al, df, view_origin); - Draw_CylindricLine(_vtmp1, this.move_origin + randomvec() * 32, sz, "gfx/colors/white.tga", 1, 1, this.colormod, al, df, view_origin); + Draw_CylindricLine(_vtmp1, this.bumble_origin + randomvec() * 32, sz, "gfx/colors/white.tga", 1, 1, this.colormod, al, df, view_origin); } } diff --git a/qcsrc/common/vehicles/vehicle/racer.qc b/qcsrc/common/vehicles/vehicle/racer.qc index 334320b32..cee5a6a0e 100644 --- a/qcsrc/common/vehicles/vehicle/racer.qc +++ b/qcsrc/common/vehicles/vehicle/racer.qc @@ -527,41 +527,6 @@ spawnfunc(vehicle_racer) #endif // SVQC -#ifdef CSQC -#if 0 -void racer_draw(entity this) -{ - float pushdeltatime = time - this.lastpushtime; - if (pushdeltatime > 0.15) pushdeltatime = 0; - this.lastpushtime = time; - if(!pushdeltatime) return; - - tracebox(this.move_origin, this.mins, this.maxs, this.move_origin - ('0 0 1' * STAT(VEH_RACER_SPRINGLENGTH)), MOVE_NOMONSTERS, this); - - vector df = this.move_velocity * -STAT(VEH_RACER_FRICTION); - df_z += (1 - trace_fraction) * STAT(VEH_RACER_HOVERPOWER) + sin(time * 2) * (STAT(VEH_RACER_SPRINGLENGTH) * 2); - - float forced = STAT(VEH_RACER_UPFORCEDAMPER); - - int cont = pointcontents(this.move_origin - '0 0 64'); - if(cont == CONTENT_WATER || cont == CONTENT_LAVA || cont == CONTENT_SLIME) - { - forced = STAT(VEH_RACER_WATER_UPFORCEDAMPER); - this.move_velocity_z += 200; - } - - this.move_velocity += df * pushdeltatime; - if(this.move_velocity_z > 0) - this.move_velocity_z *= 1 - forced * pushdeltatime; - - this.move_angles_x *= 1 - (STAT(VEH_RACER_ANGLESTABILIZER) * pushdeltatime); - this.move_angles_z *= 1 - (STAT(VEH_RACER_ANGLESTABILIZER) * pushdeltatime); - - Movetype_Physics_MatchServer(this, false); -} -#endif -#endif - METHOD(Racer, vr_impact, void(Racer thisveh, entity instance)) { #ifdef SVQC diff --git a/qcsrc/common/vehicles/vehicle/raptor_weapons.qc b/qcsrc/common/vehicles/vehicle/raptor_weapons.qc index a9b9a8658..f1357f306 100644 --- a/qcsrc/common/vehicles/vehicle/raptor_weapons.qc +++ b/qcsrc/common/vehicles/vehicle/raptor_weapons.qc @@ -224,7 +224,7 @@ void RaptorCBShellfragDraw(entity this) return; Movetype_Physics_MatchTicrate(this, autocvar_cl_gibs_ticrate, autocvar_cl_gibs_sloppy); - this.move_avelocity += randomvec() * 15; + this.avelocity += randomvec() * 15; this.renderflags = 0; if(this.cnt < time) @@ -246,10 +246,9 @@ void RaptorCBShellfragToss(vector _org, vector _vel, vector _ang) sfrag.draw = RaptorCBShellfragDraw; - sfrag.move_origin = sfrag.origin = _org; - sfrag.move_velocity = _vel; - sfrag.move_avelocity = prandomvec() * vlen(sfrag.move_velocity); - sfrag.angles = sfrag.move_angles = _ang; + sfrag.velocity = _vel; + sfrag.avelocity = prandomvec() * vlen(sfrag.velocity); + sfrag.angles = _ang; sfrag.move_time = time; sfrag.damageforcescale = 4; diff --git a/qcsrc/lib/csqcmodel/cl_player.qc b/qcsrc/lib/csqcmodel/cl_player.qc index 1a8ba710a..58c5f71f0 100644 --- a/qcsrc/lib/csqcmodel/cl_player.qc +++ b/qcsrc/lib/csqcmodel/cl_player.qc @@ -138,24 +138,12 @@ void Movetype_Physics_Spam(entity this) // optimized if(wasfreed(this)) return; - this.avelocity = this.move_avelocity; - this.velocity = this.move_velocity; - this.angles = this.move_angles; - this.flags = BITSET(this.flags, FL_ONGROUND, boolean(this.move_flags & FL_ONGROUND)); - this.flags = BITSET(this.flags, FL_WATERJUMP, boolean(this.move_flags & FL_WATERJUMP)); - this.waterlevel = this.move_waterlevel; - this.watertype = this.move_watertype; - setorigin(this, this.move_origin); + setorigin(this, this.origin); } void CSQCPlayer_CheckWater(entity this) { - this.move_origin = this.origin; - this.move_waterlevel = this.waterlevel; - this.move_watertype = this.watertype; _Movetype_CheckWater(this); - this.waterlevel = this.move_waterlevel; - this.watertype = this.move_watertype; } void CSQCPlayer_Physics(entity this) @@ -173,18 +161,7 @@ void CSQCPlayer_Physics(entity this) CSQC_ClientMovement_PlayerMove_Frame(this); if(autocvar_cl_movement == 1) - { - this.move_origin = this.origin; - this.move_angles = this.angles; - //this.move_movetype = MOVETYPE_WALK; // temp - this.move_velocity = this.velocity; - this.move_avelocity = this.avelocity; - this.move_flags = BITSET(this.move_flags, FL_ONGROUND, IS_ONGROUND(this)); - this.move_flags = BITSET(this.move_flags, FL_WATERJUMP, boolean(this.flags & FL_WATERJUMP)); - this.move_waterlevel = this.waterlevel; - this.move_watertype = this.watertype; Movetype_Physics_Spam(this); - } view_angles = this.v_angle; input_angles = this.angles; diff --git a/qcsrc/lib/warpzone/client.qc b/qcsrc/lib/warpzone/client.qc index fd0925db9..bd0397f89 100644 --- a/qcsrc/lib/warpzone/client.qc +++ b/qcsrc/lib/warpzone/client.qc @@ -89,7 +89,7 @@ NET_HANDLE(ENT_CLIENT_WARPZONE, bool isnew) // engine currently wants this setpredraw(this, WarpZone_Fade_PreDraw); - //this.move_touch = WarpZone_Touch; + //settouch(this, WarpZone_Touch); return true; } diff --git a/qcsrc/lib/warpzone/server.qc b/qcsrc/lib/warpzone/server.qc index 6dd0ea3c7..594bd48e1 100644 --- a/qcsrc/lib/warpzone/server.qc +++ b/qcsrc/lib/warpzone/server.qc @@ -28,44 +28,27 @@ .float warpzone_teleport_finishtime; .entity warpzone_teleport_zone; -#ifdef SVQC - #define WarpZone_StoreProjectileData(e_) MACRO_BEGIN { \ - entity e = e_; \ - e.warpzone_oldorigin = e.origin; \ - e.warpzone_oldvelocity = e.velocity; \ - e.warpzone_oldangles = e.angles; \ - } MACRO_END -#elif defined(CSQC) - #define WarpZone_StoreProjectileData(e_) MACRO_BEGIN { \ - entity e = e_; \ - e.warpzone_oldorigin = e.move_origin; \ - e.warpzone_oldvelocity = e.move_velocity; \ - e.warpzone_oldangles = e.move_angles; \ - } MACRO_END -#endif +#define WarpZone_StoreProjectileData(e_) MACRO_BEGIN { \ + entity e = e_; \ + e.warpzone_oldorigin = e.origin; \ + e.warpzone_oldvelocity = e.velocity; \ + e.warpzone_oldangles = e.angles; \ + } MACRO_END void WarpZone_TeleportPlayer(entity teleporter, entity player, vector to, vector to_angles, vector to_velocity) { -#ifdef SVQC setorigin(player, to); // NOTE: this also aborts the move, when this is called by touch +#ifdef SVQC player.oldorigin = to; // for DP's unsticking +#endif player.angles = to_angles; player.fixangle = true; player.velocity = to_velocity; -#elif defined(CSQC) - player.move_origin = to; - player.move_angles = to_angles; - player.move_velocity = to_velocity; -#endif BITXOR_ASSIGN(player.effects, EF_TELEPORT_BIT); if(IS_PLAYER(player)) -#ifdef SVQC BITCLR_ASSIGN(player.flags, FL_ONGROUND); -#elif defined(CSQC) - BITCLR_ASSIGN(player.move_flags, FL_ONGROUND); -#endif WarpZone_PostTeleportPlayer_Callback(player); } @@ -85,15 +68,9 @@ float WarpZone_Teleport(entity wz, entity player, float f0, float f1) { vector o0, a0, v0, o1, a1, v1, o10; -#ifdef SVQC o0 = player.origin + player.view_ofs; v0 = player.velocity; a0 = player.angles; -#elif defined(CSQC) - o0 = player.move_origin + player.view_ofs; - v0 = player.move_velocity; - a0 = player.move_angles; -#endif o10 = o1 = WarpZone_TransformOrigin(wz, o0); v1 = WarpZone_TransformVelocity(wz, v0); @@ -198,21 +175,18 @@ void WarpZone_Touch(entity this, entity toucher) return; // FIXME needs a better check to know what is safe to teleport and what not -#ifdef SVQC - if(toucher.movetype == MOVETYPE_NONE || toucher.movetype == MOVETYPE_FOLLOW || toucher.tag_entity) -#elif defined(CSQC) - if(toucher.move_movetype == MOVETYPE_NONE || toucher.move_movetype == MOVETYPE_FOLLOW || toucher.tag_networkentity) + if(toucher.movetype == MOVETYPE_NONE || toucher.movetype == MOVETYPE_FOLLOW || toucher.tag_entity + || toucher.move_movetype == MOVETYPE_NONE || toucher.move_movetype == MOVETYPE_FOLLOW +#ifdef CSQC + || tag_networkentity #endif + ) return; if(WarpZoneLib_ExactTrigger_Touch(this, toucher)) return; -#ifdef SVQC if(WarpZone_PlaneDist(this, toucher.origin + toucher.view_ofs) >= 0) // wrong side of the trigger_warpzone (don't teleport yet) -#elif defined(CSQC) - if(WarpZone_PlaneDist(this, toucher.move_origin + toucher.view_ofs) >= 0) // wrong side of the trigger_warpzone (don't teleport yet) -#endif return; float f; @@ -229,11 +203,7 @@ void WarpZone_Touch(entity this, entity toucher) float d; d = 24 + max(vlen(toucher.mins), vlen(toucher.maxs)); if(IS_NOT_A_CLIENT(toucher)) - #ifdef SVQC f = -d / bound(frametime * d * 1, frametime * vlen(toucher.velocity), d); - #elif defined(CSQC) - f = -d / bound(frametime * d * 1, frametime * vlen(toucher.move_velocity), d); - #endif else f = -1; if(WarpZone_Teleport(this, toucher, f, 0)) @@ -365,17 +335,8 @@ float WarpZone_CheckProjectileImpact(entity player) { vector o0, v0; - .vector orgvec, velvec; -#ifdef SVQC - orgvec = origin; - velvec = velocity; -#elif defined(CSQC) - orgvec = move_origin; - velvec = move_velocity; -#endif - - o0 = player.orgvec + player.view_ofs; - v0 = player.velvec; + o0 = player.origin + player.view_ofs; + v0 = player.velocity; // if we teleported shortly before, abort if(time <= player.warpzone_teleport_finishtime + 0.1) @@ -393,19 +354,15 @@ float WarpZone_CheckProjectileImpact(entity player) LOG_INFO("impactfilter found something - and it even gets handled correctly - please tell divVerent that this code apparently gets triggered again\n"); #endif LOG_INFO("Entity type: ", player.classname, "\n"); - LOG_INFO("Origin: ", vtos(player.orgvec), "\n"); - LOG_INFO("Velocity: ", vtos(player.velvec), "\n"); + LOG_INFO("Origin: ", vtos(player.origin), "\n"); + LOG_INFO("Velocity: ", vtos(player.velocity), "\n"); #ifdef WARPZONELIB_REMOVEHACK return 0; #else // retry previous move -#ifdef SVQC setorigin(player, player.warpzone_oldorigin); -#elif defined(CSQC) - player.move_origin = player.warpzone_oldorigin; -#endif - player.velvec = player.warpzone_oldvelocity; + player.velocity = player.warpzone_oldvelocity; if(WarpZone_Teleport(wz, player, 0, 1)) { string save1, save2; @@ -425,7 +382,7 @@ float WarpZone_CheckProjectileImpact(entity player) else { setorigin(player, o0 - player.view_ofs); - player.velvec = v0; + player.velocity = v0; } return +1; diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 4fbccc7b0..61104af4d 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -852,10 +852,8 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d else { targ.velocity = targ.velocity + farce; - targ.move_velocity = targ.velocity; } UNSET_ONGROUND(targ); - targ.move_flags &= ~FL_ONGROUND; UpdateCSQCProjectile(targ); } // apply damage