Commit Graph

21 Commits

Author SHA1 Message Date
AnturK
4e0db5664b Adds /turf/template_noop and /area/template_noop to dmm reader 2016-02-22 19:24:45 +01:00
AnturK
d9a8268fce Makes preloader not gc needlessly 2016-02-09 17:35:48 +01:00
Bjorn Neergaard
063dd9fb84 Get the code running on 510
* Travis for 510
* Remove json, list2text, text2list, bygex
* Change blind and click catcher to a low plane
2016-02-04 17:19:40 -06:00
Kyle Spier-Swenson
196c98e056 Fixes map loader not initializing map edited path/type vars 2016-01-06 03:54:03 -08:00
Remie Richards
38c6af7032 Improves the speed of the for()loops in the maploader procs, Removes assumptions that the coordinates exist (NO MORE RUNTIMES AT MAP EDGES WOOO!) 2015-12-20 22:46:25 +00:00
Kyle Spier-Swenson
27aad8a3bc fucking Lummox JR's map loader treating chars and tiles as one 2015-11-13 10:22:52 -08:00
Kyle Spier-Swenson
ca7c087d48 Fixes map loader incorrectly detecting x size in maps 2015-11-13 02:32:28 -08:00
KorPhaeron
95e3a14c68 Map loader 2015-10-08 21:45:13 -05:00
duncathan
1278b3e8ef fixes #11870; removes every last out of place del() call or definition 2015-10-04 08:03:04 -06:00
Firecage
dfae1e0b53 Changes a lot of del() to qdel() 2015-08-16 23:33:22 +02:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Menshin
de028f4997 Allows setting an associative variable to null. 2014-12-22 16:27:23 +01:00
Menshin
da55be55b3 Made the preloader independant of the called New().
That fixes any runtime with a positional argument being erased by the maploader.
2014-12-22 01:24:31 +01:00
Menshin
738bfe27a4 Not idea why if(_dmm_preloader) fails to catch nulls... 2014-12-03 20:03:47 +01:00
Menshin
8552a606f9 Minor optimization 2014-11-30 03:11:55 +01:00
Menshin
d0d82aa187 Add support for the DMM multiple tiles on one turf underlaying 2014-11-28 00:03:54 +01:00
Menshin
bbf2530a3c Fixes the simple vars list parsing. 2014-11-05 14:15:30 +01:00
Menshin
96883b31cd Rewrote maploader to act faster and better handle set variables.
Most notably :
* better loading times, less processing loops
* lists variables are now taken into account (simples and associatives)
* every character can now be used inside a string without fear of breaking the loading process
2014-10-26 16:26:48 +01: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
carnie
043028db83 Resolves #283
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.

DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.

DNA strings can be spliced together using merge_text().
 e.g. string 1: "Hello World"
 string 2: "Seeya______"
 result: "Seeya World"
 This isn't used except for admin-spawnable SE injectors at the moment.

r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.

Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.

Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()

var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.

DNA modifier console has almost all controls on one screen.

UIs and UEs can be injected separately (appearance and name, respectively)

dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)

Every block of SEs are in randomised positions.

Disabled automatic logging of world.log, as it produced undesirable behaviour.

Mr Muggles and God Emperor of Mankind disks removed.

Floor() removed. (it was completely uneccesary, that is what round() is).

Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)

Tanning removed from beaches (again)

Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().

Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>
2013-04-24 09:37:30 +01:00
petethegoat@gmail.com
08f350acda Committing work on away missions.
Standardised cigs_lighters.dm a bit.

Removed the SORD, and some unused and shit flasks.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4609 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 23:58:11 +00:00