Commit Graph

11413 Commits (aca180e0e860f42206bc9be21d9e7a65638afbec)

Author SHA1 Message Date
Christian Ohm aca180e0e8 New skybox for urban maps.
Closes #3534.
2012-06-10 00:14:32 -04:00
cybersphinx d51cea925b Update ChangeLog. 2012-06-09 19:28:10 +02:00
cybersphinx 7e18c2a58a Update COPYING.NONGPL.
Closes #3533, refs #3534.
2012-06-09 19:27:27 +02:00
Cyp 74d8086132 Always reload weapons when bar is full.
Weapons would only reload if completely empty. If not completely empty, the reloading bar was meaningless.
2012-06-09 09:28:45 +02:00
Cyp 4a53a0e010 Texture changes by several people.
Cliff decals by Jorzi, sand support by Mysteryem, new rocky ground texture by MaNGusT, minor tweaks by NoQ.

Cliffs should now be visible.
2012-06-09 09:27:28 +02:00
Cyp ea7b1912fd Balance changes by NoQ.
And thanks to Reg312, Iluvalar and tmp500 for valuable suggestions.

Inferno: price 80->110, incend.radius 64->48, incend.damage 40->32
Thermite Cyborg: incend.damage 38->32
Plasmite: price 80->130, incend.radius 96->60, incend.damage 63->50
Incendiary Mortar: price 150->200, pit price 135->170, incend.damage 30->22
Incendiary Howitzer: price 250->300, emplacement price 325->400, incend.damage 60->32
Minipod: range 1152->1088
MRA: damage 34->29, splash damage 30->29, reload time 145->165
HMG: damage 18->17
AG: fire pause 3->4, damage 20->19
TAG: price 100->120, fire pause 3->4, damage 30->28
AG Cyborg: fire pause 4->5, damage 20->18
MG: ROF upgrades 15%/30%/45% -> 17%/34%/50%.
MC: research points 4800->3600
HPV: research points 7200->4800
Gates: price 25->75
Whirlwind: fire pause 3->4
Thermite Bombs: incend.damage 200->120
Plasmite Bombs: incend.damage 200->140
Cannon Fortress: price 1000->900, range 1792->1408
Seraph: damage 120->110, splash 100->90, INDIRECT->HOMING-INDIRECT
Archangel: INDIRECT->HOMING-INDIRECT
2012-06-09 09:26:37 +02:00
dak180 64951d6f12 Try to only show issues in the test outputs. 2012-06-07 21:05:07 -04:00
dak180 75041d82ea Do not bother looking for things that might not exist. 2012-06-07 20:43:01 -04:00
safety0ff 62153e972f Fix taking screenshots whose width is not congruent to 0 mod 4.
Closes #3537.
2012-06-07 14:45:14 -04:00
Cyp c94112b6b3 Fix .gitignore.
The tools/image/image in .gitignore was mysteriously changed to be a directory only in
c346e9ebb6, and the file therefore fails to be ignored.
2012-06-05 23:20:29 +02:00
Cyp 193eba2a9f Fix CB fire against mobile targets.
Steps to reproduce:
1) Player A builds a CB sensor.
2) Player B attacks the CB sensor with a mortar borg.
3) Player B runs away with the mortar borg where player A can't see.
4) Player A builds artillery.
5) Player B slowly kills off all the artillery with an MG viper wheels tank, while the artillery just sits there
   pointing at the mortar borg without firing.

To trigger, the artillery must be built after the last CB sensor in range of where the mortar borg attacks. Any
type of mobile artillery can trigger the bug, such as archangel leopard tracks, or MRA dragon wheels.

Workaround: Player A can build an uplink, so that the mortar borg becomes visible, and the artillery fires. If
            there's still anything left of the artillery by the time the uplink is built, that is.

Fixes ticket:3529.
2012-06-05 23:15:53 +02:00
Cyp 27dfe9753b Unduplicate backdrop pixel blitting code slightly. 2012-06-05 23:15:53 +02:00
Cyp 5b07a7b755 Add oil barrels to map preview. 2012-06-05 23:15:53 +02:00
Cyp 353357b1b6 Allow queuing building on burning oil wells.
Actual construction only starts after the oil well finishes burning.
2012-06-05 23:15:53 +02:00
dak180 fbd757b515 Use a faster optipng option set that also strips metadata.
Requires optipng 0.7.1+ to work.
2012-06-05 16:13:57 -04:00
dak180 c346e9ebb6 Add a mac build for the image helper program. 2012-06-05 15:35:19 -04:00
Cyp 35f301b1ba Don't desynch on dropped players.
Desynch was due to host-spoofed GAME_PLAYER_LEFT message being processed by clients at random times.

Instead of putting the GAME_PLAYER_LEFT in a NET_SHARE_GAME_QUEUE, put the GAME_PLAYER_LEFT in a NET_SHARE_GAME_QUEUE
in a NET_SEND_TO_PLAYER, such that the clients' NETrecvNet() will process the GAME_PLAYER_LEFT in the same iteration
of the for (current = 0; current < MAX_CONNECTED_PLAYERS; ++current) loop as the real GAME_* messages from that
player, and therefore not mix up the messages.

To reproduce before this commit, start 8-or-so clients, set all to debug mode, change game speed of some clients
slightly, start kicking players. Keep trying again, until desynch is reproduced. Changing game speed of some clients
might or might not be required.

See 93f0e61d92.
2012-06-05 10:00:58 +02:00
Cyp 6af88a6289 Simplify NETrecvGame() slightly.
No need to check for NET_* messages in game queues.
2012-06-04 19:05:42 +02:00
Cyp 051f83c512 Don't send a value which is never read, anyway. 2012-06-04 16:54:11 +02:00
Cyp 58551ba9d0 Do not return client broadcast messages to the sender.
Instead of sending a copy of broadcast messages back to the sender, which ignores them anyway, save the bandwidth.
2012-06-04 12:18:08 +02:00
Cyp 7816f9f57a Fix joining games with some closed slots.
Although it no longer crashed when trying to join a game with some closed slots (see previous commits), it is also
desirable to actually be able to join it.
2012-06-03 21:41:51 +02:00
Cyp 7a0cd2eccf Fix host crash on failure in NET_CreatePlayer().
NET_CreatePlayer() should not be able to fail here, though. See following commit.

Crash was due to treating ERROR_FULL == 2 as an uint8_t pointer, and trying to dereference it.
2012-06-03 21:34:57 +02:00
Cyp 4d658c9157 Don't continue to wait for a NET_ACCEPTED after processing a NET_REJECTED.
Don't wait for a NET_ACCEPTED after the socket is broken, either.
2012-06-03 21:28:08 +02:00
Cyp bf2483cbd7 Don't use bsocket and tcp_socket at the same time.
Somehow fixes a client crash when failing to join a game. Possibly caused by deleting one of bsocket or tcp_socket,
and then using the other.
2012-06-03 21:13:57 +02:00
Cyp e0939a0217 Fix some weird code that partly relied on sockets being blocking.
Exposed in 53ce0a7c38.
2012-06-03 21:13:42 +02:00
cybersphinx 2228e80198 Increase precision of sorting in generate-statistics-html.py.
Fix by Emdek, closes #3519.

Also remove unneeded "import os".
2012-06-02 16:58:59 +02:00
cybersphinx b6c77bd603 Update translations. 2012-06-02 16:57:08 +02:00
cybersphinx 113796a9d6 French translation update by Amiral JCDG.
Closes #3512.
2012-06-02 16:56:27 +02:00
Cyp 4079ff203f Assert on cyclic research dependencies instead of doing an infinite loop.
Spurious assertions are possible in the case that the research tree is excessively interconnected, such as
researches 31-40 all depending on all of researches 21-30, and researches 21-30 all depending on all researches
11-20, and so on. Although it probably shouldn't assert on excessively interconnected research trees, the loop as
written could take a ridiculously long time, anyway.
2012-06-02 10:17:06 +02:00
vexed 3334b4db16 Add missing header for last commit 2012-05-31 22:55:25 -04:00
vexed 20f203e7ea Add a work around and a assert to help out with the savegame issues described in said ticket.
Close ticket #3154
2012-05-31 22:48:04 -04:00
vexed b3f3b089f1 Fix commander unit count on loading games.
Add error sound, and text when you can't add any more units to the Commander.

Fixes ticket:3513
Fixes ticket:3062
2012-05-31 22:46:01 -04:00
Cyp 5ba90fec42 Fix game mechanics bug allowing one truck to claim 10 derricks at once.
Abandoned structures with no cost now slowly deconstruct over a period of one minute.
2012-05-30 16:46:39 +02:00
Cyp 53ce0a7c38 Make sockets nonblocking as workaround for socket calls unexpectedly blocking.
For some weird reason, select() sometimes returns that a socket write would not block, but the socket write does
block, anyway.

On display in the bottom of a locked manpage for select(), stuck in a disused lavatory with a sign on the door
saying "Beware of the Leopard":
BUGS
       Under Linux, select() may report a socket file descriptor as "ready for reading", while nevertheless a
       subsequent read blocks. This could for example happen when data has arrived but upon examination has wrong
       checksum and is discarded. There may be other circumstances in which a file descriptor is spuriously
       reported as ready. Thus it may be safer to use O_NONBLOCK on sockets that should not block.

This would explain a socket read unexpectedly blocking, although the issue is actually a socket write unexpectedly
blocking.

Fixes ticket:3410, or else.
2012-05-30 10:50:34 +02:00
Cyp acaf4620e0 Only play ID_SOUND_ARTIFACT_RECOVERED to the player picking up the artefact.
Fixes ticket:3488.
2012-05-24 10:56:42 +02:00
Cyp 313738ed23 Let CB sensors defend allies too. 2012-05-23 11:55:26 +02:00
Cyp 5d199046c8 Don't spam assertions while artillery is assigned to allied sensors. 2012-05-23 11:33:46 +02:00
dak180 15aebc46f3 Update zlib to 1.2.7. 2012-05-22 14:27:31 -04:00
Cyp 00b1968184 Show "[PlayerName] has left the game." to all players again.
Fixes ticket:3461.
2012-05-21 19:33:00 +02:00
Cyp 22799c2b26 Fix unconventional reported unit count on selecting all units of same type.
Previous unconventional behaviour was to consider the set of previously-unselected droids becoming selected, and
report the size of the set plus the size of the set of types of droids in the set.

Iff there was exactly one droid of each type previously selected, and there was at least one unselected droid of
each selected type, then the reported unit count would coincidentally be correct.

Fixes ticket:3479.
2012-05-21 16:38:55 +02:00
Cyp f0eea79104 Fix Nexus AI unable to build units.
Nexus was building units with an unresearched sensor (equivalent to the default sensor). Since
6365f2dbec, Nexus can no longer build unresearched units.

In the tutorial, the designed MG viper wheels would also use the same unresearched sensor.

Replaced unresearched DefaultSensor1Mk1 with ZNULLSENSOR. Removed special case for tutorial in
7079ad2951, which is no longer required.
2012-05-21 16:05:10 +02:00
Cyp a80f040849 Put the unused MAX_BYTESPERSEC define out of its misery. 2012-05-21 13:46:29 +02:00
Cyp bedd8704f2 Be more consistent in ping display, show ping ≥ 4000 as ∞. 2012-05-21 13:36:42 +02:00
Cyp e14c39fb38 Fix communication between remaining clients when one client freezes.
Problem persisted until the frozen client drops completely, or unfreezes (net connection is restored).

To reproduce, test with host and 2 other clients, and freeze one client with kill -STOP or by pausing the net
connection somehow.

Cause was lack of flushing, due to an inverted condition exposed in b9cc7702b7 and
introduced in c1ca4d2d34. Would probably trigger before
b9cc7702b7, for any remaining clients that freeze for any reason (for example, because
of <2.5 FPS or momentary hard drive swapping) for more than 400ms.
2012-05-21 13:36:41 +02:00
vexed 737b3d9d24 Fix flag loading code to work for out of sequence factories.
fixes ticket:3384
2012-05-20 22:23:49 -04:00
Paul Wise e5d2242be0 fix an FTBFS with -Werror=format-security
Fixes ticket:3493.
2012-05-20 22:07:40 +02:00
cybersphinx 52511cec60 Fix some typos.
Thanks to pabs for noticing one of them. Closes #3495.
2012-05-20 15:24:46 +02:00
cybersphinx c46d2d56ea Dutch translation update by nino_romans.
Closes #3484.
2012-05-19 16:55:56 +02:00
cybersphinx a400fe055f Turkish translation update by Ayhan Görgülü.
Closes #3486.
2012-05-19 16:36:24 +02:00
cybersphinx d74ebad6a3 Hungarian translation update by mtomi78.
Closes #3485.
2012-05-19 16:35:48 +02:00