You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both `Actor` and `HeldDevice` have the following functions:
64
64
`HotkeyActionIsActivated(hotkeyType)` returns whether a certain hotkey action is being activated or not.
65
65
`ActivateHotkeyAction(hotkeyType)` activates a certain hotkey action.
66
66
`DeactivateHotkeyAction(hotkeyType)` deactivates a certain hotkey action.
67
+
68
+
- New `Controller` state `WEAPON_RELOADHELD`, which is true every frame reload input is held (as opposed to `WEAPON_RELOAD` which is only true once when pressed).
67
69
68
70
- New `GAScripted` Lua script method `IsCompatibleScene(scene)` to allow Activities to generically decide which Scenes are eligible by returning a boolean value.
69
71
New `GAScripted` INI enumerating property `AddRequiredArea`, replacing Lua file scanning, to allow Activities to explicitly state which areas are strictly required.
@@ -79,8 +81,28 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
79
81
80
82
- New `Attachable` INI and Lua (R/W) properties `InheritsVelWhenDetached` and `InheritsAngularVelWhenDetached`, which determine how much of these velocities an attachable inherits from its parent when detached. Defaults to 1.
81
83
84
+
- Added Lua-accessible bitmap manipulation functions to `MOSprite`s:
85
+
```
86
+
GetSpritePixelIndex(int x, int y, int whichFrame) - Returns the color index of the pixel at the given coordinate on the given frame of the sprite ((0, 0) is the upper left corner!)
87
+
88
+
SetSpritePixelIndex(int x, int y, int whichFrame, int colorIndex, int ignoreIndex, bool invert) - Sets the color of the pixel at the given coordinate on the given frame of the sprite, skipping if the pixel has same color index as given in "ignoreIndex". If "invert" is set to true, only pixels of that color index are set.
89
+
90
+
GetAllSpritePixelPositions(const Vector& origin, float angle, bool hflipped, int whichFrame, int ignoreIndex, bool invert, bool includeChildren) - Returns a list of vectors pointing to the absolute positions of all pixels in the given frame of the sprite, rotated to match "angle", flipped to match "hflipped" and positioned around "origin", providing a full silhouette of the MOSprite. "IgnoreIndex" and "invert" are like above, "includeChildren" denotes whether or not to include all children of the MOSprite (no effect if not at least an MOSRotating).
91
+
92
+
GetAllVisibleSpritePixelPositions(bool includeChildren) - Simplified version of the above, returning a list of absolute positions of the visible pixels of the current frame of the sprite as it is currently drawn.
93
+
94
+
SetAllSpritePixelIndexes(int whichFrame, int colorIndex, int ignoreIndex, bool invert) - Sets all pixels in the given frame of the sprite to the given color index, ignoring and inverting as above.
95
+
96
+
SetAllVisibleSpritePixelIndexes(int colorIndex) - Simplified version of the above, sets all visible pixels of the currently visible sprite to the given color index.
97
+
```
98
+
- Added `Material` Lua function `GetColorIndex()`, which returns the color index of the calling material.
99
+
82
100
- New `ACraft` INI and Lua (R/W) property `CanEnterOrbit`, which determines whether a craft can enter orbit (and refund gold appropriately) or not. If false, default out-of-bounds deletion logic applies.
83
101
102
+
- New `MovableMan` function `GetMOsAtPosition(posX, posY, ignoreTeam, getsHitByMOsOnly)` that will return an iterator with all the `MovableObject`s that intersect that exact position with their sprite.
103
+
104
+
- New `SceneMan` function `CastAllMOsRay(startVector, rayVector, table ignoreMOIDs, ignoreTeam, ignoreMaterial, bool ignoreAllTerrain, int skip)` which returns an iterator with pointers to all the non-ignored MOs met along the ray.
105
+
84
106
</details>
85
107
86
108
<details><summary><b>Changed</b></summary>
@@ -127,6 +149,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
127
149
128
150
-`MOSRotating` Lua function `AddWound` now additionally accepts the format `MOSRotating:AddWound(AEmitter* woundToAdd, const Vector& parentOffsetToSet, bool checkGibWoundLimit, bool isEntryWound, bool isExitWound)`, allowing modders to specify added wounds as entry- or exit wounds, for the purpose of not playing multiple burst sounds on the same frame. These new arguments are optional.
129
151
152
+
-`SceneMan` function `CastFindMORay` now has an extra bool parameter `findChildMOIDs` that denotes whether it also triggers on child MOIDs or not, which defaults to true for the same default behavior as before.
153
+
154
+
-`SceneMan` function `CastMORay` now can also accept a table of MOIDs instead of a single MOID, letting you ignore any arbitrary set of MOIDs.
155
+
156
+
- Techion Laser Rifle now has a constant range rather than being dependent on game resolution.
157
+
130
158
- Various performance improvements.
131
159
132
160
</details>
@@ -149,10 +177,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
149
177
150
178
- Fixed an issue where internal Lua functions OriginalDoFile, OriginalLoadFile, and OriginalRequire were polluting the global namespace. They have now been made inaccessible.
151
179
180
+
- Fixed `MOSprite:UnRotateOffset()` giving the wrong results on HFLipped sprites.
181
+
182
+
- Various fixes and improvements to inventory management when dual-wielding or carrying a shield, to stop situations where the actor unexpectedly puts their items away.
183
+
152
184
- Fixed issue where MOSR `Gib`s, `AEmitter` or `PEmitter``Emission`s, and MetaMan `Player`s were not correctly accessible from script.
153
185
154
186
- Fixed a crash on launch when the `SupportedGameVersion` INI property was not set.
155
187
188
+
- Fixed several issues with the way pie menus and aiming interacts between players, such as opening the pie menu always resetting the M&KB player's aim and pie selection, as well as another issue where the pie menu would fail to appear entirely for some players.
189
+
190
+
- Fixed issue where scripts applied to `MovableObject`s could become disordered in certain circumstances.
0 commit comments