Comments (3)
This is obviously incorrect behaviour.
Is it? This has been in every version of Quake 2 I've tried, and I always assumed it was intended.
from q2rtx.
Is it? This has been in every version of Quake 2 I've tried, and I always assumed it was intended.
Hmm; you're right that the GOG version does it too. I'd not played through Quake 2 before this version.
It still seems like a mistake that's just never been corrected: you keep all your armour and items intact over level changes, after all.
As far as I can tell, the health is supposed to be preserved across level changes, it just isn't. From the original Quake 2 source code's g_local.c:
// client data that stays across multiple level loads
typedef struct
{
char userinfo[MAX_INFO_STRING];
char netname[16];
int hand;
qboolean connected; // a loadgame will leave valid entities that
// just don't have a connection yet
// values saved and restored from edicts when changing levels
int health;
int max_health;
int savedFlags;
int selected_item;
int inventory[MAX_ITEMS];
// ammo capacities
int max_bullets;
int max_shells;
int max_rockets;
int max_grenades;
int max_cells;
int max_slugs;
gitem_t *weapon;
gitem_t *lastweapon;
int power_cubes; // used for tracking the cubes in coop games
int score; // for calculating total unit score in coop games
int game_helpchanged;
int helpchanged;
qboolean spectator; // client is a spectator
} client_persistant_t;
Ah, nope, it was deliberate. From g_main.c:
/*
=============
ExitLevel
=============
*/
void ExitLevel (void)
{
int i;
edict_t *ent;
char command [256];
Com_sprintf (command, sizeof(command), "gamemap \"%s\"\n", level.changemap);
gi.AddCommandString (command);
level.changemap = NULL;
level.exitintermission = 0;
level.intermissiontime = 0;
ClientEndServerFrames ();
// clear some things before going to next level
for (i=0 ; i<maxclients->value ; i++)
{
ent = g_edicts + 1 + i;
if (!ent->inuse)
continue;
if (ent->health > ent->client->pers.max_health)
ent->health = ent->client->pers.max_health;
}
}
I still think it kinda sucks, though.
from q2rtx.
It's a simple patch to change the behaviour, which I've done on my one because I think it kinda sucks.
461,462d460
< if (ent->health > ent->client->pers.max_health)
< ent->health = ent->client->pers.max_health;
from q2rtx.
Related Issues (20)
- Crash when starting a game or loading save save (Windows/Linux) HOT 5
- wrong flashlight direction when playing demo HOT 7
- reset accumulated profiler samples causes an access violation error HOT 5
- Support for Quake 2 remaster, please ? HOT 21
- Errors trying to build latest Q2RTX HOT 6
- No Audio on default build from Ubuntu.. HOT 2
- [Question] Where could I find the default game lib logic of d2rtxded loading? HOT 1
- [Feature Request] Support compilation against shared system libs HOT 2
- There are no shadows in the latest(1.7.0) render version. HOT 2
- [regresssion] Graphic does not render correctly HOT 6
- Weapon renders into BSP surfaces when offset clipping isn't enough. HOT 12
- Parallax Occlusion Mapping with Self-Shadowing ? HOT 2
- Input from cinematics gets into the game HOT 3
- "Pitch black" rendering HOT 5
- Enable FSR3 HOT 2
- Native wayland small viewport & stretched graphics HOT 1
- CMake error: Unknown CHECK_C_COMPILER_FLAG
- Failed to compile client target due to missing libm linkage
- [Question] What is the minimal supported GCC?
- Much better denoising through Area-ReSTIR HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from q2rtx.