All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
Defined all the existing light_color values.
Moved their definitions to colors.dm
Made white the default color. It was so already, but that was very obscured.
Moved the atom light-related variables to the atom definition.
Wrapped changes to variables such as light_color into procs that report the event through signals.
Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
Cleaned up a little bit of code in where new variables were defined before redefinitions.
This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.
There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.
* Unicode support Part 2 -- copytext()
This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.
I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````
with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.
This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.
* Makes the code functional
* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.
* Removes ninjaspeak since it's unused
* Reverts italics-span back to no color.
* Cleans up many extra spaces and indents.
* Adds 'hear' span class.
* Replaces all 'italics' used in heard messages with 'hear'.
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
* 1/4 done? maybe?
* more
* stuff
* incremental stuff
* stuff
* stuff & things
* mostly done but not yet
* stuffing
* stuffing 2: electric boogaloo
* Git Commit and the Kingdom of the Crystal Skull
* make it actually compile
* found more stuff
* fixes
* fix AI laws appearing out of order
* fix windows
* should be the remaining stuff
* this time for real
* i guess it should compile too
* fix sechuds
* adds signal and modifies each call of afterattack to call it's inherited proc
* uses new macro for sendsignal()
* map fuck
* skip precommithooks
* combine and negate 2 ifs
* Fixes engraved messages
🆑 coiax
fix: Curator soapstones now successfully leave messages for future
shifts.
del: Soapstones can no longer be purchased in cargo.
del: The janitor no longer starts with an empty soapstone.
experiment: Engraved messages can be left anywhere in the world, but be
wary that the terrain of places like lavaland and space can change shift
to shift.
/🆑
- Curators are now the sole owners of soapstones at shift start. This
means that a huge cargo point bounty shift will not overwhelm the
station with messages.
- Curators have an additional thing to curate.
- All the snowflake name bullshit is dumb, they're called soapstones,
they're plasma bluespace chisels, okay
* Fun messages for the log
* Log world
* Good to go
* Add the system for managed global variables
* Travis ban old globals
* So you CAN inline proccall, that's neat
* Fix that
* master.dm
* Remove the hack procs
* Move InitGlobals to the proper spot
* configuration.dm
* Fix the missing pre-slash
* clockcult.dm
* This is probably for the best
* Doy
* Fix shit
* Rest of the DEFINES tree
* Fix
* Use global. for access
* Update find_references_in_globals
Always hated that proc
Whoever made it must've bee a r e a l idiot...
* __HELPERS tree
* Move global initialization to master.
Fix the declaration
* database.dm
* Dat newline
* I said DECLARATIVE order!
* Here's something you can chew on @Iamgoofball
* game_modes.dm
* Fix this
* genetics.dm
* flavor_misc.dm
* More stuff
* Do it mso's way. Keep the controllers as global
* Make master actually see it
* Fix
* Finish _globalvars/lists
* Finish the rest of the _globalvars tree
* This is weird
* Migrate the controllers
* SLOTH -> GLOB
* Lighting globals
* round_start_time -> ticker
* PAI card list -> pai SS
* record_id_num -> static
* Diseases list -> SSdisease
* More disease globals to the SS
* More disease stuff
* Emote list
* Better and better
* Bluh
* So much stuff
* Ahh
* Wires
* dview
* station_areas
* Teleportlocs
* blood_splatter_icons
* Stuff and such
* More stuff
* RAD IO
* More stuff and such
* Blob shit
* Changeling stuff
* Add "Balance" to changelogs
* Balance for changelog compiler + Auto Tagging
* Update the PR template
* hivemind_bank
* Bip
* sacrificed
* Good shit
* Better define
* More cult shit
* Devil shit
* Gang shit
* > borers
Fix shit
* Rename the define
* Nuke
* Objectives
* Sandbox
* Multiverse sword
* Announce systems
* Stuff and such
* TC con
* Airlock
* doppllllerrrrrr
* holopads
* Shut up byond you inconsistent fuck
* Sneaky fuck
* Burp
* Bip
* Fixnshit
* Port without regard
* askdlfjs;
* asdfjasoidojfi
* Protected globals and more
* SO MANY
* ajsimkvahsaoisd
* akfdsiaopwimfeoiwafaw
* gsdfigjosidjfgiosdg
* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!
* facerolll
* ASDFASDFASDF
* Removes the unused parts of dmm_suite
* WIP
* Fix quote
* asdfjauwfnkjs
* afwlunhskjfda
* asfjlaiwuefhaf
* SO CLOSE
* wwwweeeeeewwwww
* agdgmoewranwg
* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?
* Fix syntax errors
* 100 errors
* Another 100
* So many...
* Ugh
* More shit
* kilme
* Stuuuuuufffff
* ajrgmrlshio;djfa;sdkl
* jkbhkhjbmjvjmh
* soi soi soi
* butt
* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING
* lllllllllllllllllllllllllllllllllllllllllll
* afsdijfiawhnflnjhnwsdfs
* yugykihlugk,kj
* time to go
* STUFFF!!!
* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!
* ngoaijdjlfkamsdlkf
* Break time
* aufjsdklfalsjfi
* CONTROL KAY AND PRAY
* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Goteem
* Fix testing mode
* This does not belong in this PR
* Convert it to a controller
* Eh, fuck this option
* Revert controllerization Ill do it some other time
* Fix
* Working controllerization
* FOR THE LOVE OF CHRIST PROTECT THE LOGS
* Protect admins and deadmins
* Use the inbuilt proc
* Dynamic map loading prototype
* Get the title screen working
* Fixes the random pod bugs
* map configs
* Add back the asteroid
* Ignore the rotate file
* Fix some shit
* More shit fixes
* Babby's first json
* Cyberboss confirmed shitcoder
* Makes map rotation great again
* Moves the map defines
* Delete tgstation2.dm
* Convert runtimestation
* Convert PubbyStation
* Convert OmegaStation
* Convert Metastation
* Convert Delta Station
* Lol file extensions
* Reee line endings
* Take out the trash
* Fix loadallmaps.dm
* Deltaassssssstation?
* Fix travis
* Did I ASK you to change the line endings?
* Remove votable maps
* Cleanup
* Previous config. Load configs in New. Fix splash
* Fix this
* More generic minetype
* STOP TOUCHING THE LINE ENDINGS!!!
* Add some flexibility to /obj/screen/splash
* Fix the shit
* Update gitignore
* Smooth transition from last map
* Better check
* Missed this map rotate check
* Remove these checks too
* Prep for a future request by @kevinz000
* Fix z2 line endings
* Solution for custom .dms
* Rename some things, trim some fat
* Fixes default map_config
* Remove stale comment
* Delete the previous config after loading
* Don't try to open a non-existent file
* Delete the old rotator script
* And references to it
* Line endings
* More line endings
* Del checks from when m-config may have not existed
* LINE ENDINGS
* Update the default map config
* Map load error checking for what it's worth
* Small cleanup
* For case sensitive
* File systems
* Strip maprotate stuff from build script
* Spruce up the _maps tree. Compile some empty space
* Make travis simpler
* LINEARU ENDARU!!!
* tgstation TWO!!!
* Lowercase mine type
* Dummy dm's for testmerging
* Fixes job ordering
* If ghosts wanna watch the map load so be it
* Let them know what's going on
* Fixes z-transitions
* Optimize z expansion further
* Remove this old var
* Fix wiznerd teleportation
* Rmove butt
* Does the thing
* Moved temp configs to the data dir
* Un-touch gitignore
* Forgot templates.dm
* Forgot to include the includer
* Fair enough
* SILENCE IMBECILE!
* @Cyberboss still a fuckboi
* Speed things up a bit
* Fix a potential bug with the error message
* Whatever
* Engraved messages UI
🆑 coiax
add: Engraved messages now have a UI, which any player, living or dead
can access. See when the message was engraved, and like or dislike
accordingly.
add: Admins have additional options with the UI, seeing the player ckey,
original character name, and the ability to outright delete messages at
the press of a button.
/🆑
- If we were to move to a system where higher rated messages would be
more likely to be selected, this provides the ability to get those
ratings.
- Ratings are by ckey, so character independent.
- Authors cannot upvote or downvote their own messages.
- Did I mention that admins can just now delete the message, instead of
mucking around varediting them?
* Arrows > thumbs
* Brings back colours
* Readds message erasure
* Revert "Readds message erasure"
This reverts commit 92ef8e3f1672c0afd4d6cd630c329d6bf4689e77.
* Revert "Brings back colours"
This reverts commit 7a784e4e463398342c6ee5e18dc885f2a7cd46d0.
* Soapstone message vocabulary, refactors, and more
* Changes message sprite and deletion, adds suffixes
* Removes sounds and sprites for a new PR
* Removes self-rating
* Now with compiling!
* Compiling in 2017 LUL
* Re-adds message removal functionality
Through shoddy editor code, of course
* Fixes a message not appearing
* Soapstones can remove messages for free
🆑 coiax
add: Soapstones/chisel/magic markers/chalk can remove messages for free.
Removing one of your own messages still grants a use.
/🆑
* Janitors start with an empty soapstone
🆑 coiax
add: You can regain a use of a soapstone by erasing one of your own
messages. (This means you can remove a message if you don't like the
colour and want to try rephrasing it to get a better colour). Erasing
someone else's message still uses a charge.
fix: Fixes bugs where you'd spend a charge without engraving anything.
fix: Fixes a bug where the wrong ckey was entered in the engraving,
you won't be able to take advantage of the "recharging" on messages made
before this change.
/🆑
Also includes the user's real_name rather than their name.
* The beginnings of soapstones
* Compilation
* Sprites!
* White text
* Persistence
* More tweaks
* Why isn't it working
* Removes author name
* Random names, more checking for nulls
* VARIABLE MESSAGES
* Fixes icon conflicts
* Limited soapstone uses, purchase more at cargo
* No carving if empty