Garbage collection, asset delivery, icon2html revolution, and general fixes (515) (#15739)

* Making it compileable

* Adds Tracy & Fixed missing compat in sorting code

* CI workflow using "Stable" beta version

* Tracy define

* Fixes

* Update GC from TGStation

* fixes

* Appease linter

* begone custom_items.txt

* Making it compileable

* Adds Tracy & Fixed missing compat in sorting code

* CI workflow using "Stable" beta version

* Tracy define

* Fixes

* Build dependencies at 514

* Asset delivery/GC/515 megapatch

* fix runtime

* Appease integration tests

* More runtime fixes

* Attempting to resolve runtime

* Update spacemanDMM

* icon2html revolution

* icon2html part 2

* fixes

* Attempt to appease linter

* More fixes

* Final fixes (hopefully)

* operator keyword moment

* minor fixes and additions

* undo extra tgui files

* switch to QDEL_IN_STOPPABLE where necessary

* Pain

* GPS runtime

* dropped(null) fix, + chompedit the fixes just incase.

* Fix chat tags

* Update _build_dependencies.sh

* runtime in orebag, duplicate in computer/ship/proc/look, runtime in zoom

* tweak zoom change

* another registersignal override runtime

* 1

* Revert "1"

This reverts commit 43f619ca6c216c2bc41b8f7a346069f99591261b.

* various qdel ref fixes

* newplayer and observer harddels

* disposalholder logging remove, gargoyle hard del + typo

* retouch atom/movable destroy to be TG-like

* potential edge case ref in manualfollow

* extra following potential ref

* global list refs tweak, new_player undo a thing

* /mob/new_player qdel fixes

* undo some things

* revert atoms/movable/destroy

* revert mind and new_player panel changes

* atoms and atom/movable reversions

* bring back datum/mind and panel fixes

* projectile optimisation

* Reverts useless edits, clothing hood runtime, projectile runtime

I tried a lot of things which do not help, and i reverted a lot of it here.

* a few more reversions of useless changes

* Begin getting rid of CHOMPedit comments

* Nuke remaining chompedit comments

* Revert "undo extra tgui files"

This reverts commit f3bdcde8cb.

* fixing oops

* line ending shenanigans

* More GC cleanup

* Optimisations to test/trace projectile, turrets. Tweaks.

Turrets now only trace when they are absolutely sure they want to shoot. disposalholder, effect master and artefact qdel refs changes.

* bad usage of the check_trajectory proc

check_trajectory returns a list of objects hit along it's path to it's target, not a boolean of the target being hittable. a couple places in code assume this, so here they are fixed.

* puts legacy globals into GLOB datum for debug use

* fix upport oopsie

* fix

* Move recursive listening to component

* Minor fixes and cleanup

* undo my temp solution

* tweaks + a missed thing

* recursive_move sanity checks and safety cases

* Catch null initialisation cases + fix borg creation

VV edit spawns the object in nullspace then directly sets it's loc, which means the movement is unregistered. The spawn(0) delay should hopefully mean that setup_parents happens AFTER any unregistered movement.

* circular inventory check, make checks better

* better handling of safety reset cases

* Add logging to safety checks

---------

Co-authored-by: Selis <selis@xynolabs.com>
Co-authored-by: Selis <sirlionfur@hotmail.de>
Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
Cadyn
2024-03-10 09:39:33 +10:00
committed by GitHub
co-authored by Selis Selis Raeschen
parent 6925bceabc
commit cc05d51b69
251 changed files with 2362 additions and 1629 deletions
+10 -10
View File
@@ -30,7 +30,7 @@
Proc: Precedence
Compares two operators, decides which is higher in the order of operations, and returns <SHIFT> or <REDUCE>.
*/
/n_Parser/nS_Parser/proc/Precedence(node/expression/operator/top, node/expression/operator/input)
/n_Parser/nS_Parser/proc/Precedence(node/expression/op/top, node/expression/op/input)
if(istype(top))
top=top.precedence
if(istype(input))
@@ -88,7 +88,7 @@ See Also:
- <GetBinaryOperator()>
- <GetUnaryOperator()>
*/
/n_Parser/nS_Parser/proc/GetOperator(O, type=/node/expression/operator, L[])
/n_Parser/nS_Parser/proc/GetOperator(O, type=/node/expression/op, L[])
if(istype(O, type)) return O //O is already the desired type
if(istype(O, /token)) O=O:value //sets O to text
if(istext(O)) //sets O to path
@@ -108,7 +108,7 @@ See Also:
- <GetUnaryOperator()>
*/
/n_Parser/nS_Parser/proc/GetBinaryOperator(O)
return GetOperator(O, /node/expression/operator/binary, options.binary_operators)
return GetOperator(O, /node/expression/op/binary, options.binary_operators)
/*
Proc: GetUnaryOperator
@@ -120,7 +120,7 @@ See Also:
- <GetBinaryOperator()>
*/
/n_Parser/nS_Parser/proc/GetUnaryOperator(O)
return GetOperator(O, /node/expression/operator/unary, options.unary_operators)
return GetOperator(O, /node/expression/op/unary, options.unary_operators)
/*
Proc: Reduce
@@ -128,15 +128,15 @@ Takes the operator on top of the opr stack and assigns its operand(s). Then this
of the val stack.
*/
/n_Parser/nS_Parser/proc/Reduce(stack/opr, stack/val)
var/node/expression/operator/O=opr.Pop()
var/node/expression/op/O=opr.Pop()
if(!O) return
if(!istype(O))
errors+=new/scriptError("Error reducing expression - invalid operator.")
return
//Take O and assign its operands, popping one or two values from the val stack
//depending on whether O is a binary or unary operator.
if(istype(O, /node/expression/operator/binary))
var/node/expression/operator/binary/B=O
if(istype(O, /node/expression/op/binary))
var/node/expression/op/binary/B=O
B.exp2=val.Pop()
B.exp =val.Pop()
val.Push(B)
@@ -203,7 +203,7 @@ See Also:
continue
val.Push(ParseParenExpression())
else if(istype(curToken, /token/symbol)) //Operator found.
var/node/expression/operator/curOperator //Figure out whether it is unary or binary and get a new instance.
var/node/expression/op/curOperator //Figure out whether it is unary or binary and get a new instance.
if(src.expecting==OPERATOR)
curOperator=GetBinaryOperator(curToken)
if(!curOperator)
@@ -297,7 +297,7 @@ See Also:
/n_Parser/nS_Parser/proc/ParseParenExpression()
if(!CheckToken("(", /token/symbol))
return
return new/node/expression/operator/unary/group(ParseExpression(list(")")))
return new/node/expression/op/unary/group(ParseExpression(list(")")))
/*
Proc: ParseParamExpression
@@ -307,4 +307,4 @@ See Also:
- <ParseExpression()>
*/
/n_Parser/nS_Parser/proc/ParseParamExpression()
return ParseExpression(list(",", ")"))
return ParseExpression(list(",", ")"))