Commit Graph

413 Commits (Controls)

Author SHA1 Message Date
David Dormagen ac738735b2 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/Vehicles.ocd/Airplane.ocd/Script.c
	src/game/C4Game.cpp
	src/game/C4GraphicsSystem.cpp
	src/gamescript/C4GameScript.cpp
2015-09-02 08:19:34 +02:00
Sven Eberhardt 6ab6a1ac3c Add script interface for some EFX sound modifiers. 2015-08-27 21:44:23 -04:00
Armin Burgmeier 0cdafc278b Transform all mesh data to Clonk reference frame on load
Instead of doing the transformation when drawing a mesh. This allows making
the OpenGL normal matrix more consistent, since it does not include the
Ogre-To-Clonk transformation, and so that the transformation does not need
to be inverted in the shader.

As a side effect, all Attach transformations were updated, since before
they were specified in the OGRE reference frame, not the Clonk reference
frame.
2015-08-18 20:30:20 -04:00
David Dormagen 196f528201 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/HUD.ocd/FancyGridMenu.ocd/DefCore.txt
	planet/Objects.ocd/HUD.ocd/GridMenu.ocd/DefCore.txt
	planet/Objects.ocd/Helpers.ocd/Dummy.ocd/Graphics.png
	planet/Objects.ocd/Items.ocd/Tools.ocd/WindBag.ocd/Script.c
	planet/Objects.ocd/Items.ocd/Weapons.ocd/Javelin.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Flag.ocd/Marker.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Producer.ocd/Script.c
	planet/Objects.ocd/Structures.ocd/Flagpole.ocd/Script.c
	planet/Objects.ocd/Structures.ocd/Pump.ocd/Script.c
	src/game/C4Game.cpp
	src/gamescript/C4GameScript.cpp
	src/gui/C4GameMessage.cpp
	src/landscape/C4Landscape.cpp
2015-06-03 22:32:36 +02:00
Nicolas Hake 2eb78b617d Split calculated values out of Version.txt
Version.txt should only contain values that you set manually. Anything
that's derived from that or calculated separately should be in a
separate file.
2015-05-21 23:09:01 +02:00
Nicolas Hake 5f46161433 Remove unused clone of C4PathFinder
Why the hell is there a second implementation of C4PathFinder around? It
wasn't even used anywhere.
2015-03-31 17:57:58 +02:00
hasufell 5f29846b7d Fix USE_SYSTEM_TINYXML
* fix the if-conditional
* don't use pkgconfig (there is no .pc file upstream)

Signed-off-by: Julius Michaelis <caesar@hg.openclonk.org>
(Added license to FindTinyXML.cmake)
2015-03-28 22:58:53 +09:00
Kevin Zheng fd6914f9cb Fix linking with SDL 2015-03-15 19:26:57 +01:00
Nicolas Hake 4cb97e7a03 OS X: Make app bundle renamable
XCode automatically sets EXECUTABLE_NAME correctly. We have to do it by
hand if we're not using XCode.
2015-03-15 16:03:44 +01:00
Nicolas Hake db295b8678 Add emulation of C++14's std::make_unique
Unlike std::make_shared, std::make_unique was unfortunately missing from
C++11. It's a useful utility though.
Technically, declaring a new name in the std namespace is undefined, but
the other way to make make_unique available to all callers regardless of
C++ version, putting it into a distinct utility namespace and importing
the declaration from std if available, makes for more ugly code.
2015-02-25 23:37:04 +01:00
Nicolas Hake 0b55cea227 Disable assertions in non-debug builds
Making the engine terminate when an assertion fails is a good thing in
debug builds, but keeping them enabled in release builds only hurts our
users.
2015-02-20 23:36:36 +01:00
Nicolas Hake 9bfd232ab5 Test whether GLDEBUGPROCARB's userParam is const or not
Depending on how current your headers are, the userParam parameter to
GLDEBUGPROCARB may be const, or it may not. The ARB has added the const
qualifier at some point after publishing the specs. Hooray for breaking
API changes.
2015-02-16 21:21:31 +01:00
Nicolas Hake 9093bde491 Suppress -Wcast-align on clang
Alignment doesn't matter on any platform we support, and unlike gcc,
clang uses natural alignment instead of required alignment to emit this
warning.
2015-02-14 19:45:32 +01:00
Nicolas Hake cdd490b53c Set some warning flags when compiling with clang
The Clang warning flags are woefully underdocumented, so I've just
matched the g++ list in as much as I knew the flags existed.
2015-02-14 00:11:51 +01:00
Nicolas Hake 69cdae5ef2 Use find_package instead of raw include to find libraries 2015-02-12 20:09:58 +01:00
Nicolas Hake 0076fc7d7b Fix DbgHelp check
CMake didn't always find the correct DbgHelp.lib on Win64. Somehow,
nobody seems to have noticed!
2015-02-08 15:03:08 +01:00
Sven Eberhardt e05c7de976 Flag UPnP includes as system to suppress warnings. 2015-02-07 22:46:52 +01:00
Sven Eberhardt f032662052 Mark getopt and tinyxml thirdparty includes as system libraries.
This should silence some warnings occuring in thirdparty code so warnings in our own code get the exposition they deserve.
2015-02-07 22:02:42 +01:00
Nicolas Hake e4fea50a9a Mark thirdparty as system headers so we don't get warnings from there
thirdparty needs to be pristine code so we can update those libraries
without having to figure out whether we need to apply some more patches.
This means we can't easily fix warnings in there; telling GCC that these
are system headers means it won't emit any.
2015-02-07 17:39:15 +01:00
Nicolas Hake c087a88977 Fall back to COMPILE_DEFINITIONS_DEBUG for old CMake
Debian Stable still ships 2.8.9, so for the time being we want to
support that version.
2015-01-27 17:58:31 +01:00
Günther Brammer 36ce941e4d cmake: Restore SDL-Mainloop build 2015-01-25 19:05:06 +01:00
Günther Brammer a92c22a7b3 Merge various build system fixes and cleanups 2015-01-25 18:50:29 +01:00
Nicolas Hake 2e1bdd742f OSX: Bundle libraries even when not compiling with XCode
We have half-arsed support for building Darwin executables with Unix
tools instead of XCode. Make it slightly more whole-arsed.
2015-01-24 23:28:33 +01:00
Nicolas Hake d44d7ba33e OSX: Use /bin/bash to pack game data
Since the script is using bashisms, a posixly correct /bin/sh isn't
sufficient. Explicitly use /bin/bash instead.
2015-01-23 19:22:04 +01:00
Nicolas Hake a7548cfa12 Get CMake to use tools from a native build when cross-compiling 2015-01-23 19:20:55 +01:00
Nicolas Hake d994b893ba OSX: Fix capitalization of several imports and includes 2015-01-23 18:24:31 +01:00
Nicolas Hake 53ff6da5ef Remove some OSX-specific hacks from the main CMakeLists 2015-01-23 17:15:56 +01:00
Nicolas Hake f4e95ea85c Use find_package for finding libbz2 instead of hard-coding the path 2015-01-23 17:11:23 +01:00
Nicolas Hake 9759f72b89 Downgrade requirements to Ubuntu Precise (12.04LTS) 2015-01-19 12:26:42 +01:00
Nicolas Hake 4060991124 CMake: Add support for Boost 1.57.0
For some reason, even the most recent (as of this writing) CMake 3.1.0
doesn't know about Boost 1.57.0, which was released two months before
CMake. Add it to the known version list.
2015-01-18 20:50:33 +01:00
Nicolas Hake ee62586013 CMake: Fallback to the system FindFreetype if pkg-config fails
Instead of shipping our own copy of FindFreetype.cmake, use the system
one if pkg-config is not available or can't find FreeType.
2015-01-18 20:50:32 +01:00
Nicolas Hake 2b2d70d02a CMake: Update for 3.1 compatibility
CMake 3.1's if() by default now interprets quoted variable names as
strings. This is a good idea from a strictness perspective, so make it
do this even if we're in 2.8.9 compatibility mode.
2015-01-18 20:50:31 +01:00
Nicolas Hake fad70eb204 Increase required CMake version to 2.8.9
Debian Wheezy is shipping 2.8.9, and nobody is testing older versions
anyway.
2015-01-18 20:50:30 +01:00
David Dormagen bd04722553 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/HUD.ocd/Controller.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/Script.c
	src/game/C4GraphicsSystem.cpp
	src/game/C4GraphicsSystem.h
	src/game/C4Viewport.cpp
	src/gui/C4GameMessage.cpp
2015-01-15 19:57:01 +01:00
Nicolas Hake 8a729b4c6f Crash handler: Use PRIdPTR format where available
Printing pointers from the crash handler has been broken starting
with an update to MinGW at some point in the past, when they stopped
using printf from MSVCRT, instead replacing it with a private
implementation. Fix this by checking for inttypes.h availability, and
using it (and its format macro) when possible.
2015-01-15 10:18:37 +01:00
Armin Burgmeier ae5f56594a Fix openclonk build with GTK3 2015-01-12 16:25:00 -05:00
Nicolas Hake 804bf41c92 Fix UPnP auto-detection
Auto-detecting UPnP might fail when CMake was invoked multiple times.
This would result in a broken build because the compiler would not find
<natupnp.h>.
2015-01-07 21:15:53 +01:00
Günther Brammer d9e3d9db3d Require filenames to be in unicode, remove iconv usage
Every modern operating system and Clonk uses UTF-8, and windows uses UTF-16
and has its own conversion code.
2015-01-03 20:41:03 +01:00
Günther Brammer 11844a87dd cmake: Re-enable debugging code in debug builds
Partially reverts cf474e99aa.

Cmake starting to whine about usage of a deprecated feature is no excuse
for regressions. The cmake warning even explained how to do this!
2015-01-03 20:40:50 +01:00
Armin Burgmeier 1e77de1044 Merge branch 'lights'
Conflicts:
	src/c4group/C4Components.h
2015-01-03 16:00:20 +01:00
Günther Brammer 70cca346ec cmake: Simplify special handling of the -std=gnu++0x flag 2015-01-01 22:13:57 +01:00
Günther Brammer 0e11bff939 win32: Only set mape cmake property if building mape 2015-01-01 22:13:56 +01:00
Günther Brammer f1c937a143 win32: Only use the HAVE_NATUPNP_H cmake variable for the system header
CMake remembers the variable in subsequent runs, so setting it to true
if the copy from thirdparty/natupnp needs to be used will prevent that copy
from being used after a rerun of cmake.
2015-01-01 22:13:56 +01:00
Armin Burgmeier f65c08f041 Register clonk:// protocol handler on Linux 2014-12-26 21:48:17 +01:00
David Dormagen f89b8c8319 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/Environment.ocd/Cloud.ocd/DefCore.txt
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionMenu.ocd/DefCore.txt
	planet/Objects.ocd/Libraries.ocd/PowerConsumer.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/PowerProducer.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Producer.ocd/Script.c
	planet/System.ocg/ClonkControl.c
	src/gui/C4MouseControl.cpp
	src/landscape/C4PXS.cpp
2014-12-25 15:24:19 +01:00
Tobias Zwick 4981182cf8 Merge remote-tracking branch '_origin/master' into lights
Conflicts:
	src/c4group/C4Components.h
2014-12-15 21:16:40 +01:00
Tobias Zwick d59b1e5e5b reduce version numbering from x.y.z (x does never changes) to y.z 2014-12-12 21:57:52 +01:00
Peter Wortmann 72289713f9 Modular shader system
The idea here is that we compose shaders out of "slices", which can
come from the engine ("built-in"), from files or possibly even from
models. This should allow us to more easily share the code between
different rendering shaders (e.g. for lights / normals).

TODO: Workarounds not yet implemented, so this might degrade less
gracefully.
2014-11-20 11:52:14 +01:00
Armin Burgmeier 88f8f75441 Add ambient lighting
This introduces a new texture, an ambient light map, that is generated
automatically at the beginning of the round by the sky portion of the
landscape. This basically makes everything that is close to sky visible
by default.

The shaders have been adapted so that they deploy direction-independent
lighting for the ambient component, and the current (diffuse) behaviour
for the diffuse component. This makes the shaders use an additional
texture unit that represents the ambient light. We can think about merging
this information into the light texture, but the coordinate systems are
different at the moment, so this could be performed at the stage of light
texture generation.

For meshes, the ambient material is not actually used, but instead a
diffuse light from the front is used. This makes many meshes look more
interesting, maybe also because the ambient material setting of most
meshes are not set correctly at the moment.
2014-11-17 09:35:50 -05:00
Tobias Zwick fd0163ebc6 refactor and document: C4FoWLightSection only calculates the triangles now, C4FoWLight stitches everything together and renders
* intermediate fade triangles are now calculated in C4FoWLight
* rendering takes also place in C4FoWLight, using different C4FoWDrawStrategies
* solved an old TODO from Peter (int -> int32_t)
* refactor and simplify portions of the light vertex calculation code
2014-11-16 18:57:42 +01:00