Forum

Bug fix - Correct viewangles on load game

Post tutorials on how to do certain tasks within game or engine code here.

Moderator: InsideQC Admins

Bug fix - Correct viewangles on load game

Postby mh » Tue Jun 05, 2012 10:20 pm

This is another one of those little Quake annoyances - when you load a previously saved game your viewangles are incorrect - you're normally looking straight forward instead of in the actual direction you were looking, which may have been up or down. Let's fix it.

Find Host_Spawn_f and declare at the top:
Code: Select all
float *sendangle;

Scroll down to the line where svc_setangle is sent (near the bottom) and add this between the MSG_WriteByte and the for loop:
Code: Select all
sendangle = sv.loadgame ? ent->v.v_angle : ent->v.angles;

Finally, change the body of the for loop to this:
Code: Select all
MSG_WriteAngle (&host_client->message, sendangle[i]);

Done - now when you reload you'll be looking in the correct direction. Easy as pie.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2287
Joined: Sat Jan 12, 2008 1:38 am

Re: Bug fix - Correct viewangles on load game

Postby Baker » Wed Jun 06, 2012 12:24 am

I like this one a lot. In fact, I wasn't aware of the problem.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Bug fix - Correct viewangles on load game

Postby r00k » Wed Jun 06, 2012 12:31 am

Image
Sadly I have NEVER saved a game in Quake....
r00k
 
Posts: 1108
Joined: Sat Nov 13, 2004 10:39 pm

Re: Bug fix - Correct viewangles on load game

Postby qbism » Thu Jun 07, 2012 3:02 am

Sweet, even works in winquake.

r00k wrote:Sadly I have NEVER saved a game in Quake....
LOL people would play more carefully without savegame.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Re: Bug fix - Correct viewangles on load game

Postby r00k » Thu Jun 07, 2012 4:32 am

I mean i finish an episode, quit then come back to start 'nother misston, end the go again, oyd not like its that hard...
r00k
 
Posts: 1108
Joined: Sat Nov 13, 2004 10:39 pm

Re: Bug fix - Correct viewangles on load game

Postby mankrip » Fri Jun 08, 2012 3:45 pm

Thanks mh! This will be really helpful for me, since I often use saves to test features and bugfixes in my engine.
Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
Dev blog / Twitter / YouTube
User avatar
mankrip
 
Posts: 915
Joined: Fri Jul 04, 2008 3:02 am

Re: Bug fix - Correct viewangles on load game

Postby taniwha » Sun Jun 10, 2012 10:54 pm

mh: heh, I'd never noticed. I guess I'd always saved in a near enough to horizontal state.

The error is actually worse than just leaving you looking straight forward: it's -1/3 of the correct angle: if you're looking nearly straight down when you save, you'll be looking up at a bit less than 30 degrees when you load.

Anyway, issue confirmed and fixed* in QuakeForge. Thanks for the heads-up.

*Not yet pushed due to technical difficulties with the git repository on sourceforge :(
Leave others their otherness.
http://quakeforge.net/
taniwha
 
Posts: 399
Joined: Thu Jan 14, 2010 7:11 am

Re: Bug fix - Correct viewangles on load game

Postby Baker » Fri Jun 15, 2012 4:48 am

mh wrote:This is another one of those little Quake annoyances - when you load a previously saved game your viewangles are incorrect - you're normally looking straight forward instead of in the actual direction you were looking, which may have been up or down. Let's fix it.


I had an aguirRe type of thought.

Perhaps this behavior was intentional for keyboarders? I mean if you load a game and you are looking up or down, that isn't a keyboard initiated action so force_centerview isn't going to fix where you were looking.

Just a thought, but I'm thinking might not have been a bug but a feature.

(I also haven't thought about the code, so maybe I'm missing something obvious ... )
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Re: Bug fix - Correct viewangles on load game

Postby mh » Fri Jun 15, 2012 9:54 am

Hmm - "intentional for keyboarders" is a reasonable assumption here, but unfortunately in the absence of comments on the relevant code, we'll never know for certain. :evil:

All the same, pitch drifting would resolve that on the client side, and there is the behaviour that taniwha observed - it doesn't just auto-center, it sets your pitch angle to -(viewangle * 0.3333f). That comes from some SV_ClientThink code:
Code: Select all
   if (!sv_player->v.fixangle)
   {
      angles[PITCH] = -v_angle[PITCH] / 3;
      angles[YAW] = v_angle[YAW];
   }

We do know that "e->angles[0] = -e->angles[0];" is flagged as a "stupid quake bug" elsewhere in the engine too, so I'm thinking that balance of probability indicates that this one is actually a bug too.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2287
Joined: Sat Jan 12, 2008 1:38 am

Re: Bug fix - Correct viewangles on load game

Postby taniwha » Fri Jun 15, 2012 11:34 am

This one definitely is a bug as you do not look straight forward when loading the game: you look 1/3 of the angle in the opposite direction. Quite bad news for a keyboarder, I'd say.

Anyway, problems with git fixed: pushed.
Leave others their otherness.
http://quakeforge.net/
taniwha
 
Posts: 399
Joined: Thu Jan 14, 2010 7:11 am

Re: Bug fix - Correct viewangles on load game

Postby mh » Sat Jun 16, 2012 1:28 pm

It's worth noting as well that this one is fixed in Quake 2.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2287
Joined: Sat Jan 12, 2008 1:38 am

Re: Bug fix - Correct viewangles on load game

Postby Baker » Thu Jul 12, 2012 11:30 am

This is a very nice fix. I never noticed how the load game angle was screwed up.

And this fix works properly with -mlook or +mlook ... so doesn't change even speculated behavior.

If +mlook, you stay looking at the ceiling if saved that way.
If -mlook, you load looking at the ceiling but it drifts down to level like force_centerview would.

It is perfect.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am


Return to Programming Tutorials

Who is online

Users browsing this forum: No registered users and 1 guest