mirror of
https://github.com/UberGames/ioef.git
synced 2024-12-03 17:43:13 +00:00
Commit two patches from SmokingGuns's Tequila, fixing problems with very fast movers and a typo in the string drawing function. (#4329) and (#4330)
This commit is contained in:
parent
4ba2452f83
commit
223b851b7b
2 changed files with 20 additions and 1 deletions
|
@ -714,7 +714,7 @@ static void UI_DrawProportionalString2( int x, int y, const char* str, vec4_t co
|
||||||
trap_R_SetColor( color );
|
trap_R_SetColor( color );
|
||||||
|
|
||||||
ax = x * cgs.screenXScale + cgs.screenXBias;
|
ax = x * cgs.screenXScale + cgs.screenXBias;
|
||||||
ay = y * cgs.screenXScale;
|
ay = y * cgs.screenYScale;
|
||||||
|
|
||||||
s = str;
|
s = str;
|
||||||
while ( *s )
|
while ( *s )
|
||||||
|
|
|
@ -1308,6 +1308,25 @@ void Reached_Train( gentity_t *ent ) {
|
||||||
|
|
||||||
ent->s.pos.trDuration = length * 1000 / speed;
|
ent->s.pos.trDuration = length * 1000 / speed;
|
||||||
|
|
||||||
|
// Tequila comment: Be sure to send to clients after any fast move case
|
||||||
|
ent->r.svFlags &= ~SVF_NOCLIENT;
|
||||||
|
|
||||||
|
// Tequila comment: Fast move case
|
||||||
|
if(ent->s.pos.trDuration<1) {
|
||||||
|
// Tequila comment: As trDuration is used later in a division, we need to avoid that case now
|
||||||
|
// With null trDuration,
|
||||||
|
// the calculated rocks bounding box becomes infinite and the engine think for a short time
|
||||||
|
// any entity is riding that mover but not the world entity... In rare case, I found it
|
||||||
|
// can also stuck every map entities after func_door are used.
|
||||||
|
// The desired effect with very very big speed is to have instant move, so any not null duration
|
||||||
|
// lower than a frame duration should be sufficient.
|
||||||
|
// Afaik, the negative case don't have to be supported.
|
||||||
|
ent->s.pos.trDuration=1;
|
||||||
|
|
||||||
|
// Tequila comment: Don't send entity to clients so it becomes really invisible
|
||||||
|
ent->r.svFlags |= SVF_NOCLIENT;
|
||||||
|
}
|
||||||
|
|
||||||
// looping sound
|
// looping sound
|
||||||
ent->s.loopSound = next->soundLoop;
|
ent->s.loopSound = next->soundLoop;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue