Files
Bubberstation/code/__DEFINES
2c682cf83e [MIRROR] Things that love the station may no longer leave the station, even when Dr. Anomaly says they should. (#8254)
* Things that love the station may no longer leave the station, even when Dr. Anomaly says they should. (#61335)

Bluespace anomalies detonating Move() things. When something is Move()d, none of the logic in forceMove() or doMove() is called, and thus stationloving things can't tell when they've left the z-level (since that's where the logic for it is).

There are a number of approaches I could have taken: Refactoring anomalies to use different movement code. Refactoring Movement code to send more signals in various scenarios. Refactoring the stationloving component.

I settled on two steps. First, refactoring the component to bring it up to modern code standards. Second, moving the logic for COMSIG_MOVABLE_Z_CHANGED to Moved() so the signal always fires regardless of if Move() or forceMove() or doMove() is used, with an optional var for whether the z-change is communicated to contents. This means the ore box was changed to actually send the signal instead of just returning with no parent call or signal sent. Stationloving ore boxes when?

stationloving procs no longer call SIGNAL_HANDLERs directly. Var names are now more descriptive. Things are renamed and documented. At least for the parts of the code I know.

Probably some other code cleanups.

* Things that love the station may no longer leave the station, even when Dr. Anomaly says they should.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-09-18 21:45:42 +01:00
..
2021-06-11 00:02:39 +01:00
2021-09-11 16:06:17 +01:00
2021-08-21 22:24:46 +01:00
2021-07-02 16:43:51 +01:00
2021-01-23 17:34:58 +00:00
2021-02-28 15:22:40 +00:00
2021-03-26 15:33:14 +00:00
2021-02-22 02:07:01 +00:00

This folder is full of #define statements. They are similar to constants, but must come before any code that references them, and they do not take up memory the way constants do.

The values in this folder are NOT options. They are not for hosts to play with. Some of the values are arbitrary and only need to be different from similar constants; for example, the genetic mutation numbers in genetics.dm mean nothing, but MUST be distinct.

It is wise not to touch them unless you understand what they do, where they're used, and most importantly, how to undo your changes if you screw it up.

  • Sayu