Commit Graph

10430 Commits (6937969175874261615df4dc0539976128ed1805)
 

Author SHA1 Message Date
Sven Eberhardt 3f06882a4c Krakatoa: Add German translation of intro messages 2017-01-21 21:27:45 -05:00
Lukas Werling 459adbd199 Fix local network discovery on Windows (#1886)
On Windows, we cannot resolve addresses using getaddrinfo() before
initializing Winsock. By storing the address as string, the address
parsed later on.
2017-01-21 16:03:03 +01:00
Lukas Werling ef4f1d9231 Merge branch 'ipv6' 2017-01-18 21:59:16 +01:00
Lukas Werling e3a0f2f8b5 Implement Happy Eyeballs for C4Network2HTTPClient
This should make masterserver requests more reliable for users with a
bad IPv6 connection.

See RFC6555
2017-01-18 21:55:17 +01:00
Lukas Werling 894edfce5b Allow adding connections from other addresses
Forcing a static address does not work for IPv6 where everyone has
multiple addresses that change over time. For example, adding a new
connection would fail if the preferred privacy address changes during
a game.
2017-01-18 21:55:17 +01:00
Lukas Werling 6677295bac Serialize addresses in UDP connection packages
The previous approach of just embedding the raw struct fails miserably
when trying to transfer AF_INET6 across platforms.
2017-01-18 21:55:17 +01:00
Lukas Werling 6af32a7c46 Fix IPv6 sockets on Windows not being dual-stack
On Linux, all IPv6 sockets are dual-stack per default; on Windows, they
are not. It's still a good idea to set the option on Linux as well as
the default value can be changed.

When connecting via TCP, C4NetIO still creates IPv4 sockets, so no dual
stack option is required there.
2017-01-18 21:54:50 +01:00
Lukas Werling a9ee16a287 Change C4NetIOUDP broadcast to IPv6
It's not actually used anywhere, but it's not broken now!

This also moves the low-level and OS-specific GetLocalAddresses code to
C4NetIO where it's fitting better than in C4Network2Client.
2017-01-18 21:54:50 +01:00
Lukas Werling 890deb997d Improve "unexpected address family" asserts 2017-01-18 21:54:50 +01:00
Lukas Werling efe0b134ef Use UDP address from puncher to derive TCP address
This is necessary for dual stack connections where the masterserver will
only an IPv6 address and the netpuncher will only return a UDP address/port.
2017-01-18 21:54:50 +01:00
Lukas Werling 602d62cf52 Implement netpunching for IPv6 2017-01-18 21:54:50 +01:00
Lukas Werling b3ef196935 Remove ResolveAddress()
As setting a default port is a common operation, add a helper function
for this.
2017-01-18 21:54:50 +01:00
Lukas Werling 85f5b3cb75 Fix local network discovery 2017-01-18 21:54:49 +01:00
Lukas Werling 97be97c94c netpuncher: Add runtime error handling
Previously, the netpuncher would just exit silently when encountering an
error.
2017-01-18 21:54:49 +01:00
Lukas Werling 5a09c1d4a5 Convert addresses from puncher to IPv4
Addresses from the puncher would show as [::ffff:1.2.3.4] and be a bit
confusing.
2017-01-18 21:54:49 +01:00
Lukas Werling 68d18bf872 Remove obsolete CompileFunc for in_addr 2017-01-18 21:54:49 +01:00
Lukas Werling ef9be2e24e Change (discovery) multicast to IPv6
We use ff02::1 as discovery multicast address.

This "all nodes" multicast address is good enough for discovery in the
local network as packets there are likely broadcasted over ethernet
anyways.
2017-01-18 21:54:35 +01:00
Lukas Werling 793207ce28 Fix connections to link-local IPv6 addresses
Link-local IPv6 addresses are valid on all interfaces and thus need an
interface specifier / scope id, e.g. fe80::1%eth0.
2017-01-18 21:54:02 +01:00
Maikel de Vries 8cc30baf02 add option to gravestone rule to fade them out 2017-01-18 18:21:12 +01:00
Maikel de Vries 5b796dd6d0 improve boom attack movement 2017-01-17 21:14:27 +01:00
Maikel de Vries 075f751a89 defense goal: scoring and achievements 2017-01-17 18:08:34 +01:00
Sven Eberhardt 771a82d879 Fix direct PXS insertion when multiple PXS are at the same location
When many PXS were at the same location (e.g. because of fast/multiple pumps pumping into a basin), only one PXS per frame could be inserted because insertion of one PXS would postpone insertion of additional PXS in the same frame until they finished their slide movement.

This caused some scenarios like Rapid Refining to become very frustrating, because adding extra pumps didn't actually do anything (unless you tricked the insertion by putting the output into the basin).

Now insert them directly if slide movement led to an insertion position.
2017-01-16 20:32:20 -05:00
Maikel de Vries 9466dd4b9b move script player control to defense goal 2017-01-16 18:57:00 +01:00
Maikel de Vries c632a6ed15 improve king of the hill scenario 2017-01-16 18:57:00 +01:00
Maikel de Vries 43d6abc802 order defense scenarios 2017-01-16 18:57:00 +01:00
Maikel de Vries ba731123a2 allow for script players to enter full teams
This should not break anything because script players are created by scripts and one may expect sane behaviour. This is useful to block entry for normal players into a team.
2017-01-16 18:57:00 +01:00
Sven Eberhardt 218961f6a8 Add DuroLava liquid object #1879
The extra object is called "Magma" to distinguish it from Lava and has a slightly different color on the symbol. In the pump menu, only "Lava" is shown and magma is turned on/off with it automatically.

It would be nice to have only one object and control a flag somehow. However, this is bound to cause us headaches later on (combining materials, etc.). This solution is probably least error-prone.
2017-01-16 12:54:34 -05:00
Martin Strohmeier 1586ff9635 Remove difficulty from I am rich Scenario.txt 2017-01-15 17:57:18 +01:00
Maikel de Vries 3f9d06aaa7 add new defense scenario (king of the hill)
This is still experimental and needs some fine-tuning.
2017-01-15 15:38:33 +01:00
Maikel de Vries 3b1dd87b8b improvements to defense goal 2017-01-15 15:38:33 +01:00
Maikel de Vries 008e037864 fix script error in basement 2017-01-15 15:38:33 +01:00
Maikel de Vries 73de90ea8f make friendly fire rule work for projectiles 2017-01-15 15:38:33 +01:00
Maikel de Vries 1f5f34b559 improve friendly fire rule to allow inclusion of objects 2017-01-15 15:38:33 +01:00
Maikel de Vries d1c0750095 show wealth in tutorial 1 2017-01-15 15:38:33 +01:00
Maikel de Vries 85ce25fb0f add editor button to place basement under a structure 2017-01-15 15:38:33 +01:00
Maikel de Vries f9e3639d91 silence some warnings in the defense scenarios 2017-01-15 15:38:33 +01:00
Maikel de Vries e00f1e9672 fix aiming of defense boom attack 2017-01-15 15:38:32 +01:00
Maikel de Vries 6dc9850ebd fix possible script error in boom attack 2017-01-15 15:38:32 +01:00
Maikel de Vries accc1b82dd gidl: use defense boom attack object 2017-01-15 15:38:32 +01:00
Maikel de Vries ef27c1d760 windmill: use defense boom attack object 2017-01-15 15:38:32 +01:00
Maikel de Vries 18a313c962 add defense ai control object 2017-01-15 15:38:32 +01:00
Maikel de Vries eec8127e8a add defense boom attack object
This is the standard wave attack weapon and is part of the goal in some sense.
2017-01-15 15:38:32 +01:00
Maikel de Vries a03c67a7a2 add defense wave control object 2017-01-15 15:38:32 +01:00
Maikel de Vries 7a8032e96d add defense enemy control object 2017-01-15 15:38:32 +01:00
Maikel de Vries 1063610369 add defense goal
This is the goal in defense scenarios and controls the waves. In the future a league interface can also be build. The goal is to adapt the existing defense scenarios to this format (mostly internal changes and infinite waves). Also this should allow for easier creation of defense scenarios.
2017-01-15 15:38:32 +01:00
Maikel de Vries 5e6cf4e7b8 show goal name in goal menu 2017-01-15 15:38:32 +01:00
Mark 6b0d0e1c60 IronPeak: Fix function access during intro 2017-01-13 05:50:06 +01:00
Mark 38648dedcc UseControl: #1873 Prevent use while a menu is opened.
Using objects was blocked by the GUI menus and the ObjectControl() function anyway, but (!) it was not blocked for the old style menus that can still be used.
2017-01-13 00:05:35 +01:00
Mark 92e53fe09f UseControl: Merge the two if-blocks that share the same condition 2017-01-12 23:58:38 +01:00
Lukas Werling 5d803d3be3 Improve "could not find connection" error message 2017-01-09 20:35:04 +01:00