Derp fix on objects, we check mob contents instead of src.contents for any objects that can hear and pass hear_talk on to it.
Tape recorder will record the verb sent instead of doing it's own thing with verbs.
Got rid of the stupid hold.loc = usr hack. Now not necessary, as storage is refactored so that there is now an explicit proc for when a mob opens up a storage to view the contents. Removed the inaccessible if statement in /obj/item/weapon/storage/MouseDrop() (bad automerge?)
New proc: /datum/species/create_organs
Called in set_species when no organs exist or it's forced.
Also shuffled set_species around a bit, adding a var to human/new to
specify a species to start as.
Should fix the adminspawn vox organ runtime.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
These are new posters for more postery goodness. Credits for the sprites
go to Nienhaus.
For the sprites of the poster go to http://puu.sh/5QlUx.dmi
2 posters are not included: 6th and 7th due to reasons.
-ATMs no longer spawn spacecash when you Withdraw funds from them. Instead they spawn a charge card with the funds asked.
-You can swipe a charge card at an EFTPOS instead of your ID. The funds will be substracted from the charge card and won't ask for any PIN.
(ID card swiping is still available, of course)
-You can insert a change card in a vending machine. You can retrieve multiple products from the machine as long as the change card has enough funds to pay for them.
-Also, the EFTPOS instructions are rewritten into a simpler text. The text is not final.
Needed:
-A better name than "change card"? Also, until a name is set, variables are keeping the name "ewallet".
-An icon for the change card. For now it's using the 1000$ cash icon as placeholder.
While browsing through my server's code looking for possible exploits to fix, i noticed the following :
The autolathe can be used to duplicate any and all objs.
The faulty code accepts any refID from the usr without a safetycheck to see if the requested obj is in the autolathe_recipes list.
This works "only" on objs because it will trigger a runtime error if the object has no material vars.
The default buildcost values for obj are zero, so it always goes through the materials-check, but it would not be sufficient to plug this exploit at this point.
The trivial fix is to have a check to see if the given refID is in the autolathe_recipes list, although a datum-based construction method would probably be more robust.
As basically identical autolathe code appears to be used in Baycode , /tg/, /vg/, Para, and all other builds i could look at, i assumed this exploit has been undetected since Goon.
And indeed, the faulty code is present in Gooncode rev4407 and has been ever since.