Commit Graph

106 Commits

Author SHA1 Message Date
Firecage
332bde0f4f Does the rest of the if()'s/ else's 2016-01-17 19:03:12 +02:00
Bjorn Neergaard
85b1576ba0 Sanitize HTML in VV to prevent HTML injection
Also rename SStgui html variable to be more informative
2016-01-01 18:41:39 -06:00
KorPhaeron
83f4661f05 Missing checks 2015-12-30 10:28:27 -06:00
KorPhaeron
759646af68 Improvements 2015-12-28 17:29:46 -06:00
KorPhaeron
7200c74d90 Fixes various ghost replacement things 2015-12-21 02:43:42 -06:00
Tkdrg
97e4058fc2 Fixes runtime when VVing datums
I'm dumb.
2015-12-18 16:55:44 -03:00
Tkdrg
abb0cd663c Adds a Follow/Jump to link to the VV dropdown
Some good QoL for debugging stuff.
2015-12-17 00:45:16 -03:00
Cheridan
5004bcdba2 Merge pull request #13122 from RemieRichards/Synths
Adds a Synth Species
2015-12-09 20:11:09 -06:00
duncathan salt
15ae23b74f Merge pull request #13257 from Jordie0608/allthevarsthatdontgeteditedbecomeverylonely
Adds on_varedit proc
2015-12-08 11:43:14 -06:00
Remie Richards
00bfe18348 Merge branch 'master' of https://github.com/tgstation/-tg-station into Synths
Conflicts:
	icons/mob/human.dmi
2015-12-04 20:23:32 +00:00
Remie Richards
4079e1bb7f Merge pull request #13158 from KorPhaeron/Nya
Removes references to "valid" from purrbation
2015-11-27 20:01:17 +00:00
Jordie0608
5a166f6c71 change to datum proc 2015-11-27 18:26:48 +11:00
Tkdrg
f7c4ac2d9d Fixes VV not updating properly for non-datums
Fixes #13211
2015-11-25 16:35:59 -03:00
KorPhaeron
4d3046e5cb Terrible pun 2015-11-25 08:42:21 -06:00
KorPhaeron
c646656e79 Valid 2015-11-22 06:41:30 -06:00
Remie Richards
2c4676757c Adds a Synth Species, Admin only atm, Imitates a species and when they reach 50 HP their skin partially falls off. Adds a method for species to react to being force set by an admin. 2015-11-19 22:05:48 +00:00
Razharas
835da91620 Merge pull request #11883 from phil235/DnaMonkeyStuff
DNA rework
2015-09-22 18:43:27 +03:00
KorPhaeron
86d7a15141 If this isn't actually fixed I'm gonna cry 2015-09-21 21:04:28 -05:00
KorPhaeron
039af4067e Parentheses 2015-09-21 19:25:39 -05:00
KorPhaeron
403aac044b compromise 2015-09-21 19:24:28 -05:00
KorPhaeron
ceb87b1d62 key_name_admin 2015-09-21 18:46:28 -05:00
KorPhaeron
4edb09064a span 2015-09-21 17:31:07 -05:00
KorPhaeron
d4bf182366 Indent 2015-09-21 10:07:01 -05:00
KorPhaeron
d2ad29ad98 Removes useless code 2015-09-21 10:01:49 -05:00
KorPhaeron
12bc0caa3a Updates pollCandidates 2015-09-21 09:45:28 -05:00
KorPhaeron
947787effd Strange 2015-09-19 23:10:09 -05:00
KorPhaeron
644124923a Offer Control 2015-09-19 23:03:19 -05:00
phil235
f90ee4aa8c - Fixed monkey starting with no dna.
- Fixed bugs with monkeyize/humanize: 7803 (humanized monkey nobloodtype)
- Fixes 9298 monkeyed ling have troubles humanizing themself (already fixed?)
- Fixes despawning clothes when monkeyizing. 11855
- Replaced check_dna_integrity proc by simpler has_dna proc when required.
- created set_species() proc
- fixed space retrovirus not transfering SE (despite having a domutcheck()). Still need to check if it needs a name = real_name.
- I renamed mecha/var/dna to dna_lock to avoid confusion
- I renamed an armor var in a species proc to armor_block to avoid confusion with species/var/armor.
- I removed many if(dna) checks in lots of files.
- I removed duplicate defense procs between human/proc/X and dna.species/proc/X since dna is now always set.
- Anatomic panacea from changeling removes alien embryo correctly. 6247
- Fixes runtime when trying to put dna-less brain mmi into a dnalocked mech.
- Removed carbon/var/list/features, we now only have dna.features and prefs.features
- Remove hulk mutation from lizards and other species (Fixed 6413); only real humans can acquire hulk. (less work on sprites for each ones, fixes lizard tail not in hulk color)
- Fixes cloning not setting up correctly dna UE and dna.real_name
- I fixed the issue with sucked+cloned ling being unable to absorb
- I fixed issue with changeling proc checking if they have the dna already not working.
- Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk.
- I added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858)
- Fixes 10048, the transform to initial appearence button was fucking up the dna.

- Fixes cloning not setting up correctly dna UE and dna.real_name
- Fixed the issue with sucked+cloned ling being unable to absorb
- Fixed issue with changeling proc checking if they have the dna already not working.
- Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk.
- Added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858)
- Fixes 10048, the transform to initial appearence button was fucking up the dna.
2015-09-19 22:18:28 +02:00
c0
667d5e75c3 Transferred body eggs to new organs system 2015-08-03 23:24:17 +03:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Ricotez
4d91dbb9f0 Adds adminlogging for Toggle Purrbation. 2015-07-03 22:48:34 +02:00
Razharas
b1bf4d04fe Merge pull request #10209 from Ricotez/human_mutantparts
Gives humans two types of mutant accessories: ears and (human-specific) tails.
2015-07-03 08:36:36 +03:00
Ricotez
acd297e7f5 -Added new option to the VV menu drop-down list: Toggle Purrbation.
-Putting a human on purrbation gives them cat ears and a cat tail, and sends them the message 'You suddenly feel valid.'
-Removing a human from purrbation reverses the effects, and sends them the message 'You suddenly don't feel valid anymore.'
-Renamed "Long and Smooth" tail to "Cat" tail. I wasn't kitten anyone with the old name.
-Updated changelog.
Forgot to include these two in the last commit:
-Cat ears and tail now use your hair colour instead of your mutant colour.
-Added changelog.
2015-06-30 20:17:55 +02:00
Razharas
3d556ea970 Some varedit improvements
Fixed give spell window hiding most important part of the spell types
Added call proc to varedit so all things you can open in varedit you can
also call procs on
2015-06-27 18:00:57 +03:00
Incoming
f59c01e721 sets hardset_dna to clear exotic blood on race changes
sets every instance of race changes to use hardset_dna instead of directly replacing the datum (needs more testing to be sure I didn't break shit)
removes the invisible man race (aka the generic) and shadowlings from the new green slime mutation toxin while I'm in the area
2015-04-23 12:35:37 -04:00
Jordie0608
6b815c7801 Stamina on adminmoreinfo and vv; ahelp and pray CA replaced by TP 2015-02-24 20:02:43 +11:00
tkdrg
b852aa41ea Replaces a bunch of input() with stripped_input()
Some of these were exploitable for XSS, as well.
2015-01-11 19:02:53 -03:00
carnie
05b76b123e TimSort for byond:
RESULTS:
sorting 10 random lists of length 3 to 303 in increments of 3
(Meh, I forgot to refresh this one, there were only 338 trials rather than 1010, can't be bothered to recode the test)
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           0.672       16.141       16.243       171226  <--TG's current mergesort(recursive, hence the higher number of calls)
/proc/sortTim                                            0.008        3.278        3.274          338  <--TimSort
/proc/sortMerge                                          0.011        2.839        2.855          338  <--new mergesort
/proc/sortInsert                                         0.010        2.124        2.103          338  <--binary insertion

Sorting 10 presorted lists with 3 inversions (3 elements shuffled up), Lists of length 3 to 303 (increments of 3)
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           1.290       23.056       23.254       308050	<--rather cataclysmic
/proc/sortMerge                                          0.015        4.077        4.068         1010	<--
/proc/sortInsert                                         2.639        3.472        3.464         1010	<--
/proc/sortTim                                            0.014        1.567        1.576         1010	<--TimSort is faaar more effective in these cases,
Timsort can exploit runs effectively

sorting 10 presorted lists which have been reversed
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           1.234       23.193       23.295       308050
/proc/sortMerge                                          0.023        4.681        4.686         1010
/proc/sortInsert                                         2.875        3.750        3.765         1010
/proc/sortTim                                            0.020        3.294        3.284         1010	//This can be lower by using a different comparison method
 *Corrected: /proc/sortTim                                0.017        0.665        0.663         1010	//Using a non-strictly ascending comparison

sorting 10 presorted lists
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           1.199       21.391       21.517       308050
/proc/sortMerge                                          0.018        3.724        3.729         1010
/proc/sortInsert                                         2.497        3.302        3.309         1010
/proc/sortTim                                            0.024        0.586        0.584         1010

Summary, all the new procs are faster than the old ones. TimSort is ever so slightly slower than Insertion and Merging on random lists. But on lists with natural runs (partially sorted data) it is far faster than all others.

The old merge sort was removed and replaced with timSort. Other algorithms are provided as alternatives.

All algorithms use a central datum, so accept many of the same parameters. For instance, setting associative=1 will make them sort associative lists by their associated values, rather than keys.
They also accept a cmp argument. This allows sorting of lists of datums, text, numbers or whatever. The pre-existing helpers in lists.dm were rewritten as examples.
2014-09-01 11:29:49 +01:00
Firecage
6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
Firecage
bf4ae320c5 Absolute paths for files in the datums folder 2014-08-16 13:50:53 +02:00
CollenN
56eb50938b Added some of Cheridan's suggestions
*Removed 'Make 2spooky' admin command
*You can still gib even if you don't have DNA
*species_types now uses absolute pathing (probably not gonna do the same
for species.dm, mainly because with such a large file it strikes me as
practical to keep the paths relative)
2014-06-20 21:35:48 -04:00
CollenN
2aab5fa71c Finalizes Mutantrace Datum Update
https://github.com/tgstation/-tg-station/pull/3609

Squashes the commits from the above pull request. Should hopefully be a
lot less cluttered.
2014-06-19 17:42:14 -04:00
MrStonedOne
6a7a7a390f Admins without +varedit will no longer see a error when they open a nested variable in view variables 2014-05-08 13:14:55 -07:00
MrPerson
9eee3e5067 First pass at a qdel() garbage collection system for tgstation
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.

New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.

ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
2014-02-23 14:55:12 -08:00
Giacomand
1256500ca2 Fixes #2456 by moving the code which transfers the reagents to ready_proj()
Removed excluded obsolete files.
Adds a new option to view variables which allows you to add reagents, useful for debugging reagents.
2014-01-20 14:20:54 +00:00
Alek2ander
72e8d36fe5 Reverted links getting disabled when client lacks permissions for them 2013-12-13 19:37:07 +03:00
Alek2ander
c08fe3caf5 Cleaning up 2013-12-13 01:16:56 +04:00
Alek2ander
9412c62224 Final pass 2013-12-13 00:05:05 +03:00
Alek2ander
193656347f Oh that's how it works 2013-12-12 23:49:15 +03:00
Alek2ander
17f6441f5e Oops 2013-12-12 23:32:48 +03:00