Commit Graph

547 Commits (master)

Author SHA1 Message Date
Sven Eberhardt f2daa51fa7 Qt Editor: Add "Welcome" dock widget 2016-03-26 01:36:40 -04:00
Lukas Werling 7661b13ba6 Move particle proplist definitions to global Particles.c 2016-03-23 13:24:18 +01:00
Sven Eberhardt b1ac208249 Qt Editor: Add "File->New" menu entry 2016-03-22 23:08:05 -04:00
Lukas Werling b30860112a Use regular Use instead of UseDelayed for gamepads 2016-03-21 18:45:42 +01:00
Lukas Werling f63f4b9ab3 Use regular Throw instead of ThrowDelayed for gamepads
There is no need to delay throwing as aiming is now possible at any time
using the analog stick.
2016-03-21 18:45:42 +01:00
Lukas Werling b8c8bf825c Crosshair: Use analog stick input properly
- Crosshair doesn't work with a dpad anymore. Supporting dpads adds
   unnecessary complexity, as a gamepad user with dpad will never be
   competitive with mouse users.

 - Crosshair isn't bound to item usage anymore, but will always show
   when the analog stick is outside of a deadzone.

Future planned feature: Also use the actual strength to allow
distance input in addition to direction. This is used heavily by
Knüppeln.c4s.
2016-03-21 18:45:42 +01:00
Lukas Werling 93dcb1d729 Improve gamepad assignments
- Add assignments for switching interaction and pickup targets (just
   like the keyboard control).

 - Remove double assignments of the sticks for walking and aiming. The
   left stick is now exclusively for walking and the right stick
   exclusively for aiming.
2016-03-21 18:45:42 +01:00
Lukas Werling 0afa589286 Replace all usage of "bool released" with "int status" 2016-03-21 18:45:42 +01:00
Lukas Werling 19caa65b7b Merge branch 'sdl-gamecontroller' (pull request GH-17) 2016-03-21 16:39:28 +01:00
Maikel de Vries 8d2ab69d03 make GetDefinition work on string parameter
This can be useful to check if a definition is loaded, ideally the implementation is moved to the engine.
2016-03-20 09:15:35 +01:00
Sven Eberhardt 80549ca2cc Qt Editor: Add object creator 2016-03-06 13:06:29 -05:00
Maikel de Vries 9b39f2b18c fix ShuffleArray
When taking a random element from the copy, also consider the last element.
2016-03-05 17:27:20 +01:00
Lukas Werling aa42d1deb7 Make controller button strings nicer
This also removes the controller id from the control definitions,
instead defaulting to 0. This doesn't change anything for now as we only
had definitions for controller 0 anyways.
2016-02-21 18:27:01 +01:00
Lukas Werling 8dd1450e94 Implement "gamepad stick moved" events for analog input
Analog moved events are only sent once per control frame.
2016-02-21 18:26:18 +01:00
Sven Eberhardt e0e09133d6 Qt Editor: Add some string translations. 2016-02-18 00:10:30 -05:00
Lukas Werling 937ddaf722 Update key code strings for game controllers
With the SDL_GameController interface, buttons and axes have actual
names we can refer to. This also allows for advanced mappings using both
sticks (this probably needs script changes) as well as the triggers.
2016-02-13 23:28:00 +01:00
Lukas Werling 4ca5d2bb40 Add variants of Sound(At) taking a proplist for options 2016-02-10 13:14:06 +01:00
Sven Eberhardt 35fcc0ff51 Fix scenario saving of array-typed visibility. Fix ItemSpawn saving and spawn def re-setting. 2016-02-07 13:21:01 -05:00
Maikel de Vries 17fae9c77b add GetSpeed counterpart to SetSpeed 2016-02-03 14:49:05 +01:00
Mark 93ba7c5954 Vendor Library
Extracted the buy menu of the flagpole to a library, so that other objects can implement a buy menu without having to duplicate the code. An overview of the changes follows:

Library_Base:
- Moved auto-sell functionality to Library_Vendor
- Moved buy and sell functionality to Library_Vendor
- Removed the old engine menu for buying and selling

Library_Vendor:
- Added proplist for accessing local variables, avoiding variable clashes
- Added interfaces GetBuyValue, GetBuyableItems, GetBuyableAmount, ChangeBuyableAmount, GetSellValue
- Changed DoBuy: it uses the interface functions, instead of hardcoded base material
- Changed / merged the existing sell functionality and the flagpole sell functionality in DoSell:
   * does not sell items if QueryOnSell returns true
   * sell sound only audible to seller
   * the sold object tries selling its contents first (for example a bow, if it ever were sellable. This may not hold in the settlement games, but adventures would allow it)
   * the sold object ejects any contents before it is removed. These are usually unsellable objects. Previously they would just be removed together with the object. It has to be tested whether this places the items on the ground or at the center of the sold object
   * removed the "sell all" functionality on right-click for the moment.
- Still has some functions from the old base selling: CanStack and GetSellableContents, for the auto-sell functionality
- Fixed a logical error in AllowBuyMenuEntries
- Distinguish between buyer/seller and payer more, so that the logic can easily be changed in one line later
- Allow for runtime overloads of interface functions
- Changed inconsistent variable naming to a more consistent one
- Added namespaces to all sounds, the "UnCash" sound still does not exist
- Added localization strings for insufficient wealth
- Fixed property name error (missing 'e')
- Buy menu is active by default

Flagpole:
- Replaced the custom sell functionality (how many of these do we have actually??) with the sell functionality from Library_Vendor
- Buying menu is allowed if the rule is active

System.ocg/Object.c
- global functions Buy and Sell ask the target if it is a vendor, instead of whether it is a base, and do the callback there.
- renamed the argument so that it is no longer called "base", but "vendor"
2016-01-24 20:11:27 +01:00
Sven Eberhardt d9b8de9ea2 Win32: Fix file deletion from scenario selection dialogue 2016-01-24 00:43:09 -05:00
Sven Eberhardt 28e794654c Add network option to disable UPnP.
Also add some more UPnP failure messages to log.
2016-01-24 00:11:14 -05:00
Nicolas Hake 4b68d82380 planet: Remove Array(Min,Max) in favor of Min,Max
Since the native functions now accept array parameters, we don't need a
C4Script implementation anymore.
2016-01-23 13:49:11 +01:00
Maikel de Vries cfe8008f32 Array.c: add functions to get minimum and maximum of an array (with ints) 2016-01-22 20:54:18 +01:00
Sven Eberhardt b3c0afd521 Add missing string table entries for CON_FallThrough(_Desc). 2016-01-20 21:35:37 -05:00
Julius Michaelis 711df05e1a Add button X to fade through half solidmasks.
Enabled on the elevator case for testing.
2016-01-20 18:58:11 +01:00
Armin Burgmeier 190b4bbae3 Instruct to start a network game when starting a round with >=2 MinPlayers
Instead of asking the user to activate more players, which is no longer
possible as of #1529.
2016-01-11 18:40:59 -08:00
Sven Eberhardt 3dad1c6d81 Turn MaxContentsCount and HandObjects into properties instead of callbacks (Possibly fixes #1553) 2016-01-10 10:41:34 -05:00
Sven Eberhardt dd25f85e6d Warn when assigning duplicate keys #1170 2016-01-09 17:00:21 -04:00
Günther Brammer 7d0990baf9 editor: Don't try to insert manual newlines into error messages 2016-01-08 04:25:26 +01:00
Sven Eberhardt 1933deec44 Fix GUI name and description of interact key #1540 2016-01-07 20:47:18 -04:00
Maikel de Vries 21dead533c killtracing: pass owner and controller correctly in CastObjects 2016-01-03 09:57:06 +01:00
David Dormagen a3e4b620b9 reworked interactions (grabbing etc.)
The player interface is now similar to how picking up works. This should increase acceptance. Also it was pretty fucked up before. The action bar is gone.
The script logic is now outsourced into a new library similar to the other stuff.
Objects can overload the selector for the new interaction (see "call elevator case").

Additional issues hit and resolved when working on this:
Shifting a cursor did not cancel certain actions (and there was no callback for that). This is now solved by adding two new callbacks.

Issues hit and not resolved:
Certain interactions (calling an elevator case, flipping a construction) are in some control library. They should be in the respective objects (and shown via callbacks etc.). Meh.
The internal interface (declaring interactions etc) has a few places where proplists are just translated because the properties are called differently. This is also a fuckup (i.e. a.interaction_object = b.Object) where the properties should just have been called the same in all places from the beginning.
The name "Action Bar" is pretty misleading now as it is no bar. But that's not something visible to the players. todo: cleanup.
2016-01-02 13:02:45 +01:00
Günther Brammer 00a4c6c428 Replace BorderBound DefCore value with BorderBound object property 2016-01-01 22:18:41 +01:00
David Dormagen 9d947c7fb2 make IsProjectileTarget default to true for living beings
..which eliminates the || GetOCF() & OCF_Alive everywhere. It also allows living things to explicitely disable being projectile targets.
This is a lot cleaner imo.
2015-12-28 11:20:11 +01:00
Maikel de Vries 3f7e05caa6 add a global function to draw material triangles 2015-12-28 10:21:49 +01:00
Sven Eberhardt 4d7033718b Fix nil pointer in hit check if shooter gets deleted during no-selfkill-check.
Also rewrite the check using Find_InArray.
2015-12-22 15:15:40 -05:00
Maikel de Vries 8247839455 remove obsolete function GetDefGrab 2015-12-19 10:42:30 +01:00
Maikel de Vries 01dd5fcc27 fix explosion shockwave for vehicles which can be grabbed and pushed
This broke when DefCore Grab was replaced with property Touchable.
2015-12-19 10:42:30 +01:00
Clonkonaut 0108c6667c Made invincible beings (MakeInvincible) immune from shockwaves, windbags and throwing stuff at them. 2015-12-16 23:15:22 +01:00
David Dormagen dcfb986e34 moved sounds into subfolders
This completes http://forum.openclonk.org/topic_show.pl?tid=3215
2015-12-13 22:14:55 +01:00
Sven Eberhardt 1deb7e8176 Add range parameter to ShakeViewport.
Controls the falloff distance, so you can create more localized (or more global) shakes.
2015-12-13 11:11:01 -05:00
Sven Eberhardt 1dca9cf1b5 FightForGidl: No friendly fire and some AI fixes. 2015-12-12 00:02:31 -05:00
David Dormagen cd0e1ef219 cottons: when a fruit pops without being shot, it doesn't drop CottonSeed but directly spawns a plant
This reduces the amount of cotton seeds that lie all over the map. It also eliminates the possibility of being struck dead by falling cotton.
2015-12-09 20:15:05 +01:00
Sven Eberhardt 019cc0d583 Enable immediate tooltips on mouse-over-event for unlabeled icons in lobby and scenario selection (#1132). 2015-12-06 21:03:54 -05:00
David Dormagen 178a91f338 moved some functions that depend on Object.ocd from the global System.ocg to Objects.ocd/System.ocg (#1473)
The global System.ocg should not cause any errors even if Objects.ocd is not loaded. This means that any functions that depend on certain definitions (e.g. FindLocation) will just not be available.
2015-12-02 12:46:02 +01:00
dylanstrategie d284f49b6b Add "ready" button for clients in game lobby.
Signed-off-by: Sven Eberhardt <sven2@goldwipf.de>
2015-11-18 22:49:59 -05:00
David Dormagen eb2b18457e roll: only roll while direction key is held down
This means that you start a roll currently with walking left/right and tapping [down]. OR falling a great height and just holding left/right when landing. When you let go of left/right, you will instantly walk again. This reduces the possibility of the players rolling into an abyss.
2015-11-14 14:58:02 +01:00
Armin cb4dbc3609 Foodstuff heals the Clonk over time. 2015-10-29 11:33:31 +01:00
Julius Michaelis f356c9053a Invert the functionality of CNAT_CollideHalfVehicle 2015-10-21 22:15:33 +02:00
David Dormagen 1bd3354086 contents menu: changed stacking logic (#1424)
Objects now stack iff CanBeStackedWith returns true. The displayed symbol is now the first object of the stack (instead of the definition).
Also fixed barrel to not overwrite the custom name just after setting it.
2015-10-17 12:09:35 +02:00
David Dormagen fcf1d0d843 script guis: added tooltip for default "close" button 2015-10-14 11:22:06 +02:00
David Dormagen 4964fb11ce shift+click support: used undocumented GetPlayerControlState instead of own memory for key state
One of Sven's private functions. I also renamed the control to CON_ModifierMenu1 (from CON_ModifierInventory1), because it's actually supposed to be the menu modifier in general - even if it's mapped on the inventory key.
2015-10-10 00:52:43 +02:00
Sven Eberhardt d136dc22c0 Implement landscape inflammation.
It used to create the non-existent FLAM objects from the engine. Use a script callback to a global function that creates Flame objects instead.
2015-10-09 16:24:16 -04:00
David Dormagen b9420ce68c added shift+click support for menus
Or more generally: added support for any modifier key for any other command without the requirement to define a new command based on the old one plus the key. This can be helpful in situations where the player commands are decoupled from the script engine control handling (e.g. with menus).
Currently Shift+Click is only used by the inventory menu to transfer all items of a certain kind.
2015-10-09 13:14:27 +02:00
Clonkonaut acec73dd51 New global const FIRE_LIGHT_COLOR. Added fire light color to various objects. 2015-10-07 23:26:03 +02:00
David Dormagen 1354c0fd91 split ProjectileHit up into three functions
This better reflects what the function does. "ProjectileHit" was never used solely for projectiles. Neither was everything of that callback ever needed in all places, which resulted in weird flag-parameter hacking and OnStrike-callbacks. Splitting this up also allows customizing different parts of the behavior further (i.e. tumbling) without adding a hundred parameters or flags to the original function.
2015-10-07 07:25:24 +02:00
Sven Eberhardt cc5d43d0b0 Localize loading message for scenario local player control definitions. 2015-10-05 22:38:45 -04:00
Sven Eberhardt 737b1fd8fd Save screenshots in background thread (#998, #1104).
Also ensure music keeps streaming while collecting data for full map screenshot.
2015-09-29 20:48:34 -04:00
Sven Eberhardt ad6a1dfda6 Fix script error on explosion with size zero. 2015-09-26 17:19:24 -04:00
Maikel de Vries 4c66cc4ad7 change time interface to remove connection between System.ocg and Objects.ocd 2015-09-22 23:31:17 +02:00
David Dormagen 745f452afb inventory: allow dropping the hand item on Shift+Throw 2015-09-21 14:21:57 +02:00
David Dormagen 0409f03a17 inventory control: allow picking up all items on shift+up 2015-09-20 18:27:19 +02:00
Sven Eberhardt 95da770892 Move GetDefWidth and GetDefHeight script functions to engine.
They started to appear in script profiler runs and the GetDefVal-implementation is very inefficient.
2015-09-19 21:22:55 -04:00
Clonkonaut 6a9ef8b961 New: Cotton, Cotton Seed, Cloth, Seed Library 2015-09-18 19:44:49 +02:00
Sven Eberhardt 410e570b94 Add localized strings for ToolsDlg foreground and background labels. 2015-09-17 22:30:22 -04:00
Clonkonaut aadbe20f5c Fixed null pointer error in growth effect.
When using negative values for growing (shrinking).
2015-09-17 23:56:44 +02:00
Sven Eberhardt 30a8ef7f0e Store allow_fire parameter of invincibility effect. 2015-09-16 23:30:23 -04:00
Sven Eberhardt aaf5693ecc Remove unnamed controls from control config dialogue. 2015-09-15 20:04:08 -04:00
Sven Eberhardt d1862e0531 Incinerate returns false when effect could not be created.
Happens e.g. if object has a NonFlammable or Invincible effect.
2015-09-14 22:31:51 -04:00
Sven Eberhardt 188b79cd7a MakeInvincible includes MakeNonFlammable by default.
It was always either used in conjunction or forgotten. If someone wants invincibility while still allowing fire (e.g. an unkillable fire golem), there's now a parameter to allow it.
2015-09-14 22:25:27 -04:00
Mark 722a5ad448 Explode: DoShockwave
Added the global function DoShockwave. Updated documentation. Changed the way explosions deal damage: Every object at the center of the explosion gets full damage. Every object inside the explosion radius gets half damage.

(cherry picked from commit 22298a6d1389b5344ebe7aea56f3c371b5ad845f)

Conflicts:
	planet/System.ocg/Explode.c
2015-09-13 13:01:28 +02:00
Mark 15056b823f Explode: Damage override
Added damage override parameter to the explosion functions. Updated the documentation as well.

(cherry picked from commit 59f802c2d3f269d54c12489ac9659ee3ca57a857)

Conflicts:
	planet/System.ocg/Explode.c
2015-09-13 13:01:24 +02:00
Mark 055196155f Explode: if-order
Merged the three if-blocks in DoExplosion() into one if-block. If there was no container in the first if, there should be no container in the following calls.

(cherry picked from commit d504b1109de115f507a09e9e895104bd9552ac53)
2015-09-13 13:01:20 +02:00
Maikel de Vries ad95a39a1c prevent bubble from growing infinitely large 2015-09-11 23:15:23 +02:00
David Dormagen 51bc8dd54d made CastObjects not throw an error when an object removes itself in Construction
It obviously does not throw the object either, though.
2015-09-11 19:08:10 +02:00
Sven Eberhardt 3723024e2f Added implicit layer check to local calls of FindObjects-family functions (#1383).
Also fixed some docs links. Note that GetObjectLayer and SetObjectLayer are still not documented.
2015-09-09 20:19:45 -04:00
Maikel de Vries 01fb44fd49 fix script error when shifting cursor with zero crew members 2015-09-07 16:55:08 +02:00
Maikel de Vries b20ec03832 prevent script error for Loc_Area(nil) call 2015-09-06 11:24:43 +02:00
David Dormagen fa40cfd64d put zooming on Ctrl+MouseWheel (from Shift+MouseWheel)
Shift is now the inventory key. Shift+MouseWheel sounds like it does have some potential, too. (F.e. scrolling through the ammunition in a bow?)
2015-09-05 11:36:27 +02:00
Sven Eberhardt 84fbff95a8 Add Find_Property. 2015-09-02 23:55:45 -04:00
David Dormagen c3c243d31e collection: utilize new key combination functionality; also put collection on shift
Shift instead of Ctrl is more consistent with dropping items, which is on Shift+Number. Incidentally you can now also decide to drop an item to make space for a new one DURING the collection process. Really rather rad.
2015-09-02 23:21:06 +02:00
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
David Dormagen e9a69c4252 collect objects solely via CTRL now
The player can also choose which object to collect by holding CTRL and navigating left/right.
2015-08-30 20:39:50 +02:00
Julius Michaelis 2a9b481087 Add a new variant of vehicle that can be passed from below but be walked on from above. 2015-08-30 22:19:36 +09:00
Sven Eberhardt 44a396497c Fix tree growth in skylands scenario (#750) and rework alt tree texture.
Tree growth now implemented using an overload of the grwoth function. Also made the alternate tree skin in skylands a bit more colorful
2015-08-27 23:29:06 -04:00
David Dormagen 0d102d2184 explosion: fix nil-pointer when object removes itself on death
After doing damage to an object, you cannot be sure that the object persists. It might have been blown to smithereens. So, catch that case.
2015-08-20 13:47:27 +02:00
David Dormagen b3f81ef3ed increased lava damage
The lava now does not only do the damage via the fire system but also does some direct damage. Further increasing it might be good. Test it now.
2015-08-16 23:14:16 +02:00
David Dormagen a27888a623 the Clonk now performs a roll when pressing [down] (even when walking)
People have complained that the implicit roll (if you don't know how it worked) could lead to death and severe injury. The roll is now explicit. Always and everywhere.
It doesn't have any other effect though; todo: reduce hit area and/or squash vertices of Clonk during roll
2015-08-07 16:12:41 +02:00
David Dormagen 36544bd56c Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/Libraries.ocd/Producer.ocd/Script.c
	planet/Objects.ocd/Structures.ocd/Foundry.ocd/Script.c
	planet/Objects.ocd/Vegetation.ocd/Branch.ocd/Script.c
	planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/Script.c
	planet/System.ocg/FindLocation.c
2015-08-02 19:24:04 +02:00
Sven Eberhardt ed2e56c3fa Fix Loc_Space and allow direction parameter instead of just horizontal/vertical.
The old implementation was buggy as it would disallow the location if it had too much space (and PathFree2 returns nil). It also doesn't make sense to ask for a location that has space in either direction of a dimension because the location is not automatically adjusted to lie at the center of that space. For example, it would effectively cause fish to spawn directly at walls sometimes.
2015-07-31 00:42:01 -04:00
Sven Eberhardt 0d48105b46 Added shape library.
Also fixed some coconut tree reproduction issues.
2015-07-31 00:42:01 -04:00
Clonkonaut cdb4a1b153 Convenient wrapper for Environment_Time: HasDayNightCycle, SetTime, GetTime, IsDay, IsNight 2015-07-23 12:58:19 +02:00
Maikel de Vries 73fb8cf5e1 add RandomElement function to get a random element from an array 2015-07-20 18:11:16 +02:00
Sven Eberhardt 00e2e10e33 Fix GetSurfaceVector when called near a surface.
Parts of the function still assumed the old proplist result format.
2015-07-18 20:45:39 -04:00
Clonkonaut c7c970822d Added Rectangle_IsInside
Checks whether a given position is inside a given rectangle.
2015-07-14 23:26:26 +02:00
Maikel de Vries f492aa5e71 FindLocation: implement material val check and wall check conditions 2015-07-12 22:18:43 +02:00
Mark ecb24dc927 CastObjects: Array
CastObjects returns an array now, so that further function calls can be issued on the created objects.

(cherry picked from commit 184943fe6f720ba26402764bb3b182d550370e74)
2015-07-11 17:48:14 +02:00
Mark a6bab72499 Vector Library conformity
GetSurfaceVector() and the Coral object now use the array format of the vector library for vectors, instead of proplists.

(cherry picked from commit 03f644e56cdc99a84df57451ed1bac361c0c896d)
2015-07-11 17:47:56 +02:00
Sven Eberhardt 9042450399 Fix DoExplosion from global context.
Avoid null pointer and do play sounds.
2015-07-09 01:03:34 -04:00
Sven Eberhardt fe46689d3e Make ExplosionEffect function overloadable. 2015-07-08 15:55:33 -04:00
Maikel de Vries 91cd15c40c reimplement alt use on right mouse button
This replaces throwing then controlling or inside a vehicle, throwing items remains on RMB as is.
2015-06-28 09:44:50 +02:00
Maikel de Vries f69edf3274 add GetPlayers and GetPlayerByID to loop more easily over players 2015-06-17 23:12:40 +02:00
Maikel de Vries 6d096f608d add Find_Team as FindObject criteria 2015-06-17 20:15:24 +02:00
Maikel de Vries 80c7dbe674 add functions to correctly retrieve the object's current shape 2015-06-08 21:06:18 +02:00
Maikel de Vries 126ae5b179 fix C4Script runtime error in ShiftCursor 2015-06-05 19:16:43 +02:00
Maikel de Vries 3580605ba2 fix ToEmString and introduce ToPercentString for GUIs
The previous implementation could not handle value = -1 and factor = 10 or value = 1 and factor = 100, nor factors which are not powers of ten.
2015-06-05 12:06:02 +02: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
Maikel de Vries a0f95c0e93 add global function to get players in a team 2015-06-01 18:52:58 +02:00
Maikel de Vries a9cd57eae8 remove logging message in Explode() 2015-05-17 14:12:49 +02:00
Maikel de Vries 42a7f03788 kill tracing for incinerated dynamite (box) and iron bomb 2015-05-17 14:01:26 +02:00
Maikel de Vries 03b049b0ca add cause_plr to OnShockWaveHit callback
This can be used to damage and kill tracing for objects which die, receive damage or are destroyed on shockwaves.
2015-05-16 21:16:01 +02:00
Maikel de Vries 0157e7b496 remove obsolete BuildTurnTo defcore entry 2015-05-11 21:47:55 +02:00
Sven Eberhardt 21500a81a9 Fix pump to clear the last row of pixels (#1057) and allow pumping from pump without source pipe.
ExtractMaterial has been changed to be able to slurp in from the most distant horizontal position rather than the closest to the extraction top center.

Also speed up ExtractMaterial for the common case of no required horizontal shifts.
2015-05-01 18:13:41 +02:00
Sven Eberhardt 116a5b4ae6 Add Find_InArray (#1073). 2015-04-28 18:59:50 +02:00
David Dormagen 7d1d70f017 removed NoCollectDelay from engine; it's now handled by script
Which allows a lot more fine-grained controls as all the control and UI stuff is now also in script anyway.
2015-03-26 12:23:20 +01:00
Maikel de Vries 85c2173404 fix script error for the fire effect 2015-03-23 19:50:29 +01:00
David Dormagen df56689946 added Armin's particle fire
http://forum.openclonk.org/topic_show.pl?tid=3070
Only some optimizations have been added.
2015-03-22 10:22:15 +01:00
David Dormagen 379d189787 now always use on leftclick and throw on rightclick (drop if you click your Clonk or below); also removed some old references to the right mouse button (UseAlt) 2015-03-09 13:33:31 +01:00
Sven Eberhardt 90cca08d63 Add /todo message board command.
Adds text to local TODO.txt file. Useful for taking notes quickly e.g. when testing new scenarios in a network game.

TODO filenames are configurable. Default file is TODO.txt in the scenario file (if it's unpacked) and TODO.txt on the current path if access to the first location failed.
2015-03-05 16:04:07 +01:00
Maikel de Vries ba9a5fd757 fix fire spreading (#1276) thanks to Armin 2015-02-18 21:52:39 +01:00
Maikel de Vries 1687b34fd3 fix script runtime error in fire effect when object is deleted on incineration 2015-02-17 20:55:17 +01:00
Günther Brammer a92c22a7b3 Merge various build system fixes and cleanups 2015-01-25 18:50:29 +01:00
Sven Eberhardt 7e45475cbe Scenario saving: Concatenate multiple equal calls to CreateContents. 2015-01-18 14:28:10 +01:00
Sven Eberhardt d33dfd6c55 Scenario Saving: Select between CreateObject/CreateObjectAbove and fix some unnecessery property saving issues.
* CreateObject for goals/rules/environment, rotated, contained and earth objects
* Allow properties to overwrite default behavior of CreateObject vs CreateObjectAbove
* Random initialization of seaweed phase instead of saving it
* Do not save color of ColorByOwner objects that have their owner color
* Fix block spacing between objects of same type if objects of different type occur inbetween but are not saved
2015-01-17 17:00:58 +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
Maikel de Vries 91cd68d641 improve explosions propagating inside containers
This fixes the double damage done to containers and iterates through all parent containers until one is found which contains the blast
2015-01-15 17:46:54 +01:00
Maikel de Vries 4ea0cb0ca6 make ContainBlast a property instead of DefCore entry 2015-01-15 17:46:53 +01:00
Mark f9369f9eb4 Different implementation of CreateObject() (#1214)
CreateObject() now does not reposition an object after it has been created, but rather grows it around the center of said object.
To that end a new parameter has been added to DoCon() and SetCon() and the documentation has been updated.
2015-01-13 21:03:27 +01:00
Mark 850bf1b9d4 CreateObject/CreateObjectAbove (#1214)
Renamed CreateObject() to CreateObjectAbove() and replaced all occurrences in script files.
Added CreateObject(), the function may need a rewrite though, see comment in code.
Updated documentation
2015-01-11 19:02:03 +01:00
Maikel de Vries 2d741dfb70 fixed mixed up variables in Loc_Wall() 2015-01-07 00:04:44 +01:00
Tobias Zwick 7e570c05b4 improve the smoke trail and fireworks with the new particle system a bit 2015-01-04 22:09:02 +01:00
Tobias Zwick 0993b3e2a2 change shake strength by distance calculation the same as for audibility 2015-01-03 23:25:28 +01:00
Tobias Zwick b64d379579 tweak fadeoff of the shake effect 2015-01-03 22:53:01 +01:00
Tobias Zwick 659a697cf2 fix ShakeViewport effect, especially for explosions
* The shake effect used to have a target object, which made it vanish as soon as it is removed (and on Explode, it is immediately). So, the shake was never visible. The shake effect is now global and manages all shakes currently on the landscape
* Additionally, if there are several explosions that cause a shake, they were not added up correctly
2015-01-03 22:53:01 +01:00
Sven Eberhardt 98093961ec Add packet logging option.
This should reduce log spam in network games.
2015-01-03 18:15:41 +01:00
Günther Brammer 3bb75fabf1 Remove unused language strings from Language*.txt 2015-01-01 22:13:56 +01:00
Sven Eberhardt 2b997b994a Add light effect to explosions.
Currently, all players see the light. In the future, we may want limit it to the controller of the explosion.
2014-12-31 13:36:22 +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
Nicolas Hake 6c2995fe41 Squelch varargs warnings in System.ocg
The engine (extra)warns whenever you use Par() or ... inside of a
function that is not declared as taking a variable number of arguments.
Change the declaration of all System.ocg varargs functions so it is
immediately obvious.
2014-12-12 23:27:17 +01:00
Maikel de Vries c6802b8776 increase game content version entries to 6.0 2014-12-12 22:58:16 +01:00
Armin Burgmeier 192dddec6f Use the new shader system for rendering sprites
This now also avoids the use of conditionals in shaders by using different
shaders instead.
2014-11-24 14:51:08 -05:00
David Dormagen 48bc48159e Script GUIs: fixed last remaining old method names 2014-10-23 23:28:06 +02:00
Maikel de Vries b5a84eba87 move TransposeArray to System.ocg functions 2014-10-19 10:49:12 +02:00
Sven Eberhardt d80ef4ae5e Fix nil pointer if a dragged object is deleted between control creation and control execution. 2014-10-18 01:22:47 +02:00
David Dormagen c09e9880e2 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
2014-10-13 18:54:05 +02:00
David Dormagen 6a875a1b29 CustomGuis: renamed several script functions to be more consistent; removed Gui_AddMargin as it is obsolete
All calls that reference an existing Gui window now start with "GuiUpdate" (exception: GuiClose). All other functions are always to be called DURING menu creation and layouting.
The "Margin" property replaces Gui_AddMargin.

find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/CustomGuiOpen/GuiOpen/g'
find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/CustomGuiClose/GuiClose/g'
find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/CustomGuiSetTag/GuiUpdateTag/g'
find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/CustomGuiUpdate/GuiUpdate/g'
find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/Gui_AddCloseButton/GuiAddCloseButton/g'
find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/Gui_UpdateText/GuiUpdateText/g'
find . -type f -name "*.c" -print0 | xargs -0 sed -i 's/Gui_AddSubwindow/GuiAddSubwindow/g'
2014-10-11 11:51:26 +02:00
David Dormagen 049088be78 CustomGUIs: major rework of layouting & controls; better integration of C4GUI 2014-10-11 11:29:02 +02:00
Armin Burgmeier e5d1182cce Add the Anim_RDir AVP 2014-10-09 17:11:13 -04:00
Armin Burgmeier e4ad7ddc2d Rename Anim_RDir to Anim_AbsRDir 2014-10-09 17:07:52 -04:00
Armin Burgmeier 9fb0cdbdef Add a min_rdir parameter to Anim_RDir 2014-10-09 17:05:24 -04:00
Armin Burgmeier cbdc6040e7 Add the Anim_Dist AVP 2014-10-09 17:00:26 -04:00
Sven Eberhardt ca64fad8b5 Fix lobby team distribution settings hotkeys (#1133) 2014-10-09 20:40:01 +02:00
Nicolas Hake 67c0deae38 Remove leading + from IDS_MSG_AUTOFRAMESKIP DE translation (Github #2) 2014-10-06 16:03:11 +02:00
Sven Eberhardt 3fb86e9ea9 Fix null pointer exception when objects are removed in response to a hit callback. 2014-10-03 21:57:38 +02:00
David Dormagen 952f06b173 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
2014-09-29 11:47:09 +02:00
Sven Eberhardt b899e8944c Base variable naming in scenario saving on saved object count of same type name instead of object number.
This should yield shorter, more predictable names reducing changeset size when an Objects.c file is updated.
2014-09-22 19:21:25 +02:00
Sven Eberhardt 4d36f3a2d2 Some missions fixes/adjustments
* Plane with same color in all missions
* Sequence multiplayer fix
* Heavy smoke is a particle parameter
* Goal graphics fix
* Fix rocky pick direction after dialogue initiation from left
* Dialogue supports sections
* Hat moved to decoration for other missions
2014-09-21 16:36:05 +02:00
Maikel de Vries 03c88c34a3 removed WebCode from league string 2014-09-19 20:55:11 +02:00
Sven Eberhardt 6569a47e37 Change MessageWindow (i.e. the default goal messages) to use decorated messages instead of menus.
Currently, it opens a small window in the bottom right corner which blocks all player control and is not intuitive how to close. Now it's a message that will automatically disappear after a while (If the player hasn't finished reading, he can just click the goal icon again).
2014-08-21 19:55:32 +02:00
Sven Eberhardt cbb321307f Scenario saving fixes: Layers, fishes, sproutberries.
Do not save sprout berries that are still attached to sprouts. Omit some unnecessary properties for fishes.
2014-08-14 17:18:26 +02:00
David Dormagen 5722339e83 Merge branch 'master' into Controls
Conflicts:
	planet/Objects.ocd/HUD.ocd/Controller.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/Structure.ocd/Script.c
	src/gamescript/C4GameScript.cpp
	src/gui/C4GameMessage.cpp
	src/gui/C4Gui.h
	src/gui/C4GuiDialogs.cpp
	src/gui/C4GuiWindow.cpp
2014-08-13 11:52:41 +02:00
Sven Eberhardt b1db0c7918 (Re)implement text completion in dialogue text windows as an async control. Default to Space, i.e. MenuOK. 2014-08-10 20:58:26 +02:00
Sven Eberhardt 834566cf5e Make smoke a bit smaller.
It somehow got really large and weird since the particle changes.

It could still get some polishing, but at least it's a bit less annoying now.
2014-07-21 17:28:11 +02:00
Sven Eberhardt 5cd9b915b0 Added some dialogue functions and speaker portraits. UpdatedAddMenuItem and CustomMessage to allow more customization for picture graphics.
I would prefer to render the models for speaker portraits directly. However, it seems like it's not currently possible to clip or render models to offscreen surfaces.
2014-07-05 15:25:30 +02:00
David Dormagen 6217a84f0b added GetSurfaceVector() to Math.c which can be used to get informations about the surface of the landscape at some point (f.e. for bouncing projectiles) 2014-06-27 20:46:48 +02:00
David Dormagen fb1ee2f88f the Trans_* mesh-transformation-functions are now implemented in the Engine instead of System.ocg 2014-06-27 20:36:47 +02:00
Maikel de Vries 7737759ffb fix ShuffleArray() function 2014-05-19 20:20:20 +02:00
Sven Eberhardt 91c2d49d2a Remember league login name and password token.
Also removed some CUID/Webcode authentification code from engine.
2014-05-18 15:10:00 +02:00
Sven Eberhardt 45f69abb6e Revert engine-side league localization
The engine cannot know about all future league strings. Instead, localize server-side using language id from http request.
2014-04-27 15:42:47 +02:00
Sven Eberhardt 50a5862b7a Store modified mesh material assignments in saved scenarios. 2014-04-18 14:20:10 +02:00
Maikel de Vries c70c44387f Fix some DoDamage issues
Fire.c use correct number of parameters
Axe.c implemented FX_Call_DmgChop according to documentation
2014-04-06 17:15:13 +02:00
Julius Michaelis e5b7ef5b80 AutoFrameSkip: Graphics option to reduce lag by slow
Skips drawing every second frame if drawing the previous frame was too slow
Setting is controlled by game host
Default: on

Imported from Clonk Rage

From e6e680f49ac50a352e9a051ee21622e7f00648b6 Mon Sep 17 00:00:00 2001
From: sven2 <sven2@786b8e90-9c09-0410-89a9-bccc6ef1e79b>
Date: Sat, 21 Sep 2013 21:34:44 +0000
Subject: [PATCH] + AutoFrameSkip: Graphics option to reduce lag by slow
 clients in network games

git-svn-id: https://www.clonk.de:83/svn/clonk/stable@14501 786b8e90-9c09-0410-89a9-bccc6ef1e79b
2014-04-03 14:53:12 +02:00
David Dormagen 5c17b48bc2 Merge branch 'master' into Controls 2014-03-26 23:58:24 +01:00
Julius Michaelis c49bc99efe Options/Graphics: tidy up
Remove Config.Graphics.ShowAllResolutions
2014-03-17 22:29:39 +01:00
Nicolas Hake 01d5507c22 lang/de: Don't use 'ü' as accelerator
Taking over a player had the 'ü' key assigned as accelerator. Since that
doesn't work anyway, switch to a more conservative 'n'.
2014-03-11 00:30:34 +01:00
Nicolas Hake 7a65ebade8 Warn on unsupported accelerator keys
Chars outside the basic latin alphabet don't actually work as
accelerator keys. Emit a warning when encountering them.
2014-03-11 00:26:13 +01:00
David Dormagen 537846d76d menus: fixed two possible null-reference errors 2014-02-28 22:39:14 +01:00
David Dormagen 0da9293686 allow Clonk::SetMenu to also take a custom GUI ID; cleaned up some menu-related mess (like not handling unclosable menus correctly) 2014-02-26 12:03:27 +01:00
David Dormagen 4346da8e4e custom GUIs: replace position properties X/Y/Wdt/Hgt with Left/Right/Top/Bottom that take strings instead of arrays, also change absolute unit from pixels to em
Before you'd define the X coordinate of the top-left corner of a window with X = [500, -40], now you do Left = "50%-4em". The em values currently do not scale with font-size yet, but it is important to do the formal change as early as possible to not have to do all work twice. Scaling of font and thus menus can be implemented later.
2014-02-17 15:46:36 +01:00
David Dormagen fa4638d6c0 custom GUIs: change order of arguments of GuiAction_SetTag from (target, id, tag) to (tag, id, target) 2014-02-16 17:18:34 +01:00
Tobias Zwick 3a8c8d7c3b selecting the clonks via hotkey was all backwards (#1031)
e.g. pressing ctrl+3 selected 1st clonk if there are 3 in the crew
2014-02-16 13:15:07 +07:00
David Dormagen a0a76c051d custom GUI: removed "CreateCustomMenu" which was only a wrapper for "CreateObject" - use "CreateObject" now
This should reduce the confusion about why the function behaves so differently from Gui_Open: the style objects only provide an interface for those easy GUIs, they are not really part of the GUI system.
2014-02-15 18:59:33 +01:00
David Dormagen 06ac00ace8 Merge branch 'master' into Controls
Conflicts:
	CMakeLists.txt
	Makefile.am
	planet/Objects.ocd/HUD.ocd/Controller.ocd/Script.c
	planet/Objects.ocd/Items.ocd/Weapons.ocd/Club.ocd/Script.c
	planet/Objects.ocd/Libraries.ocd/ClonkControl.ocd/Script.c
	src/control/C4Control.cpp
	src/control/C4Control.h
	src/gamescript/C4GameScript.cpp
2014-02-15 14:44:57 +01:00
David Dormagen a91d62f36a renamed Menus.c to CustomGUIs.c to be consistent with the other (already renamed) parts 2014-02-15 14:40:10 +01:00
Tobias Zwick e1cff59418 fix statistics in player selection dialogues ignore linebreaks (#1027)
I was unable to find the original commit that might have caused this, so I passed the constructor of the TextWindow an extra parameter to treat "|" as linebreaks and changed the translation files.
2014-02-03 01:11:05 +07:00
Tobias Zwick 1e359bddf9 fix typo in english translation 2014-02-01 19:51:42 +07:00
David Dormagen 425a221aff adjusted some particles (f.e. smoke slightly brighter, foundry more subtle)
see http://forum.openclonk.org/topic_show.pl?pid=25749#pid25749 for further information
2014-01-25 15:51:05 +01:00
Sven Eberhardt 55083802b5 Updated SaveScenarioValueToString to recurse into arrays and allow custom save names for defs/proplists 2014-01-22 20:28:41 +01:00
Sven Eberhardt 21c132d2cb Fix StaticSaveVar saving to save string, not object pointer. 2013-12-30 12:24:41 +01:00
Sven Eberhardt 0db19586c8 Save StaticSaveVar as property in Objects.c
Otherwise, you'd have to re-set it every time you edit objects files in the editor.
2013-12-30 03:09:13 +01:00
Sven Eberhardt 49b2c75475 Added helper function Particles_Colored - creates a colored version of a base particle. 2013-12-29 15:08:52 +01:00
Sven Eberhardt 5094cc5c1b Reworked "Save as scenario" option in editor to write a script file instead of Game.txt. 2013-12-27 17:10:09 +01:00
Tobias Zwick ac4ac04558 Merge branch 'master' of ssh://git.openclonk.org/openclonk 2013-12-18 12:48:14 +07:00
Tobias Zwick db6a31cc7a add localized error for each player that could not be loaded (#693) 2013-12-18 12:47:08 +07:00
David Dormagen a10c9316ef renamed DynamicParticles* to Particles* and CreateParticleEx to CreateParticle 2013-12-17 22:32:01 +01:00
Tobias Zwick 666a51b3d9 update documentation around DefCore, remove some obsolete fields 2013-11-30 14:14:18 +07:00
David Dormagen 54fdb2cec1 updated some remainers of the old particle system to use the new one 2013-11-28 23:38:26 +01:00
David Dormagen 0b346d67ff made pretty fireworks (with new particle system) 2013-11-28 23:28:33 +01:00