Commit Graph

380 Commits (544c1cbb4bb6da97d30571ff28772660c7ad5969)

Author SHA1 Message Date
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