CR+LF added to new lines, created a global variable log_end that can be used
on newlines
log_misc("blahblah...[log_end]\nMoreblahblah[log_end]")
put [log_end] prior to any \n and it will show up correctly in windows.
Also created log_misc() proc to log to diary, and removed a bunch of
diary << stuff all over the place.
Some players are having issues with NanoUI not opening up or acting funny
before the only fix was to have them log out, and log back in, check if that worked.
If not log out, delete cache log back in, if that don't work not much can be done.
Now we just skip the whole logout login thing and force the server to send the files
to their client once again skipping the need for their character to take a dirtnap for a moment.
Before: Every tick each HUD item would recalculate and redo images for every mob in view. For items like the secHUD where we're transversing implants and the various records this gets very expensive.
After: Mobs use their hud_list variable to store varius huditem images, when conditions change for those specific huditem images it updates the specific ones on demand. As a backup every 30 ticks or so the mob will update all of their hud_list.
Also: moved proc/RoundHealth() from 2 seperate locations into __HELPERS/mobs.dm
Conflicts:
code/modules/mob/living/living.dm
Before: Every tick each HUD item would recalculate and redo images for every mob in view. For items like the secHUD where we're transversing implants and the various records this gets very expensive.
After: Mobs use their hud_list variable to store varius huditem images, when conditions change for those specific huditem images it updates the specific ones on demand. As a backup every 30 ticks or so the mob will update all of their hud_list.
Also: moved proc/RoundHealth() from 2 seperate locations into __HELPERS/mobs.dm
We won't regenerate the list for Manifests every tick while viewing the manifest, instead we have a global variable for it PDA_Manifest that we Cut() if there is a change to the manifest then when the next player goes to view the manifest on their PDA it will recreate the list that one time.
Some sections of the PDA will no longer auto-refresh every tick because...well that's dumb.
Modes that will no longer autoupdate at all: Viewing medical/sec records, viewing notes (will update when you change them of course), and the station alert menu.
Modes that will only autoupdate every 5 ticks: APC list (Because it's a huge fuck off list), the manifest, mulebots and secbots screens, supply requests/orders, and janitor supply locator)
Some other things that I just can't remember right now.
Because of the wrong direction of this sign, every single solar array was being checked for occlusion every tick.
This should fix that right up.
Trackers set to update their angle only when the sun does.
Solar panels set to calculate occlusion every minute (was every tick (though thought to be set to every 6 minutes (36 degrees)), now checks every 6 degrees of sun movement or so)
We discovered that most of the problems were were having was because of BYOND passing lists (e.g. SE and UI) by-ref instead of the assumed by-val.
This commit adds dna.Clone() and (UI|SE).Copy() where needed. These should be used where DNA or SE/UI lists are COPIED, otherwise changes made in the reference will affect the real strand.
This change also messes with the gene activation logic.
Conflicts:
code/game/dna/dna2_domutcheck.dm
code/game/dna/genes/powers.dm
We discovered that most of the problems were were having was because of BYOND passing lists (e.g. SE and UI) by-ref instead of the assumed by-val.
This commit adds dna.Clone() and (UI|SE).Copy() where needed. These should be used where DNA or SE/UI lists are COPIED, otherwise changes made in the reference will affect the real strand.
This change also messes with the gene activation logic.
Since we can't edit the verbs variable directly this allows us to do so safely.
It builds a list of procs and verbs for the mob type and allows the admin to add it.
Want to add self_destruct to a cyborg? It will show up in Commands tab
Want to add RevConvert to a regular Rev? Feel free!
Want to remove whisper from some loud mouth? Go wild!
Adding procs that aren't usually available to players will create a commands tab, primarily this is for debugging since Advance ProcCall on mobs is awful.
I figured this would be useful when I noticed traitorpanel added RevHeads didn't get their RevConvert verbs and I could find no way of adding it otherwise.
Also fixed some grammar in the station blueprint code.
Conflicts:
code/game/objects/items/blueprints.dm
code/game/objects/items/devices/uplinks.dm
code/modules/admin/verbs/debug.dm
code/modules/clothing/masks/gasmask.dm
code/modules/detectivework/scanner.dm
code/modules/flufftext/TextFilters.dm
code/modules/mob/living/carbon/human/say.dm
code/modules/mob/living/silicon/ai/say.dm
* Transfer open ui instances when transferring a user to another mob
* Runtime fixes in the NanoUI Topic and nanoclose client verb
* Return focus to the map when a NanoUI is opened
DNA now stores blocks internally as numbers and only makes the uni_identity and struc_enzymes strings when something has changed. This is vastly more efficient.
In addition, the API for using it has been simplified. Common tasks, such as setting a sub-block, or getting a value from the block, are handled entirely by the DNA datum with simple, easy-to-use procs.
Tested on local server, but may need balancing and additional look-over since the code is from our server (/vg/) and I likely broke or forgot something.