This really breaks badly. Too many untranslatable characters that
completely break things. These are meant to be technical and postion
strings are not translatable either. Revert.
Using the inspector, I found that the teleport-into-box code
overwrites and deletes the gravity and speed values for each
player. This was never intentional.
This fixes that problem. However, that means that my physics estimates
are completely off and I will need to redo the custom physics
values to match the expectations on the server and to make
sure this doesn't massively nerf those values.
oops :(
These are granted to people who have gotten 2 (zoom) or 5 (lobby
sprint) boxes accepted. A telex is sent to inform them, since, they
are likely not on the server when this is done.
I was severely worried about `mbox` and `spool` becoming way
too large way too quick - We just can't store the entire array
of full messages in there all the time.
Instead, both those arrays become simple string arrays of `msgid`
objects, which are nothing more but simple numeric strings. Each
message can now live in mod_storage which should scale a lot better
and make player mboxes a lot smaller - it can now easily hold a few
hundred messages without growing much.
This means all the messages are in mod_storage. We can at a later
point perhaps consider compression.
There's compat code to read old mbox formats, but not spool. Thus
the server spool must be empty when this code is deployed.
This allows players to quickly respond to an existing message
and send a quoted reply to the original user. The reply is
a new draft that has the message quoted and subject prepended
with "Re: ".
After a draft or edit, the terminal always left the context in an
invalid state. I finally found this terrible bug that's been making
the terminal difficult to work with... `button_exit` can _not_ be
used if the context is to be preserved. Of course we also forgot to
properly store the output for the context.
This is a simple backend `telex` mod that takes care of encoding,
storing, spooling and handling mail delivery for players.
Everything is in StorageRef objects. The spool is global and contains
undelivered msgs. Each user has an mbox. These can likely grow
out of bounds and may need size checking to prevent corruption.
The Terminal mod provides the UI. a `telex` command exists and it
has subcommands for send/read/list and working with drafts. The
draft is stored in the player StorageRef and is persistent. This
makes editing and sending messages to more people doable, and you
can re-edit your message later.
There is no SENT folder or anything like it.
There is no REPLY subcommand, but I do intend to include it.
Messages do NOT get delivered to offline players. Those remain
in the spool for 3 days. If the player does not log on, the mail
is RETURNED UNDELIVERABLE. If the returning does not succeed within
30 days, the message is DROPPED.