A single player now receives four times more wave bounty than before, scaling up to four players. It's still challenging but I believe now doable.
Enemies should no longer jump off airships when being shot at.
Fixed a typo in the airship appendto script.
Fixed a possible null pointer when changing weapons.
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.
Search less often. Search for less. And use the proper inventory interface.
Before (first number is relative to MovingBrick.FxMoveVerticalTimer, because that's relatively constant (I guess?)).
59x 00826ms Global.FxBlessTheKingTimer
38x 00537ms Global.FxDeathByFireTimer
1x 00014ms MovingBrick.FxMoveVerticalTimer
After
41x 00328ms Global.FxBlessTheKingTimer
27x 00213ms Global.FxDeathByFireTimer
1x 00008ms MovingBrick.FxMoveVerticalTimer
The error rarely happened when the clonk was attached to a wall solely with its head vertex. CheckScaleTop (Animations.ocd/Script.c) only checked the shoulders and hip vertices.
I also made sure that this.dist (FxIntScaleTimer, line 616) cannot exceed the animation length of "ScaleTop" although that shouldn't have posed a problem.
Removed the windbag from the chest (might also remove it from the buy menu).
The chest below the base will now sometimes contain a gold bar, giving extra money to the player picking it up.
Made sure that no airship remains after fade out.
The only use of C4RTF in its final moments was parsing out plain text
from RTF files anyway, so why even go to all the trouble instead of just
storing plain text in the beginning?