From: Rudolf Polzer Date: Sun, 18 Dec 2011 19:46:40 +0000 (+0100) Subject: vehicles-no-viewport test X-Git-Tag: xonotic-v0.6.0~74^2~94^2~4 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=8ad395df2c29ab67b0cfffab57fa45d1077b734a;p=xonotic%2Fxonotic-data.pk3dir.git vehicles-no-viewport test --- diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index d34a0c287..8acc933cd 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -2165,11 +2165,6 @@ void SpectateCopy(entity spectatee) { self.vehicle_ammo2 = spectatee.vehicle_ammo2; self.vehicle_reload1 = spectatee.vehicle_reload1; self.vehicle_reload2 = spectatee.vehicle_reload2; - - msg_entity = self; - WriteByte (MSG_ONE, SVC_SETVIEWPORT); - WriteEntity(MSG_ONE, spectatee); - //self.tur_head = spectatee.vehicle.vehicle_viewport; } } @@ -2227,20 +2222,17 @@ float SpectateNext() { self.enemy = other; if(self.enemy.classname == "player") { - if(self.enemy.vehicle) - { msg_entity = self; - WriteByte(MSG_ONE, SVC_SETVIEWPORT); + WriteByte(MSG_ONE, SVC_SETVIEW); WriteEntity(MSG_ONE, self.enemy); + if(self.enemy.vehicle) + { //stuffcmd(self, "set viewsize $tmpviewsize \n"); self.movetype = MOVETYPE_NONE; accuracy_resend(self); } else { - msg_entity = self; - WriteByte(MSG_ONE, SVC_SETVIEW); - WriteEntity(MSG_ONE, self.enemy); //stuffcmd(self, "set viewsize $tmpviewsize \n"); self.movetype = MOVETYPE_NONE; accuracy_resend(self); @@ -3052,5 +3044,8 @@ void PlayerPostThink (void) dprint(sprintf("%f %.6f\n", time, race_GetFractionalLapCount(self))); */ + if(self.vehicle) + vehicles_updateplayer(); + CSQCMODEL_AUTOUPDATE(); } diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 8063c2791..94f44b077 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -499,8 +499,6 @@ void vehicles_enter() self.flags -= FL_NOTARGET; msg_entity = other; - WriteByte (MSG_ONE, SVC_SETVIEWPORT); - WriteEntity(MSG_ONE, self.vehicle_viewport); WriteByte (MSG_ONE, SVC_SETVIEWANGLES); if(self.tur_head) @@ -1056,3 +1054,8 @@ void bugmenot() self.vehicle_spawn = self.vehicle_exit; self.AuxiliaryXhair = self.AuxiliaryXhair; } + +void vehicles_updateplayer() +{ + setorigin(self, gettaginfo(self.vehicle.vehicle_viewport, 0)); +} diff --git a/qcsrc/server/vehicles/vehicles_def.qh b/qcsrc/server/vehicles/vehicles_def.qh index dcb1854f3..6e1a4cbfe 100644 --- a/qcsrc/server/vehicles/vehicles_def.qh +++ b/qcsrc/server/vehicles/vehicles_def.qh @@ -44,6 +44,7 @@ float VHF_DMGHEADROLL = 4096; .void() vehicle_spawn; void vehicles_exit(float eject); +void vehicles_updateplayer(void); var .void(float exit_flags) vehicle_exit; float VHEF_NORMAL = 0; /// User pressed exit key float VHEF_EJECT = 1; /// User pressed exit key 3 times fast (not implemented) or vehile is dying