Commit graph

2627 commits

Author SHA1 Message Date
Zack Middleton
037565293f From /dev/humancontroller:
to further reduce confusion, rename constants like MAX_ENTITIES to MAX_REFENTITIES
2012-10-17 21:20:29 +00:00
Zack Middleton
bc4ca164e0 From /dev/humancontroller:
really fix the confusion with game entity and refentity numbers

for any natural number M, the following is logical as a whole:
- the array size for refentities is M;
- the refentity number limit is M-1, ie., each refentity number is in [0..M-1];
- the special number for the world is M.

before r1429, the code was roughly the following:

// constants related to the game, should not be used by the renderer

// renderer stuff
refEntity_t refEntities[MAX_ENTITIES];
int numRefEntities = 0;

void addRefEntity(refEntity_t re)
{
	if (numRefEntities >= ENTITYNUM_WORLD)
		return; // full
	refEntities[numRefEntities++] = re;
}

void render(int num)
{
	if (num == ENTITYNUM_WORLD)
		renderWorld();
	else
		renderRefEntity(refEntities[num]);
}

so before r1429,
- the array size for refentities was 1023;
- the refentity number limit was 1021, ie., each refentity number was in [0..1021]; and
- the special number for the world entity was 1022.
this was a small waste of memory, as the last array element wasn't used.

r1429 changed
	if (numRefEntities >= ENTITYNUM_WORLD)
to
	if (numRefEntities >= MAX_ENTITIES).

this creates the following configuration:
- the array size for refentities is 1023;
- the refentity number limit is 1022, ie., each refentity number is in [0..1022]; and
- the special number for the world entity is 1022.

r1429 just makes things worse: it allows 1 more refentity to be added, but that entity doesn't get drawn anyway, as its number will be equal to the special number for the world. this is a small waste of not only memory, but also processing time.

perhaps in XreaL,

ENTITYNUM_WORLD is a game entity constant, and has nothing to do with refentities. a new REFENTITYNUM_WORLD constant should be added to denote the special number for the world, and that constant should be used in the renderer code in place of ENTITYNUM_WORLD. so define such a constant, and let it be equal to MAX_ENTITIES, which is 1023.
2012-10-17 21:17:37 +00:00
Zack Middleton
d49d0753eb When in third person, don't play player's sounds as full volume in Base sound system. OpenAL already does this. (Related to bug 5741.) 2012-10-17 20:39:45 +00:00
Zack Middleton
ce9f2ee5f9 Check last listener number instead of clc.clientNum in S_AL_HearingThroughEntity so sound work correctly when spectate following a client. (Related to bug 5741.) 2012-10-17 19:30:41 +00:00
Zack Middleton
0167b439c9 Don't include client.h in sdl_glimp.c as it is part of the external renderer lib. 2012-10-13 23:15:02 +00:00
Zack Middleton
0a8eb09834 Play correct team sounds when in spectator mode and following a player. 2012-10-11 18:22:41 +00:00
Zack Middleton
cf30922932 Fix resetting single player level selection in q3_ui when there is no training level, such as in demoq3. 2012-09-30 06:21:08 +00:00
Zack Middleton
a32dc4dca4 Fix arrow buttons in q3_ui join server menu to be selectable by mouse. 2012-09-30 03:59:10 +00:00
Zack Middleton
656a0145bc Added myself to ioq3 credits in q3_ui. 2012-09-30 03:10:10 +00:00
Zack Middleton
11811e8138 Fix UI player model FOV when using non-640x480 resolution. 2012-09-30 02:56:50 +00:00
Zack Middleton
2cb7f25093 Cache servers for each master server in q3_ui, otherwise servers from last updated master for shown for all Internet# sources. 2012-09-17 04:16:30 +00:00
Zack Middleton
02f3664b2e Fix game getting stuck in a do-while loop when "team follow1" or "team follow2" client sends a follownext or followprev command. 2012-09-10 01:22:13 +00:00
Zack Middleton
c65142179f Fix g_warmup < 2 causing client prediction issues (bug #5740). (Reused code for tournament gametype.) 2012-09-09 22:14:15 +00:00
Zack Middleton
e3fc1826b1 Send team info for team overlay to spectators for the team of the client they're following (bug #5740). 2012-09-08 23:19:06 +00:00
Zack Middleton
56ebe14239 Don't have g_teamAutoJoin affect bot's team
Bots set their team later, setting it here causes some bots to change team and die later. Can cause extra skulls to be spawn at beginning of harvester (bug #5740).
2012-09-08 22:32:41 +00:00
Zack Middleton
b4a76e74f7 Remove a redundant code statement. 2012-09-04 21:13:25 +00:00
Zack Middleton
1aaf9d3e7b Use correct fallback height and width for r_mode -2. 2012-08-27 15:38:55 +00:00
Zack Middleton
42d3ff8d1d Added r_mode -2, uses desktop resolution. Bug #5408. Patch by Andrei Drexler and myself. 2012-08-27 14:52:41 +00:00
Zack Middleton
a3ae0dc5ef Removed a check that was made unnessicary by r1644. 2012-08-24 18:04:44 +00:00
Zack Middleton
dc8b48855d More MISSIONPACK ifdeffery. 2012-08-17 19:05:40 +00:00
Zack Middleton
9a69b738bf Added MISSIONPACK ifdef around GT_1FCTF code. 2012-08-17 06:18:37 +00:00
Zack Middleton
b82c02fc03 Don't replay to status OOB requests in Team Arena single player. 2012-08-16 21:38:02 +00:00
Thilo Schulz
027ea8d6d3 Oops, still need this 2012-08-08 09:42:33 +00:00
Thilo Schulz
ffac0e6757 Move argument passing from VM to engine to global variables which allows to get rid of lots of OS specific stuff and also fixes errors that happens when compilers add lots of boilerplate to the DoSyscall() function 2012-08-08 09:34:03 +00:00
Thilo Schulz
ded2b11959 Fix this for real now. 2012-07-23 21:27:17 +00:00
Zachary Slater
afffc10a54 switch mac to the framework SDL... 2012-07-18 04:57:52 +00:00
Tim Angus
88cbeae0fd * Fix warning 2012-07-07 18:24:20 +00:00
Thilo Schulz
053aa8ead7 Fix windows as well 2012-07-07 18:22:19 +00:00
Tim Angus
37f2b4db90 * (bug #5709) Fix crash when invoked with --version 2012-07-07 17:32:19 +00:00
Zack Middleton
79bb668a9f Fixed G_LogPrintf format warning on 64 bit systems added in r2294. 2012-07-05 13:42:08 +00:00
Zack Middleton
2cfda4384b We should not try to broadcast via the IPv4 socket if that socket is closed.
Previously, error messages were generated when querying local servers while IPv4 was disabled. Patch from /dev/humancontroller.
2012-07-05 13:33:55 +00:00
Thilo Schulz
b5456faaea Revert pk3dir patch because some users report the code gets stuck in an infinite loop in the new code 2012-07-02 01:03:55 +00:00
Thilo Schulz
2c0b262a5a Mark JPEG lib changes, file provided by Simon McVittie 2012-07-01 18:07:56 +00:00
Thilo Schulz
b757968839 Support for .pk3dir (#5298) - Patch by Andrew (dersaidin@gmail.com) 2012-07-01 18:00:18 +00:00
Thilo Schulz
56f16e10d6 Various bugfixes by Tobias Kuehnhammer (#5270)
- A stupid bug where bots re-trigger jumppads if they fell onto it.
- A small "memset" bug concerning player animations.
- Reward sounds were never cleared and thus they are played on a map restart.
- Safer and more secure handling of disconnected clients and clients with 
  malformed or illegal info strings.
- first_gauntlet_hit.wav was not played (ops/ps) bug
- capturelimit not hit (from OAX)
2012-07-01 17:27:52 +00:00
Thilo Schulz
1af9c636a5 r_ignorehwgamma 1 does not actually turn on software gamma (#5511) - patch by Serge Belyshev 2012-07-01 17:01:30 +00:00
Thilo Schulz
c9fc250532 Incorrect number of overbright bits printed by GfxInfo_f() (#5510) - fix by Serge Belyshev 2012-07-01 16:59:20 +00:00
Thilo Schulz
ca44693f34 More intelligent exponentiation in strtod/strtol (#5487) - patch by Ben Millwood 2012-07-01 16:43:28 +00:00
Thilo Schulz
8534c94e4c Support building on cygwin with cross-make-mingw*.sh (#5405) - patch by q3urt.undead@gmail.com 2012-07-01 16:29:43 +00:00
Thilo Schulz
a3c7003d9c prevent using getinfo as an amplifier for DDOS attacks (#5678). Patch by DevHC 2012-07-01 14:18:31 +00:00
Zack Middleton
b340c9d835 Fixed fatal error ("OP_BLOCK_COPY out of range!") when using qvms on Mac OS X powerpc (see r2031 and r2034). 2012-06-29 18:35:55 +00:00
Zack Middleton
3b09685b42 - Have NET_Sleep work with Windows' INVALID_SOCKET again...
- Use SOCKET_ERROR in NET_Sleep.
2012-06-19 22:36:54 +00:00
Zack Middleton
725c9df608 #5672 - Fixed incorrect type usage in NET_Sleep(), patch from Özkan Sezer. 2012-06-19 16:12:16 +00:00
Zack Middleton
68b3b0922b static-ize inline functions for Clang/LLVM
From /dev/humancontroller.
2012-06-19 15:56:21 +00:00
Zack Middleton
afa607c3b6 Added kicknum, kickall, and kickbots commands, patch by Ensiform. 2012-06-19 15:52:08 +00:00
Zack Middleton
945f01d4af more '\n' business
From /dev/humancontroller.
2012-06-19 15:14:57 +00:00
Zack Middleton
4cfbbe506c when interacting with QVMs, Clang/LLVM requires the standard use of the va_*() macros instead of (fast) call hacks
From /dev/humancontroller.
2012-06-19 14:57:51 +00:00
Zack Middleton
64c26ec338 fix a WRONG size argument to a memset() call found by Clang/LLVM
From /dev/humancontroller.
2012-06-19 14:53:40 +00:00
Zack Middleton
2db73231eb remove a bunch of superfluous formatting calls
From /dev/humancontroller.
2012-06-19 14:52:22 +00:00
Zack Middleton
20c6d1e33f rename trap_Printf() to trap_Print() in the game module, as that function has nothing to do with printf()-like formatting
From /dev/humancontroller.
2012-06-19 14:51:02 +00:00