diff --git a/_maps/map_files/roguetown2/otherz/smalldecap.dmm b/_maps/map_files/roguetown2/otherz/smalldecap.dmm index 0befdba7cb..c058f437dc 100644 --- a/_maps/map_files/roguetown2/otherz/smalldecap.dmm +++ b/_maps/map_files/roguetown2/otherz/smalldecap.dmm @@ -4,19 +4,26 @@ "d" = (/turf/open/water/swamp,/area/rogue/outdoors/mountains/decap) "j" = (/obj/structure/fluff/traveltile{aportalgoesto = "decapout"; aportalid = "decapin"; aallmig = "rwfielddecap"},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) "k" = (/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/mountains/decap) +"o" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/mountains/decap) "s" = (/obj/machinery/light/rogue/firebowl/standing,/obj/structure/bars,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) "u" = (/turf/open/floor/rogue/hexstone,/area/rogue/outdoors/mountains/decap) "z" = (/obj/structure/portal,/obj/structure/bars,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) "B" = (/obj/effect/landmark/mapGenerator/rogue/decap{endTurfX = 128; endTurfY = 128},/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/mountains/decap) "D" = (/turf/open/lava,/area/rogue/outdoors/mountains/decap) "E" = (/obj/structure/bars,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) +"F" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 1},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/mountains/decap) "G" = (/obj/machinery/light/rogue/campfire,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) +"H" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/mountains/decap) "I" = (/turf/closed/mineral/random/rogue/high,/area/rogue/outdoors/mountains/decap) +"J" = (/obj/effect/landmark/start/adventurerlate,/turf/open/floor/rogue/dirt,/area/rogue/outdoors/mountains/decap) "M" = (/turf/open/floor/rogue/volcanic,/area/rogue/outdoors/mountains/decap) +"Q" = (/obj/effect/landmark/start/adventurerlate,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) "S" = (/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) +"T" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) "U" = (/turf/open/floor/rogue/dirt,/area/rogue/outdoors/mountains/decap) "V" = (/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/hexstone,/area/rogue/outdoors/mountains/decap) "Y" = (/obj/structure/fluff/traveltile{aportalgoesto = "forestdecapin"; aportalid = "forestdecapout"},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) +"Z" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/mountains/decap) (1,1,1) = {" bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb @@ -32,7 +39,7 @@ aaYSSSSIISSSSSSSSSSSSUUUUUUUUUaaaaaaaaUUUUUUDUUUUIIDDIIIDDDDDDDDDDDDDDDDMMMMMMDD aaYSSSSSSSSSSSSSSSSSSSSSSSSSSSIIIIIIIaUUUUUUDUUUUIIIDIIIIIIDDDDDDDDDDDDMMMMMMMDDDDDDDDDDDDDDDDDDDDDDDDDDIIaaaaIIIIIIIaaaaaaaaaaa aaSSSIIIIIIIIIIIIUUUSSSSSSSSSSIIIIIIIaUIUIUUDUUUIUIIDIIIIIIDDDDDDDDDDDDMMUUUMMDDDDDDDDDDDDDDDDDDDDDDDDDDDIaaaaIIIIIIIaaaaaaaaaaa aaaaaaaIIIIIIIIIIUUUSUUUUUUIIIIIIIIIIIUIUUUUDUUUUUIIDIIIIIIDDDDDDDDDDDDDMMUUMMDDDDDDDDDDDDDDDDDDDDDDDDDDDDaaaaIIIIIIIaaaaaaaaaaa -aaaaaaaIIIIIIIIIIUUUSUUUUUUIIIIIIIIIIIUUUUUUDUUUUIIIDDIIIIIDDDDDDDDDDDDMMMUUMMMDDDDDDDDDDDDDDDDDDDDDDDDDIDaaaaIIIIIIIaaaaaaaaaaa +aaaaaaaIIIIIIIIIIUUUSUUoUUUIIIIIIIIIIIUUUUUUDUUUUIIIDDIIIIIDDDDDDDDDDDDMMMUUMMMDDDDDDDDDDDDDDDDDDDDDDDDDIDaaaaIIIIIIIaaaaaaaaaaa aaaaaaaIIIIIIIIIIUUUSUUUUUIIIIIIIIIIIIUUUUUUDDDDDDDDDDIIIIIDDDDDDDDDDDMMMUUUUUMMMDDDDDDDDDDDDDDDDDDDDDDDDDaaaaIIIIIIIaaaaaaaaaaa aaaaaaaaIIIIIIIIIUUUSUUUUUIIIIaaaaaaIIUUUUUUIIIUUIUIDDIIIIIDDDDDDDDDDDMMUUUUUUUUMMMDDDDDDDDDDDDDDDDDDDDDDDaaaaIIIIIIIaaaaaaaaaaa aaaaaaaaIIIIIIIIIUUUSUUUUUIIIaaaaaaaIIIIIIIIIIIIIUUIDDIIDIIDDDDDDDDDMMMUUUUUUUUUUMMMDDDDDDDDDDDDDDDDDDDDDDaaaaIIIIIIIaaaaaaaaaaa @@ -46,7 +53,7 @@ aaIIIIIIIIIIIIIIIUUUSUUUUUUUaaaIIIIaaaMMMMMMMDDDMMIIIIIDDDDDDDDDDDDMMMUUUUUUUUMM aaIIIIIIIIIIIIIIIIIISUUUUUUUaaaIIIIaaaIIIIIIMDDDDMIIIIIIDDDDDDDDDDDDDMMMUUUMMMMMDDDDDDDDDDDDDDDDDDDDDDDDDDaaaaIIIIIIIaaaaaaaaaaa aaaaaaIIIIIIIIIIIIIISUUSUUUUaaaIIIIaaaIIIIIIMDDDMMIIIIIIDIDDDDDDDDDDDMDMMMMMMMMDDDDDDDDDDDDDDDDDDDDDDDDDDDaaaaIIIIIIIaaaaaaaaaaa aaaaaaIIIIIIcIIIIIUUSSSSSSSSaaaIIIIaaSIIIIIIMMDMMMIIIIIIIDDDDDDDDDDDDDDDDMMDMDMDDDDDDDDDDDDDDDDDDDDDDDDDDDSaaaIIIIIIIaaaaaaaaaaa -aaaaaaIIIIcccccIUUUUUUUSIIIaaaaIIIIaSSIIIIIIMDDMMMIIIIIIIIDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSSSaIIIIIIIaaaaaaaaaaa +aaaaaaIIIIcccccIUUUUUoUSIIIaaaaIIIIaSSIIIIIIMDDMMMIIIIIIIIDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSSSaIIIIIIIaaaaaaaaaaa aaaaaaIIIIIccccIUUUUUUUSUUUaaaaIIIIIIaIIIIIIMDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSSSaIIIIIIIaaaaaaaaaaa aaaaaaIIIIIIcccUUUUUUUUSUUUaaaaIIIIIIIIIIIIIMDDMIIIIIIIIIIDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDIIIIIaaaaIIIIIIIaaaaaaaaaaa aaaaIIIIIIIUccUUUUUUUUUSUUUaaaaaaaaaaIIIIIIIMDMMIIIIIIIIIIDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDIIIIIIIaaaaIIIIIIIaaaaaaaaaaa @@ -62,7 +69,7 @@ aaIIIIIIIUUDDDDDDUIIIIISIIIIDDDDDDDDDDDDDDDMMIIIIIIIIIDDDIIIIUUUUIUUIUIIIIUUIIUD aaaaaaIIIUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDMIIIIIIIIDDDDIUUIUUUUUUUUUIIIIUUUIUUIIDDDDDDIIIIIIIUUUUUUUUUUIIIIIIIIIIIIIaaaaaaaaaa aaaaaaIIIUUUUUUUUUUIIIUSIIIIIaaaaaaaaaMMMMDDDDDDDDDDDDDDDIUUUUIUUUUUUUUUIIUUUUUUDDDDDDDDIIIIIIIIIIUUIUUUMMIIIIIIIIIIIIaaaaaaaaaa aaaaaaIIIUUUUUUUUUUUUUUSUIIIIaaaaaaaaaMIMMDDMMIIIIIIIDDDUIUIUUUUUUUUUUUUUUUUUUUUUIDDDDDDDIIIIIIIIIIUUIMMMMIIIIIIIIIIIIaaaaaaaaaa -aaaaaaIIIUUUUUUUUUUUUUUSSSIIIIIIIIIIIIIIMMDMMMIIIIIDDDDDUUUUUUUUUUUUUUUUUIUUUUUUUUUIDDDDDIIIIIMMMMMMMMMIIIIIIIIIIIIIIIaaaaaaaaaa +aaaaaaIIIUUUUUUHUUUUUUUSSSIIIIIIIIIIIIIIMMDMMMIIIIIDDDDDUUUUUUUUUUUUUUUUUIUUUUUUUUUIDDDDDIIIIIMMMMMMMMMIIIIIIIIIIIIIIIaaaaaaaaaa aaaaaaIIIUUUUUUUUUUSSSSSSSIIIIIIIIIIIIIIMMMMMIIIIIIDDDDDUUUUUUUUUUUUUUUUUIUUUUUUUUUIDDDDDDIIIMMIIIIIIIIIIIIIIIIIIIIIIIaaaaaaaaaa aaIIIIUUUUUUUUUUUUUUUUUSSSIIIaaaaaaaaaIIMMMMIIIIIIIDDDDDDUUUUUUUUUUUUUUIUUUUUUUUUUUUDDDDDDIIMMMMIIIIIIIIIIaaaaaaaaaaaaaaaaaaaaaa aaIIIIUUUUUUUIIIUUUUUUUSUIIIIaaaaaaaaaDDDDDDDDDDDDDDDDDDDIUUIUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDIMDIMIIIIIIIIIIaaaaaaaaaaaaaaaaaaaaaa @@ -76,60 +83,60 @@ aaIIIIIUUIIIIIIIIUUIIIISIIIIIIIIIIIIIIIIaaaaaaDDDDDDDDDDDDaaaaaSSSSaaaaaIIIIaaaa aaaIIIIUUIIIIUUUUUUUSSSSSSSIIIIIIIIIIIIIaaaaaaDDDDDDDDDDDDDDaaaSSSSaaaaaIIIIaaaaaaaDDaaaaaIIIaaaaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa aaaIIIIUUIIIIUUUUUUUSUUUUUUIIIIaaaaaaDDDDDDDDDDDDaaSIIIIaDDDaaaaSSaaaaaaIIIIaaaaaaaDDaaaaaIIIaaaaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa aaaIIIIUUIUUUUUUUUUUSUIIIIIIIIDDIaaaaDDDDDDDDDDDDaaIIIIIaDDDaaaaaaaaaaaIIIIIaaaaaaaDDaaaaaaIIaaaaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa -aaaIIIIUUUUUUUUUUUUUSSSSUUIIIDDIIaaaaDDDDDDDDDDDDaaIIIIIaDDDDDaaaaaaaaaIIIIIaaaaaaaDDaaaaaaIIaaaaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa +aaaIIIIUUUUUUUUUUUUUQSSSUUIIIDDIIaaaaDDDDDDDDDDDDaaIIIIIaDDDDDaaaaaaaaaIIIIIaaaaaaaDDaaaaaaIIaaaaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa aaaIIIIUUUUIUUIIIIUUUUUSUUUDDDIIIaaaaaaDDDDaaaaaaaaIIIIIaaDDDDaaaaaaaaaIIIIIaaaaaaaDDaaaaaIIIaaaaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaIUUUUUUUIIIIUUUUUSUUDDIIIIIIIIaaDDDDDaaaaaaaIIIIIIaaaDDDUSIIaaaaaaIIIIaaaaaaaDDaaaaaIIIIIIaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaIUUHUUUUIIIIUUUUUSUUDDIIIIIIIIaaDDDDDaaaaaaaIIIIIIaaaDDDUSIIaaaaaaIIIIaaaaaaaDDaaaaaIIIIIIaaaaaaaDDaaaaaaaaaaaaaaaaaaaaaaa aaaaaaIIUUUUUUIIIIUUUUUSDDDUIIIIIIIIaaaDDDDaaaaaaaaIIIIIaaaUUDUSIaaaaaaaIIIIaaaaaaaDDaaaaaIIIIIIaaaaIIIDDaaaIIIaaaaaaaaaaaaaaaaa aaaaaaIIUUUUUUIIIIIIIDDDDUUUIIIIIIIIIIIDIaaaaaaaaaaaIIIIaaaUUDUSaaaaUUUUUUUUUUIaaaaaDaIIIaaIIIIIaaaaIIIIDIIIaaIIIIIIIaaaaaIIIIIa aaaaaaUUUUUUUUUIIIIDDDUSUUUUIIIIIIIIIIDIIaaaaaaaaaIIIIIIIIIUUDDSUUUIUUUUUUUUUUIIIIIIDIIIIaaaaIIIIIIIIIIUDDUUUUUUUUUUUUIIIIIIIIIa -aaaaaaUUUUUIIIUIIDDDIIUSUUUUUIIIIIIIIDDIIIIIIIIIIIIIIIIIIIIUUUDSUUUIUUUUUUSSSSSSSSSDDSSSSUUUUUUIIUUUUUIUUDUUUUUUUUUUUUIIIIIIIIIa -aaaaaaUUUUUIIIIDDDIIIIUSUUUUUUIIIIIIIDIIIIIIIIIIIIIIIIIIIIIUUUDSUUUUUUUUUUSSUUUUUUUDUUUUSUUUUUUIIUUUUUUUUDUUUUUUUUUUUUIIIIIIIIIa +aaaaaaUUUUUIIIUIIDDDIIUSUUUUUIIIIIIIIDDIIIIIIIIIIIIIIIIIIIIUUUDSUUUIUUUUUJSSSSSSSSSDDSSSSUUUUUUIIUUUUUIUUDUUUUUUUUUUUUIIIIIIIIIa +aaaaaaUUUUUIIIIDDDIIIIUSUHUUUUIIIIIIIDIIIIIIIIIIIIIIIIIIIIIUUUDSUUUUUUUUUUSSUUUUUUUDUUUUSUUUUUUIIUUUUUUUUDUUUUUUUUUUUUIIIIIIIIIa aaaaaaUUUUUUIDDDIIUIIIISUUUUUUUIIIIIDDIIIIIIIIIIIIIIIIIIIUIUUUDSUUUUUUUUUUSSUUUUUUUDUUUUSUUUUUUUUUUUUUUUUDUUUUUUUUUUUcUUUIIIIIIa -aaaaaaUUUUUDDDIIIIUIIIISUUUUIIUIIIIDDIIIUUIIIIIIIIIIIIIUUUUUUUDSUUUUUUUUUUSUUUUUUUDDUUUUSUUUUUUUUUUUUUUUUDUUUUUUUUUUUcUUUUUUIIIa -aaaaaaUUUDDDUIIIIUUIIIISUIIIIIIIIIIDIIUUIIUUSIUUIIIIIUIUUUUUUUDSUUUUUUUUUUSIUUUUUUDUUUUUSUUUUUUUUUUUUUUUUDUUUUUUUUUccccccUUUIIIa +aaaaaaUUUUUDDDIIIIUIIIISUUUUIIUIIIIDDIIIUUIIIIIIIIIIIIIUUUUUUUDSUUUUUUUUUUSUUUUUUUDDUUUUSUUUUUUUUUUUUUUUUDUUUHUUUUUUUcUUUUUUIIIa +aaaaaaUUUDDDUIIIIUUIIIISUIIIIIIIIIIDIIUUIIUUSIUUIIIIIUIUUUUUUUDSUUUUUUUUUUSIUUUUUUDUUUUUSUUUUUUUUoUUUUUUUDUUUUUUUUUccccccUUUIIIa aaIIIIUUDDUUUIIIIIUUUSSSIIIIIIIIIIDDIUUUUUUISUIIIUIIUIIUUUIUUUDSSSSSSSSSSSSIUUIIIUDUUUUUSUUUUUUUUUUUUUUUUDUUUUUUUUUUUccccUUUIIIa aaIIIIUDDUUUIIIUUIIIISUUUIIIIIIIIDDIUUIUUUUUSUUIIUIIUUUUIIIUUUDUUUSSUUUUUUUUUIIIIUDUUUUUSUUUUUUUUUUUUUUUUDUUUIUUUUUUUccUUUIIIIIa -aaIIIDDDUUUUIIUIIIIIISUUIIIIIIIIDDIUUUUUUUUISUUIUIIIIIIIIIIUUUDUUUSSUUUUUUUUUIIIIDDIIUUUSUUUUUUUUUIIIIIUUDUUUIUUUUUUUUcUUIIIIIIa +aaIIIDDDUUUUIIUIIIIIISUUIIIIIIIIDDIUUUUUUUUISUUIUIIIIIIIIIIUUUDUUUSTUUUUUUUUUIIIIDDIIUUUSUUUUUUUUUIIIIIUUDUUUIUUUUUUUUcUUIIIIIIa aaIIDDIUUUUUUUUIIIIIUSUUIIIIIIIIDIIUUUUUUUIISUUUUIIIIIIIIIIUUUDUIISSUUUUUUIIIIIIIDIIIIIISIIIIIIIIIIIUUUUUDUUUIUUUUUUUUUUUIIIIIIa aaIDDIIUUUUUUUUIIIIIISUUIIIIIIIIDIIUUUUUUUIISUUUUIIIIIIIIIIUUUDUIISSIIIUIIIIIIIIIDIIIIUUSIIIIIIIIIIIUUUUUDUUUIIUUUUUIIIIIIIIIIIa aaDDIIIIIUUUUUUIIIIIISUIIIIIIIIDDUUUUUUUUUUUSUUUUIIIIIIIIIIUUUDUIISSIIIUUIIUUIIIIDIIIIUUSIUIIIIIIIIIUUUUUDUUUIIUUUUUUUIIIIIIIIIa aaIIIIIIIUUUUUUUUUSSSSUIIIIIIUUDUUUIIIIUIUSSSUIIIIIIIIIIIIIIIIDIIISSIIIIUUIUIIIIIDIIIIUUSIIIIIIIIIIIUUUUUDIIIIIUUUUUIIIIIIIIIIIa -aaIIIIIIIUUUUUUUUUSUIIUIUUUUUIIDIUIIIIIUUUSUIIIIIIIIIIIIIIIIIUDIIISSIIIIIUUUIIIIDDIIIISSSIIIIIIIIIIIUUUUUDIIIIIUUUIIIIIIIIIIIIIa +aaIIIIIIIUUUUUUUHUSUIIUIUUUUUIIDIUIIIIIUUUSUIIIIIIIIIIIIIIIIIUDIIISSIIIIIUUUIIIIDDIIIISSSIIIIIIIIIIIUUUUUDIIIIIUUUIIIIIIIIIIIIIa aaIIIIIIIUUddUUUUUSUIIIIIIUUIIIDUUUIIIIIUUSUIIIIIIIIIIIIIIIIIUDIIISSIIIIIIIUIIIIDIIIIISUIIIIIIIIIIIIIUIIIDDIIIIIIUIIIIIIIIIIIIIa aaIIIIIIIIUddUdUUUSUIIIIIIIIIIDDUUIIIIIIUUSUUIIIIIIIIIIIIIIIIUDIIISSIIIIIIIIIIIIDIIUUUSSIUUUIIIIIIIIIUIIIIDIIIIIIUIIIIIIIIIIIIIa aaIIIIIIIIUdUUdUUUSUUUUIIIIIIUDUUIIIIIIIIUSIIIUUUUUUUUUUUIIIIIDIIISSIIIIIIIIIIIIDIUUUUISUUUUUIIIIIIIIUIIIIDUUIIIIUIIIIIIIIIIIIIa -aaIIIIIIIIUdUUUUUUSUUUUIIUUUUUDIIIIIIIIUUUSUUUUUUUUUUUUUUUUUUUDUUUSSUUUUIIIIIIIIDIUUUIUSUUUUUIIIIIIIIUIIIIDDUIIIIUIIIIIIIIIIIIIa -aaaaIIIIUUddUUddUUSUUUUUUUIUIIDIIIIIIIIUUUSUUUUUUUUUUUUUUUSSSSDSSSSSUUUUIIIIIIIIDIIUUUUSUUUUUUIIIIIIIUIIIIUDDUUIIUIIIIIIIIIIIIIa +aaIIIIIIIIUdUUUUUUSUUUUIIUUUUUDIIIIIIIIUUUSUUUUUHUUUUUUUUUUUUUDUUUSSUUUUIIIIIIIIDIUUUIUSUUUUUIIIIIIIIUIIIIDDUIIIIUIIIIIIIIIIIIIa +aaaaIIIIUUddUUddUUSUUUUUUUIUIIDIIIIIIIIUUUSUUUUUUUUUUUUUUUSSSSDSSSSSHUUUIIIIIIIIDIIUUUUSUUUUUUIIIIIIIUIIIIUDDUUIIUIIIIIIIIIIIIIa aaaaIIddddddUUddUUSUUUUIIIIIIDDIIIIIIUUUUUSUUUUUUUUUIIIUUUSUUUDUUUUUUUUUIIIIIIIIDIIIUUUSUUUUUUIIIIIIIUIIIIUUDUUIIUIIIIIIIIIIIIIa aaaadIdddUUUUdddUUSUUUUIIIIIIDIIIIIIIUUUUUSUUIIIIIIIIIIIIISUUIDDIIIIIIIIIIIIIIIIDIIIIIISUUUUUUUUUUIIIUUUUUUUDDUUIUIIIIIIIIIIIIIa aaaaIIdIIUUUUdddUUSUUUUUUUUUUDUUUUUSSSSSSSSUUIIIIIIIIIIIIISUUIDDIIIIIIIIIIIIIIIDDIIIIIISUUUUUUUUIIIIIUUUUUUUUDUUUUUIIIIIIIIIIIIa aaaaIddIIIUUUUUUUUSSSSSSSSSSDDSSSSSSSSIIIIIIUIIIIIIIIIIIIISUUIDDIIIIIIIIIIIIIIIDIIIIIIUSSUUUUUIUUUUIIUUUUUUUUDDUIIIIIIIIIIIIIIIa -aaIIIdddIIISSSSSSSSSUUIIIIIIDIUUUUUUUSUIIIIIUIIIIIIIIIIIIISUUIIDIIIIIIUIUIIIIIIDIIIIIUUISIUUUIIIIIIIIIIIUUUUUUDUIIIIIIIIIIIIIIIa +aaIIIdddIIISSSZSSSSSUUIIIIIIDIUUUUUUUSUIIIIIUIIIIIIIIIIIIISUUIIDIIIIIIUIUIIIIIIDIIIIIUUISIUUUIIIIIIIIIIIUUUUUUDUIIIIIIIIIIIIIIIa aaIIIIIIIIISUUUUUUUUUIUIIUUUDIIIIIIIISUIIIIIUIUUIIIIIIIIIISUUIIDIIIIIUUIIIIIIIIDIIIIUIIUSUIIUUIIIIIIIIIUUUUUUUDDIIIIIIIIIIIIIIIa aaIIIIIIIUISUIIIIIIIUIUIUUUUDIUUIIIIISUIIIIIUIUUIIIIIIIIUUSUUIIDIIIIIUUIIIIIIIIDIIIUUUUUSUIIIIIIIIIIIIIUUUUUUUUDIIIIIIIIIIIIIIIa aaaaaIIIIIISUIIIIIUIIUUUUIUIDUUIIIIIISUIIIIIUUUUIIIIIIIUUUSUUUUDUIIUUUUUUIUIIUIDIIUUSSSSSUIIIIIIIIIIIIIUUUUUUUUDDIIIIIIIIIIIIIIa aaaaaIIIIUISIIIIIIUUUUUUIUUIDIIIIIIIISUIIIIUUUUUIIIIIIIUUUSUUUDDUIIUIIIIIIUUUIIDIIUUSIUIUIIIIIIIIIIIIUUUUUUUUUUUDIIIIIIIIIIIIIIa -aaaaaIIIIIUSIUIIIIIIIIUUIIIDDIIIIIIIISUIIIIUIUUUIIIIIIIUUUSUUUDUUIIUUIIIIUIIIIIDIIIISUUUUIIIIIIUUUIIIUUUUUUUUUUUDDIIIIIIIIIIIIIa +aaaaaIIIIIUSIUIIIIIIIIUUIIIDDIIIIIIIISUIIIIUIUUUIIIIIIIUUUSUUUDUUIIUUIIIIUIIIIIDIIIISUUUUIIIIIIUUUIIIUUUUUHUUUUUDDIIIIIIIIIIIIIa aaaaaIIIIIUSSSSIIIIIIIUUIIIDUIIIIIIIISUIIIIUUIUUIIIIIIIUUUSUUUDUUIIIUIUUUUUIIIIDIIUUSUIUIIIIIIIIIIUUUUUUUUUUUUUIIDDIIIIIIIIIIIIa aaaaaIIIIIUUIISIIIIIUIUIIIIDUIIIIIUIISUIIIIIUIIUUUIIIIIUUUSSSUDUUIIIUUUIUUUUIIIDIUUISUUIIIIIIIIIIIUUUUUUUUUUUUUIIIDIIIIIIIIIIIIa aaaaaIIIIIUUIISIIIUUUIIUIIIDUIIIIIUUISUIUUUUUUUUUUIIIIIIUUUUSUDUUUUUUIIIIUUUUIIDIUUUSIIIIIIIIUIIIIUUUUUUUUUUUUUIIIDDIIIIIIIIIIIa -aaaaaIIIIIIUIISIIIIUUIIIIIIDUIIIUIIUUSUUUIUUUUUUUUIIIIIIIUUUSUDUUUUUUUUIIUUUIIIDUUIISIIUIIIIISSSSSSSSSSSSSSSSSUUIIIDIIIIIUUIIIIa +aaaaaIIIIIIUIISIIIIUUIIIIIIDUIIIUIIUUSUUUIUUUUUUUUIIIIIIIUUUSUDUUUHUUUUIIUUUIIIDUUIISIIUIIIIISSSSSSSSSSSSSSSSSUUIIIDIIIIIUUIIIIa aaaaaIIIIIIUUUSIIIIIIIUIUIDDUIIIUIIIISSSUUUUUUUUcUIIIIIIIIIISUDUUUUUUIUIUIIUIIIDUIIISUIIIIIIISIIIIUUUUUUUIIIUSUUIIIDDIIIIUUIIIIa aaaaaIIIIIIUUUSIIIIIIIIUIUDIUIIIUIIIIIUSUUUUUccccUIIIIIIIIIISIDIIIIIIIIIIIIUUIIDSSSSSUIIIIIIISIIIIUUUUUUUIIIUSUUIIIIDDUUUUUIIIIa -aaaaaIIIIIIIUUSIIIIIIUUUUUDSSSSSSSSSSSSSUUUUUccccUIIIIIIIIIISIDIIIIIIIIIIIIUSSSDSUUIIIUIIIIIISIIIIIIIUIIIIIIUSUUIIIIIDUUUUUIIIIa +aaaaaIIIIIIIUUSIIIIIIUUUUUDSSSSSSSSSSSSSUHUUUccccUIIIIIIIIIISIDIIIIIIIIIIIIUSSSDSUUIIIUIIIIIISIIIIIIIUIIIIIIUSUUIIIIIDUUUUUIIIIa aaaaaIIIIIIIUUSUUUIUIUUUUDDSUUUUIIIIUUUUUUUUUccccUIIIUUIUIIISIDDIIIIIIIIIIUUSUIDIIUUUUIIIIIIISIIIIIIIUIIIIIIUSUUIIIIIDUUUUUIIIIa aaaaaIIIIIIIIUSUUUIUIUUUUDUSUUUIIIIIIIUUUUUUUUccUUIIIUIIUUIUSUIDIIIIIIIIIUUUSUIDIIIIIIIIIIIIISIIIIIIIUUIIIIIUSUUIIIIIDUUUUUUUIIa aaaaaIIIIIIIIUSUUUIUUUUUUDUSSSSSSIIIIIIIIIIUUUccUUIIIUIIUUSSSUUDIIIIIIIIIIUUSUUDUUUIIIIIIIIIISIIIIIIIUUIIIIIUSUUIIIIIDDUUUUUUIIa aaaaaIIIIIIIIISIIIIUUUUUUDUUUUUUSSSSSIIIIIIIIUUUUUIIIUUIUISUUIIDIIIIIIIIIIUUSSSDUUUIIIIIIIIIISIIIIIUUUUIIIIIUSSSSSSSSSDDUUUUUIIa aaaaaIIIIIIIIISSSIIIUUUUUDUUUUUUUUUUSIIIIIIIIUIIUUIIIIUUUUSIIIIDIIIIIIIUUUUUUUUDDUUIIIIIIIIIISIIUUUUUUUIIIIIUUUUUUUIIUUDUUUUUIIa aaaaaIIIIIIIIIIISSSSSSSUUDUUUUUUUUUUSIIIIIIIIUIIIIIIIIIIUUSUUIIDIIIIIUUUUUUUUUUSDUUIIIIIIIIUUSUUUIIUUIIIIIIIUUUUIIIIIIUDUUUUUIIa -aaaaaIIIIIIIIIIIUUUUUUSUUDUUUUUUUUUUSSSSSSSSSSUIIIIIIIIIUISUIIIDIIIIIUUUUUUUUUUSDUUIIIIIUUUUUSUUUIIIIIIIIIIIUUUUIIIIIUUDUUUUUIIa -aaaaaIIIIIIIIIIUUUUUUUSUDDIUUUUUUUUUUUUUUUUUUSUUUUIIIIIIIISUUIUDUIIIIUUUUUUUUUUSDUUIIIIIUUUUUSSSSSSSSSSSSSSSSSUUIIIIIUUDUUUUUIIa -aaaaaIIIIIIIIUUIIIIUUUSUDUUUUUUUUUUUUIIIIIIIISUUUUIIIIIIIISUUUUDUIIIIUUUUUUUUUUSDUUIIIIIIUUUUSUUUIIIIIIIIIIIUSUUIIIIIUUDUUUUUIIa +aaaaaIIIIIIIIIIIUUUUUUSUUDUUUUUUUUUUSSSSSSSSSSUIIIIIIIIIUISUIIIDIIIIIUUUUUUUUUUSDUUIIIIIUUUUUSUUUIIIIIIIIIIIUUUUIIIIIUUDUFUUUIIa +aaaaaIIIIIIIIIIUUUUUUUSUDDIUUUUFUUUUUUUUUUUUUSUUUUIIIIIIIISUUIUDUIIIIUUUUFUUUUUSDUUIIIIIUUUUUSSSSSSSSSSSSSSSSSUUIIIIIUUDUUUUUIIa +aaaaaIIIIIIIIUUIIIIUUUSUDUUUUUUUUUUUUIIIIIIIISUUUUIIIIIIIISUUUUDUIIIIUUUUUUUUUUSDUUIIIIIIUUUHSUUUIIIIIIIIIIIUSUUIIIIIUUDUUUUUIIa aaaaaIIIIIIIIUIIIIIUUUSUDUUUUUUUUUUUUIIIIIIUUSUUUUUIIIUUUUSUUUUDUUUIIUUUUUUUUUUSDUUUUUUUUUUUUSUUUIIIIIIIIIIIUSSSSSSSSSSDUUUIIIIa aaaaaIIIIIIUUIIIIIIUUUSUDUUUUUUUUUUUUIUUIIIUUSSSSSSSSIUUUUSUUUUDDUUIIUUUUUUUUUUSDSSSSSSSSSSSSSUUUIIIIIIIIIIIUSUUUUUUUUIDIUUUIIIa aaaaaIIIIIIUIIIIIIIUUUSUDUUUUUUUUUUUUIIUUIIIUIIUUUUUSIUUUUSUUUUUDUUIIIIIIUUUUUUUDUUUIIIIIIIUSIIIIIIIIIIIIIIIUSUUIIIIIIIDIUUUIIIa -aaIIIIIIIIIUIIIIIIIUUUSUDUUUUUUUUUUUUIIIUUIIUUUUUUUISSSSSSSUUUUUDUUIIIIIIIIUUUUUDUUUIIIIIIUUSUUIIIIIIIIIIIIIISUIIIIIIIIDIUUUIIIa +aaIIIIIIIIIUIIIIIIIUUUSUDUUUUUUUUUUUUIIIUUIIUUUUUUUISSSSSZSUUUUUDUUIIIIIIIIUUUUUDUUUIIIIIIUUSUUIIIIIIIIIIIIIISUIIIIIIIIDIUUUIIIa aaIIIIIIIIIUUIIIIIIUUUSUDUUUUUUUUUUUUIIUUIUUUUIUUUUIUIUUUUUUUUUUDUUIIIIIIIIUUUUUDUUUIIIIIUUISSSUIIIIIUUUUIIIUSUIIIIIIIIDIIIIIIIa aaIIIIIIIIUUUIIIIIIUUUSUDUUUUUUIUUUUUUUIUIUUIUIUUIIIIIUUUUUUUUUUDUUIIIIIIIIUUUUUDUIIIIIIUUIUUUSUIIIISSSSSSSSSSUUUIIIIIDDIIIIIIIa aaIIIIIcccUIIIIIIaaUUUSUDUUUUUUIIUUUUUUUUUUIIUIUUIIIIIIUUUUUUUUUDUUUUIIIIIIUUIUUDUIIIIIIUUUUUISSSSSSSUUUUUUUIUUIIIIIIIDIIIIIIIIa diff --git a/_maps/map_files/roguetown2/otherz/smallforest.dmm b/_maps/map_files/roguetown2/otherz/smallforest.dmm index 07e6b93637..f74a5488d1 100644 --- a/_maps/map_files/roguetown2/otherz/smallforest.dmm +++ b/_maps/map_files/roguetown2/otherz/smallforest.dmm @@ -41,6 +41,7 @@ "iM" = (/obj/structure/closet/crate/roguecloset,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors) "iS" = (/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "jC" = (/obj/structure/fluff/signage,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/woods) +"ka" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/woods) "kc" = (/turf/closed/wall/mineral/rogue/wooddark/end{icon_state = "endwooddark"; dir = 8},/area/rogue/indoors) "ke" = (/obj/structure/fluff/wallclock/r,/turf/open/floor/rogue/cobble,/area/rogue/indoors) "kn" = (/obj/structure/flora/newtree,/obj/structure/flora/newtree,/turf/open/floor/rogue/grass,/area/rogue/outdoors/woods) @@ -117,6 +118,7 @@ "zY" = (/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/indoors) "Az" = (/obj/structure/roguewindow,/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) "AC" = (/obj/structure/bars/passage{redstone_id = "woodsmprison"},/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) +"AG" = (/obj/effect/landmark/start/adventurerlate,/turf/open/floor/rogue/dirt,/area/rogue/outdoors/woods) "AO" = (/obj/structure/chair/wood/rogue,/turf/open/floor/rogue/cobble,/area/rogue/indoors) "AR" = (/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors) "AW" = (/obj/machinery/light/rogue/oven/south,/turf/open/floor/rogue/tile{icon_state = "chess"},/area/rogue/indoors) @@ -140,6 +142,7 @@ "Fh" = (/obj/structure/roguemachine/vendor{keycontrol = "butcher"},/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/woods) "Fn" = (/obj/structure/closet/crate/chest,/turf/open/floor/rogue/wood,/area/rogue/indoors) "Fy" = (/obj/machinery/light/rogue/hearth,/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) +"FO" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/woods) "FW" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/woods) "GG" = (/obj/structure/ladder,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors) "GK" = (/obj/effect/landmark/events/testportal{aportalloc = "forest"},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/woods) @@ -198,6 +201,7 @@ "RE" = (/obj/structure/table/wood{layer = 2.8},/obj/item/natural/stone,/turf/open/floor/rogue/woodturned,/area/rogue/indoors) "RH" = (/turf/open/floor/rogue/rooftop/green{dir = 4},/area/rogue/outdoors/woods) "RT" = (/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors) +"SE" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/woods) "SR" = (/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) "Tf" = (/turf/open/floor/rogue/woodturned,/area/rogue/indoors) "Tj" = (/obj/item/reagent_containers/food/snacks/smallrat,/turf/open/floor/rogue/woodturned,/area/rogue/indoors) @@ -218,6 +222,7 @@ "Xg" = (/obj/effect/landmark/events/testportal{aportalloc = "woodsman"},/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/woods) "XH" = (/obj/structure/fluff/dryingrack,/obj/item/needle/thorn,/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/woods) "XO" = (/obj/structure/mineral_door/wood/red{locked = 1; lockid = "woodsm"},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors) +"Yi" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 1},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/woods) "Yn" = (/obj/structure/roguemachine/mail,/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/woods) "Yv" = (/turf/closed/wall/mineral/rogue/decowood,/area/rogue/indoors) "Yx" = (/obj/structure/closet/crate/roguecloset,/obj/item/candle,/obj/item/candle/yellow,/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors) @@ -232,33 +237,33 @@ "ZW" = (/obj/structure/closet/crate/roguecloset,/obj/item/storage/roguebag,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors) (1,1,1) = {" -dIdIJcdIrudIJcdILuVhVhVhVhdIrudIJcdIJcBmBmBmBmskskskskskskskskskskskskskskskskJcBmBmBmBmBmBmBmJcJcJcububCNCNCNububJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcdIdIdIdIdIdIdI +dIdIJcdIubdIJcdILuVhVhVhVhdIubdIJcdIJcBmBmBmBmskskskskskskskskskskskskskskskskJcBmBmBmBmBmBmBmJcJcJcububCNCNCNububJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcdIdIdIdIdIdIdI dIJcJcJcubJcJcJcLuVhVhVhVhLuubJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmskskBmBmBmBmBmBmBmBmBmBmJcJcJcubububububububJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcdIdIdIdIdI dIJcJcJcubJcJcJcLuVhVhVhVhLuubJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmskskBmBmJcJcJcJcJcJcJcJcububububububububOuubJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcdIdIdI dIJcJcJcubJcJcJcLuVhVhVhVhLuubJcJcJcBmBmBmJcBmBmJcJcJcJcJcJcJcJcJcBmBmskskBmBmJcJcubububububububububububububububububububububJcJcBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcdIdIdI dIJcJcJcubJcJcJcLuVhVhVhVhLuubJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcBmBmskskBmJcJcJcubJcJcJcJcJcJcJcBmBmBmBmubububJcJcJcJcJcubJcBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcubububJcdIdI -dIBmBmJcubJcJcJcLuVhVhVhVhVhLuJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcBmskskJcJcJcJcububububJcJcJcBmBmBmJcBmJcJcJcJcJcJcJcJcubJcJcBmBmJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcubububJcdIdI +dIBmBmJcubFOJcJcLuVhVhVhVhVhLuJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcBmskskJcJcJcJcubububSEJcJcJcBmBmBmJcBmJcJcJcJcJcJcJcJcubJcJcBmBmJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcubububJcdIdI dIBmBmJcJcJcJcLuVhVhVhVhVhVhVhLuJcBmBmBmBmJcJcbpJcJcJcJcJcJcJcJcJcJcBmskskJcJcJcJcJcJcJcubJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcubJcJcBmBmJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmJcJcBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcubOuububufdI dIJcBmJcJcJcJcLuVhVhVhVhVhVhVhNkJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmskskBmJcJcJcJcJcJcubJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmubJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmJcJcBmBmBmBmBmBmJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmJcJcububububdIdI -dIBmJcJcJcJcJcbpVhJcJcVhVhVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmskskBmubububububububJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmubJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcubububububufdI +dIBmJcJcJcJcJcbpVhJcJcVhVhVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcAGJcJcJcJcJcBmskskBmubububububububJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmubJcBmBmBmBmBmJcJcJcJcJcJcJcAGJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcubububububufdI dIBmJcJcJcJcLuVhVhJcJcVhVhVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmubJcJcJcJcJcJcJcJcJcBmBmJcJcJcBmBmBmBmBmBmJcJcubJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcubdIdI dIBmJcJcJcJcLuVhVhJcJcJcVhVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmubJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcbpJcJcubububJcBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcububububububububububububububububububububububububububububububJcBmJcubufdI dIBmJcJcJcBmLuVhVhBmJcJcVhVhVhLuBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcJcBmJcubJcJcBmBmJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcubJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcububububububububububububububububububububJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcdIdI dIBmJcJcJcJcLuVhVhJcJcJcVhVhVhLuJcBmBmBmBmBmBmJcJcJcJcBmJcJcJcJcJcBmBmJcBmJcubBmBmBmBmBmJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcubJcJcJcJcBmJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcJcdI -dIJcJcJcJcBmLuVhVhJcJcBmVhVhVhLuBmBmBmBmBmBmBmBmJcJcJcBmJcJcJcbpJcJcJcububububJcJcBmBmBmJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcdIdI +dIJcJcJcJcBmLuVhVhJcJcBmVhVhVhLuBmBmBmBmBmBmBmBmJcJcJcBmJcJcJcbpJcJcJcububububJcJcBmBmBmJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcAGJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcdIdI dIJcJcJcJcBmLuVhVhBmJcJcVhVhVhLuJcBmBmBmBmJcBmBmBmJcJcBmBmJcJcJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcBmBmBmBmBmJcdIdI dIJcJcJcJcJcLuVhVhBmJcJcVhVhVhLuBmBmBmJcJcJcJcBmBmJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcBmBmBmBmBmJcBmBmBmJcJcBmBmBmBmBmJcJcJcJcJcJcJcubJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcdIdI -dIEpububGKubLuvVVhJcJcLuVhVhVhLuJcJcBmJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcubububububububububububububububububububububububububububJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcBmBmJcBmJcJcubJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcdI +dIubububGKubLuvVVhJcJcLuVhVhVhLuJcJcBmJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcubububububububububububububububububububububububububububJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcBmBmJcBmJcJcubJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcdI dIJcJcJcubJcLuVhVhJcJcLuVhVhVhLuJcJcBmJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcububJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmJcBmBmBmBmBmJcdIdI -dIJcJcJcubLuLuVhVhJcJcJcVhVhVhLuJcJcBmBmJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcububJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcubJcJcJcBmBmBmBmBmBmBmBmBmBmJcBmBmBmBmJcJcJcJcJcJcJcJcesJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmJcBmBmBmBmBmdIdI +dIJcJcJcubLuLuVhVhJcJcJcVhVhVhLuJcJcBmBmJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcubSEJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcubJcJcJcBmBmBmBmBmBmBmBmBmBmJcBmBmBmBmJcJcJcJcJcJcJcJcesJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmJcBmBmBmBmBmdIdI dIJcJcJcububLuVhVhLuJcLuVhVhVhLuJcJcBmBmJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcububJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcubJcJcJcBmJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNJcJcJcBmBmBmJcBmBmBmBmBmJcdI -dIJcBmBmBmubLufAfAfAfAfAVhVhHcLuJcJcJcBmJcJcJcbpJcJcJcJcJcBmJcJcJcJcJcJcJcJcububJcJcJcJcJcJcJcBmLgLgLgLgLgsNsNsNsNsNsNsNsNsNsNJcubJcJcJcJcBmBmBmsNsNsNsNsNsNsNLgsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNJcJcJcJcJcJcJcBmBmBmBmBmJcdI +dIJcBmBmBmubLufAfAfAfAfAVhVhHcLuJcJcJcBmJcJcJcbpJcJcJcJcJcBmJcJcJcJcJcJcJcJcububJcJcJcJcJcJcJcBmLgLgLgLgLgsNsNsNsNsNsNsNsNsNsNJcubJcJcJcJcBmBmBmsNsNsNsNsNsNsNLgsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcJcJcJcFOsNsNsNsNsNsNsNJcJcJcJcJcJcJcBmBmBmBmBmJcdI dIJcJcJcBmubLufAfAfAfAfAVhVhVhLuLuLuJcBmBmBmJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcububJcJcJcJcJcsNLgLgLgLgLgLgLgsNsNsNsNsNsNsNLgHhsNJcubJcJcJcJcBmBmBmsNsNsNsNsNsNLgLgsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNJcJcJcJcJcJcJcBmBmBmBmBmJcdI dIBmBmBmBmububLuLuLuLuLufAfAfAVhVhLuJcBmBmBmJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcububJcJcJcJcJcsNLgLgJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcsNJcJcJcBmBmJcJcJcJcBmJcJcJcJcJcBmBmJcJcJcsNJcsNsNsNsNJcJcJcBmJcJcJcJcJcJcJcJcBmBmBmLgLgLgLgsNsNsNJcsNsNsNJcJcJcBmBmBmBmBmdIdI dIskskBmJcBmubububububLufAfAfAVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcububJcJcJcJcBmsNLgLgJcJcJcJcJcBmBmJcJcJcBmBmBmBmJcJcJcJcsNBmLgBmJcJcJcJcJcJcBmJcJcBmBmJcJcJcJcJcBmJcsNsNsNsNJcJcJcBmJcJcJcJcBmBmBmBmBmBmBmLgLgLgLgsNsNsNJcsNsNsNJcJcJcBmBmBmBmBmdIdI dIskskBmBmBmBmBmJcJcubLuLuLuVhVhVhPAJcBmBmBmJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcububJcJcJcJcBmLgLgLgBmJcJcBmJcJcBmBmJcJcJcJcBmJcJcJcJcJcJcCGsNsNsNJcJcJcJcsNJcJcBmJcJcBmBmBmBmBmJcJcsNsNsNsNJcJcBmBmJcJcJcJcBmBmBmBmBmBmBmLgLgLgsNsNsNsNJcsNsNsNJcJcJcJcBmBmBmBmdIdI dIdIskskskskskskJcJcububLuLuVhVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcububJcJcJcJcBmLgsNLgtMBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcCGJcJcJcJcJcJcsNsNJcBmBmJcJcBmJcJcJcJcJcJcLgLgLgLgJcJcBmBmJcJcJcJcJcJcJcJcBmBmBmLgLgLgsNsNsNsNJcsNsNsNJcJcJcJcBmBmBmBmdIdI -dIdIdIskskskdIskBmJcububLuLuVhVhVhLuJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcBmBmsNLgLgJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcCGJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcLgLgLgLgBmJcBmBmJcJcJcJcJcJcJcJcBmBmBmLgLgLgsNsNsNsNJcsNsNsNJcJcJcJcBmBmBmBmdIdI +dIdIdIskskskdIskBmJcububLuLuVhVhVhLuJcBmBmBmJcJcJcJcFOJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcBmBmsNLgLgJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcCGJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcLgLgLgLgBmJcBmBmJcJcJcJcJcJcJcJcBmBmBmLgLgLgsNsNsNsNJcsNsNsNJcJcFOJcBmBmBmBmdIdI dIJcJcskskskdIdIBmBmubububLuVhVhVhLuJcBmBmBmBmJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmLgLgsNBmJcJcJcJcububububububububububcMcMcMcMcMcMcMcMcMububJcJcJcJcJcJcBmBmJcJcJcJcBmJcsNLgLgLgJcBmBmLgLgsNsNsNsNsNsNsNLgLgLgLgLgLgsNsNsNsNJcsNsNsNJcJcJcJcBmBmBmBmdIdI dIJcBmskdIdIdIdIJcBmBmJcubLuVhVhVhLuJcJcBmBmBmJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcBmBmBmBmJcJcBmJcJcJcJccMqdqdqdqdqdzYvavavazYubnOgasNsNsNdAcMhHabJcJcJcBmBmJcBmBmJcsNJcJcJcBmLgLgLgLgJcBmBmLgLgsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcBmBmBmBmdIdI dIBmBmdIdIdIdIdIJcBmBmJcubLuVhVhVhLuJcJcBmBmBmJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcqdubububububvaPtRtJAvaubsNsNgasNsNubcMFeabJcJcJcJcJcJcBmtMsNsNJcJcJcBmsNsNLgLgBmBmBmLgLgsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcBmBmBmBmBmdIdI @@ -267,98 +272,98 @@ dIdIdIdIdIdIdIdIJcJcBmBmubLuHcVhVhLuLuJcJcBmBmJcJcJcBmBmBmBmJcJcJcJcJcJcBmBmBmJc dIdIdIdIdIdIdIdIJcJcBmBmubLuVhVhVhLuLuLuJcBmJcBmBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcLgBmJcBmJcJcqdsNsNubububzYvkRToAvasNsNZmsNsNsNsNYnsNabJcJcJcJcJcJcJcJcJcsNJcJcJcJcJcJcJcJcJcJcJcLgLgLgLgLgsNsNsNsNsNsNLgLgLgLgLgLgLgLgsNLgLgLgLgJcJcJcBmBmBmBmdIdI dIdIdIdIdIdIskBmBmBmBmBmubLuVhVhVhVhVhVhLuJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcLgBmBmBmJcJcqdsNsNubdZubzYRTaBARuosNabababababababababubububububJcJcJcJcsNsNJcJcJcJcJcJcJcJcJcJcLgLgLgLgLgsNsNsNsNLgLgLgLgLgLgLgLgLgLgLgLgLgLgLgJcJcJcBmBmBmBmdIdI dIdIdIskskskskJcBmBmBmBmubLuVhVhVhVhVhVhLuJcJcJcJcJcJcJcJcJcbpJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcLgJcJcJcJcJczBsNsNubububvarKARARuGsNabababababababababJcJcJcJcubJcJcJcsNsNJcJcJcJcJcJcJcJcJcJcJcLgLgsNsNsNsNsNsNsNLgLgLgLgLgLgLgLgLgLgLgLgLgLgLgJcJcJcBmBmBmBmdIdI -dIdIskBmJcJcJcJcJcJcBmBmubPAfAfAfAVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcLgJcJcJcJcJczBLgsNubububvazYvKARvaabababababubsNcMsNLgJcJcJcJcubJcJcsNsNJcJcBmBmJcJcJcJcJcJcJcJcLgLgsNsNsNsNsNsNsNLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmJcJcBmBmBmBmdIdI +dIdIskBmJcJcJcJcJcJcBmBmubPAfAfAfAVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcLgJcJcJcJcJczBLgsNubububvazYvKARvaabababababubsNcMsNLgJcJcJcJcubJcJcsNsNJcJcBmBmJcJcJcJcJcJcFOJcLgLgsNsNsNsNsNsNsNLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmJcJcBmBmBmBmdIdI dIBmBmJcJcJcJcJcJcJcJcJcubLufAfAfAVhVhVhLuJcJcBmBmJcJcJcJcJcJcBmJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcLgsNsNsNsNsNzBsNsNsNububzYvavaNXzYabababububsNsNsNsNsNJcJcJcJcubJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcBmLgLgLgLgLgsNsNsNsNLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmJcJcBmBmBmBmdIdI dIJcJcJcJcbpJcJcJcJcJcJcubLuLuLuLuVhVhVhLuJcJcBmBmJcJcJcJcBmBmBmJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcLgsNsNsNsNsNzBsNLgsNababzBabababababababubsNsNsNLgsNsNJcJcJcJcubJcJcJcbpJcJcaaJcJcJcJcJcJcJcJcBmLgLgLgLgLgLgsNsNsNsNsNLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmJcBmBmBmBmdIdI dIJcJcJcJcJcJcJcJcJcJcJcububububLuVhVhVhLuJcJcJcBmBmJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNJcJcJccMsNsNsNababYUababababababababubububsNsNLgJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmLgLgLgLgLgLgLgsNsNLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmJcJcBmBmBmdIdI -dIJcJcJcJcJcJcJcJcJcJcJcBmJcJcubLuVhVhVhLuLuJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNJcJcJccMcMcMcMcMcMcMVWVWVWVWJcBmubabJcJcsNsNsNsNJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmLgLgLgLgLgLgLgsNsNLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmBmJcBmBmBmdIdI +dIJcJcJcJcJcJcJcJcFOJcJcBmJcJcubLuVhVhVhLuLuJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNJcJcJccMcMcMcMcMcMcMVWVWVWVWJcBmubabJcJcsNsNsNsNJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmLgLgLgLgLgLgLgsNsNLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmBmJcBmBmBmdIdI dIJcJcJcJcJcJcJcJcJcJcJcBmBmJcubLuVhVhVhVhVhLuJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNJcJcBmBmBmJcJcJcBmJcJcJcJcJcJcabababJcJcBmJcJcJcJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmLgLgLgLgLgLgsNsNLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmBmJcBmBmBmdIdI dIJcJcJcJcJcJcJcJcJcJcJcBmBmJcubLufAfAVhVhVhNkLuJcBmBmBmBmBmBmBmBmBmBmBmJcJcJcbpJcJcJcJcJcJcJcLgsNLgBmBmBmBmBmJcababababababababababJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcsNJcJcJcJcBmJcJcJcBmBmBmBmLgLgLgLgLgLgsNsNLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmBmJcBmBmBmdIdI dIJcJcJcJcJcJcJcJcJcJcJcBmBmJcubLuLuVhVhVhVhVhVhLuBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcBmBmLgLgBmBmBmBmabababJcababJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcsNJcJcJcJcBmJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcBmBmBmdIdI dIJcJcJcJcJcJcJcBmBmBmBmBmBmJcubJcNkfAfAVhVhVhVhPABmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmLgKLJcJcJcababsNsNubLgsNsNsNsNsNsNsNsNLgsNsNsNsNLgsNsNubJcJcubJcJcsNsNsNJcBmBmBmJcBmBmBmBmBmJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmdIdIdIdIdIdIBmBmBmBmBmJcJcBmBmBmBmdIdI dIJcubjCububububJcJcJcJcububububububLuLufAfAVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcCGJcJcJcabJcIyIyIyIyIyIyIyAzIyAzIyAzIyIyubLgsNububJcubJcBmubJcJcsNJcJcJcBmBmBmJcBmBmBmBmJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmxlcBdIdIdIxlBmBmBmBmBmBmBmBmBmBmBmdIdI dIHHHHHHHHububububJcJcJcububububHHHHHHHHHHHHHHHHHHHHJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcabJcIyTrBoAWOGIyhgOJOJOJAOOJycIyIysNLgubsNJcsNJcBmubJcJcsNJcJcJcBmBmJcJcBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmxlUJMyMyUJxlBmBmBmBmBmBmBmBmBmBmBmdIdI -dIHHHHHHHHHHHHububJcJcJcububububHHHHububHHHHHHHHHHHHHHububububububububububububububububububububububububububabJcAzzmzmzmzmTytZtZxDxKwJqSOJIFIyLgububLgsNsNJcBmubJcJcsNsNJcJcBmBmJcJcBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmxlMyMyMyMyxlBmBmBmBmBmBmBmBmBmBmBmdIdI +dIHHHHHHHHHHHHububJcJcJcububububHHHHububHHHHHHHHHHHHHHububububububububububububruubububububububububububububabJcAzzmzmzmzmTytZtZxDxKwJqSOJIFIyLgububLgsNsNJcBmubJcJcsNsNJcJcBmBmJcJcBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmxlMyMyMyMyxlBmBmBmBmBmBmBmBmBmBmBmdIdI dIHHHHHHHHHHHHJcJcJcJcJcJcububJcubHHHHHHHHHHHHHHHHHHJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcubabJcIyeFzmzmLtIytZtZOJCcKTqSOJIyIyLgubsNJcsNsNJcBmubJcJcJcJcsNsNBmJcJcJcBmJcJcJcJcJcJcJcJcBmBmBmJcJcBmBmBmBmBmBmxlMyMyMyMyxlBmBmBmBmBmBmBmBmBmBmBmdIdI dIububububububJcJcJcJcJcJcJcubububububububLuVhVhVhLuJcJcJcJcJcBmBmBmBmJcdIdIJcubJcJcJcJcJcJcJcJcJcCGJcJcubabJcIyIyIyIyIyIyIyIyOJJzQMOJkeIyubJcJcLgsNubsNJcBmubJcJcJcJcJcJcsNsNsNJcJcJcJcJcJcJcJcJcJcBmJcBmJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmdIdI dIJcJcJcJcJcJcubJcJcJcJcJcJcBmJcJcJcJcJcLuLuVhVhVhLuJcJcBmJcBmBmBmBmBmJcdIubububdIdIdIdIdIdIdIdIJcCGJcJcababJcIyaSararWZIyoxoxtZtZtZtZtZAzububJcubsNLgubJcBmubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcBmBmBmBmBmBmBmdIdI -dIJcJcJcJcJcJcubJcJcJcJcBmBmBmBmJcJcJcJcLuLuVhVhVhLuJcBmBmBmBmJcBmBmBmJcJcubdIdIdIdIdIdIdIdIdIdIJcCGJcJcubabJcIyararararZGOJOJOJOJOJOJhgIyubsNubLgubububJcljububububububububububububububJcJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmdIdI +dIJcJcJcJcJcJcubJcJcJcJcBmBmBmBmJcJcJcJcLuLuVhVhVhLuJcBmBmBmBmJcBmBmBmJcJcubdIdIdIdIdIdIdIdIdIdIJcCGJcJcubabJcIyararararZGOJOJOJOJOJOJhgIyubsNubLgubububJcljubububububububububububububSEJcJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmdIdI dIBmJcJcJcJcJcubJcJcBmBmBmBmBmBmJcJcJcJcJcPAVhVhVhLuJcBmBmBmBmBmBmBmJcJcJcubdIdIdIdIdIdIdIdIdIdIJcCGJcJcababJcIySRWWarIGIyIyAzIygIIyAzIyIyububsNsNubLgubJcBmubJcJcJcJcsNsNJcJcubJcJcJcubJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmdIdI dIJcJcJcJcJcJcubJcJcBmBmBmJcJcJcJcJcJcJcJcLuVhVhVhLuJcBmBmBmBmBmBmBmJcJcdIubdIdIdIdIdIdIdIdIdIdIJcBmJcJcababJcIyACbtIybtIyabababtLabubpwTzubububsNubsNubabJcubJcJcsNsNsNJcsNJcubJcJcJcubJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmJcdI -dIskskBmJcJcJcubJcJcBmBmJcJcJcJcJcJcJcLuLuLuVhVhVhLuJcJcBmJcBmJcJcJcJcJcdIubdIdIdIdIdIdIdIdIdIdIJcBmJcJcubabJcIySRSRSRqVIyabXgababubdiubababJcJcLgsNubLgabJcubJcJcsNaaJcJcJcJcubJcJcJcubJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcdI +dIskskBmJcJcJcubJcJcBmBmJcJcJcJcJcJcJcLuLuLuVhVhVhLuJcJcBmJcBmJcJcJcJcJcdIubdIdIdIdIdIdIdIdIdIdIJcBmJcJcubabJcIySRSRSRqVIyabXgababubdiubababJcJcLgsNubLgabJcubJcJcsNaaJcJcJcJcubJcJcJcubJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJckaJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcdI dIskskBmJcJcJcubJcJcBmBmJcJcJcJcJcJcJcLuVhVhVhVhVhPAJcJcJcJcJcJcJcJcJcJcdIubdIdIdIdIdIdIdIdIdIdIJcBmJcJcubabJcIySRWWWWfyIyababababKdOuubababababababababababubJcJcsNBmJcBmBmJcubBmBmJcubJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcdI dIdIskBmJcJcJcubJcJcJcJcJcbpJcJcJcJcJcNkVhVhVhVhVhLuJcJcJcJcJcJcJcubububububdIdIdIdIdIdIdIdIdIdIJcCGJcJcubabJcIyIyIyIyIyIyababcPababababababababababababababubJcJcJcJcJcBmBmJcubBmBmJcubJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcdI -dIskskBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcLuVhVhyHyHyHLuJcJcJcJcJcJcJcubJcJcdIdIdIdIdIdIdIdIdIdIdIdIJcCGJcJcubJcabababJcabJcJcabJcBcQyyAkUBcJcababJcJcJcJcJcJcBmubJcJcBmJcJcBmBmJcubBmBmJcubJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcdI +dIskskBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcLuVhVhyHyHyHLuJcJcJcJcJcJcJcubJcJcdIdIdIdIdIdIdIdIdIdIdIdIJcCGJcJcubJcabababJcabJcJcabJcBcQyyAkUBcJcababJcJcJcJcJcJcBmubJcJcBmJcJcBmBmJcubBmBmJcubJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcFOJcJcJcJcdI dIskskBmBmJcJcububububububububububububLuVhVhLuububububJcububububububJcJcJcdIdIdIububububububububBmBmJcJcubJcJcBmJcBmsNabJcJcBmkUiSiSiSkUJcJcabJcJcJcJcBmJcJcubJcJcJcJcJcBmBmJcubBmBmJcubJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcdIdI dIskskBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhPAJcJcJcJcJcJcJcJcJcJcJcJcdIdIdIdIubdIdIdIdIdIdIdIBmJcJcJcubJcJcJcJcsNJcsNbkbkbkDciSiSiSDcJcababJcBmJcJcJcJcJcubJcJcJcJcJcBmBmJcubBmBmJcububububububububJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcdIdIdI -dIskskBmBmJcJcubJcJcJcJcJcJcBmBmJcJcJcNkVhVhVhLuJcJcJcsNsNsNsNsNsNJcJcJcdIdIdIdIubdIdIdIdIdIdIdIBmBmJcJcubJcJcJcJcsNJcBmJcJcJcDciSqRiSDcJcababJcJcJcBmBmJcBmubJcJcBmJcJcBmBmJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcBmBmdIdIdI +dIskskBmBmJcJcubFOJcJcJcJcJcBmBmJcJcJcNkVhVhVhLuJcJcJcsNsNsNsNsNsNJcJcJcdIdIdIdIubdIdIdIdIdIdIdIBmBmJcJcubJcJcJcJcsNJcBmJcJcJcDciSqRiSDcJcababJcJcJcBmBmJcBmubJcJcBmJcJcBmBmJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcBmBmdIdIdI dIdIskBmBmJcJcubJcJcJcJcJcJcBmBmJcJcJcLuVhVhVhLuJcJcJcsNsNsNsNsNsNJcJcJcdIdIdIdIubdIdIdIdIdIdIdIubububububJcJcBmsNJcBmJcBmJcJcQyiSiSiSkUJnababBmJcBmJcJcJcJcubJcBmJcJcJcBmBmJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcJcBmBmdIdIdI dIskskBmBmJcJcububJcJcJcJcBmBmBmJcJcJcLuVhVhVhLuJcJcJcsNsNsNsNsNsNJcJcJcJcJcJcJcubJcJcJcJcJcJcJcLuJcJcJcubJcaaJcaaJcaaJcJcBmJcBcQyDcDcBcJcababJcJcJcBmJcJcJcubJcJcJcJcJcBmBmJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmdIdIdI dIBmBmBmBmJcJcububJcJcBmJcBmBmBmJcBmJcLuVhVhVhNkJcJcJcsNsNsNsNsNsNsNsNsNJcJcJcJcubJcJcJcJcJcJcJcLuLuLuLuubJcJcJcJcJcJcsNsNsNJcsNBmsNsNsNJcJcabababJcJcJcJcJcubJcJcJcBmJcJcBmJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmdIdIdI -dIBmBmBmJcJcJcububJcJcBmJcBmBmBmJcBmJcPAVhVhVhLuJcJcJcsNsNsNsNsNsNsNsNsNJcJcJcJcubJcJcJcBmBmJcJcJcLuLuLuububububububububububububububububububababubububububububJcJcJcJcJcJcLgLgsNJcLgLgsNsNsNsNsNsNsNsNsNsNJcBmJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmdIdIdI +dIBmBmBmJcJcJcububJcJcBmJcBmBmBmJcBmJcPAVhVhVhLuJcJcJcsNsNsNsNsNsNsNsNsNJcJckaJcubJcJcJcBmBmJcJcJcLuLuLuububububububububububububububububububababubububububububJcJcJcJcJcJcLgLgsNJcLgLgsNsNsNsNsNsNsNsNsNsNJcBmJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmdIdIdI dIJcJcJcJcJcJcububJcJcJcBmBmBmBmBmJcJcLuVhVhVhLuJcJcJcsNsNsNsNsNsNsNsNsNJcJcJcJcubJcJcBmBmBmBmJcJcLuLuLuJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNzYkcfcyVkcmumumumumumumumufczYJcJcLgLgsNJcLgLgsNsNsNsNLgLgLgLgLgLgBmBmBmBmBmubJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmdIdIdI dIJcJcJcJcJcJcububJcJcJcBmBmBmBmBmJcJcLuVhVhVhLuJcJcJcsNsNsNsNsNsNsNsNsNJcJcJcJcubJcJcJcBmBmBmJcBmJcLuLuLuLuLuJcJcJcJcsNsNsNsNsNsNsNLgsNcNTfTjTfHnSRLOsqbgOjtFAYPnFycNJcJcLgLgsNJcLgLgsNsNsNLgLgLgLgLgLgLgBmBmBmBmBmubJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmdIdIdI -dIEpubububububububJcJcJcBmBmBmBmBmJcJcLuVhVhVhLuJcJcJcsNsNsNsNsNLgLgsNsNJcJcJcJcubJcJcJcJcBmBmJcBmJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNfeQGNqTfTfhjARARARARSRbgSRSRfeJcBmLgLgsNBmLgLgsNsNsNLgLgLgLgLgLgLgBmBmBmJcJcubJcJcJcJcJcBmBmJcJcJcBmBmJcBmBmBmBmBmdIdIdI -dIJcJcJcJcJcJcububJcJcJcBmBmBmBmBmJcJcNkVhVhVhPAJcJcJcJcJcJcJcsNLgLgLgLgBmBmJcJcubJcJcJcJcBmJcJcBmBmJcJcBmBmBmBmBmBmBmLgLghbhbhbLghbhbhbPqTfTfTfYDyPDlHIMkARSRSRSRwNPqJcBmLgLgsNBmLgLgsNsNsNLgLgLgsNsNsNLgBmBmBmJcJcubJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmdIdIdI +dIububububububububJcJcJcBmBmBmBmBmJcJcLuVhVhVhLuJcJcJcsNsNsNsNsNLgLgsNsNJcJcJcJcubJcJcJcJcBmBmJcBmJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNfeQGNqTfTfhjARARARARSRbgSRSRfeJcBmLgLgsNBmLgLgsNsNsNLgLgLgLgLgLgLgBmBmBmJcJcubJcJcJcJcJcBmBmJcJcJcBmBmJcBmBmBmBmBmdIdIdI +dIJcJcJcJcJcJcububJcJcJcBmBmBmBmBmJcJcNkVhVhVhPAJcJcJcJcJcJcJcsNLgLgLgLgBmBmJcJcubJcJcJcJcBmJcJcBmBmJcJcBmBmBmBmBmBmBmLgLghbhbhbLghbhbhbPqTfTfTfYDyPDlHIMkARSRSRSRwNPqJcBmLgLgsNBmLgLgsNsNsNLgLgLgsNsNsNLgBmBmBmJcJcubAGJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmdIdIdI dIJcJcJcJcJcJcubJcJcJcJcJcBmBmJcBmBmJcLuVhVhVhLuJcJcJcJcJcJcJcLgLgLgsNsNJcJcJcJcubJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmLgsNsNsNLgsNsNsNsNzYkcAzfczYkcmuAzfczYqNzYkcfczYJcBmLgLgsNBmLgLgsNsNsNsNsNsNsNsNsNLgBmBmBmJcJcubJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmdIdIdI dIBmJcJcJcJcJcubJcJcJcJcJcBmBmJcBmJcJcLuVhVhVhLuJcJcJcJcJcJcBmLgLgLgsNsNJcJcJcJcubJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNLgsNgysNsNLgWYqXXHMWMWFWMWMWWDYAMWJcJcJcsNsNBmLgsNsNsNsNsNsNsNsNsNsNLgBmBmBmJcJcubJcJcJcBmBmBmBmBmBmBmJcBmBmJcBmJcBmBmBmdIdI dIBmBmBmBmBmJcubJcJcbpJcJcBmBmJcBmJcJcLuVhVhVhLuJcJcJcJcJcBmBmLgLgsNsNsNJcububububJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcsNLgsNsNsNsNsNsNsNsNMWMWMWMWMWMWMWMWMWMWJcBmLgsNsNBmLgsNsNsNsNsNsNsNsNsNsNLgBmBmBmJcJcubJcJcJcBmBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmdI dIskskBmBmBmJcubJcJcJcJcJcBmBmJcBmJcJcLuVhVhVhLuJcJcJcJcJcBmJcsNsNLgLgsNJcububJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNububububububububububububsNLgLgLgsNsNLgLgsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmdI -dIskskBmBmBmJcubJcJcJcJcJcBmBmBmBmJcJcLuVhVhVhLuJcJcJcJcJcBmBmBmBmBmBmBmBmububJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNLgLgLgLgLgubJcubJcubJcubJcubJcubJcsNsNubLgLgLgsNsNLgLgsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmdI +dIskskBmBmBmJcubJcJcJcJcJcBmBmBmBmJcJcLuVhVhVhLuJcJcJcJcJcBmBmBmBmBmBmBmBmububJcJcJcJcAGJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNLgLgLgLgLgubJcubJcubJcubJcubJcubJcsNsNubLgLgLgsNsNLgLgsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmdI dIskskBmBmBmJcubJcJcJcJcBmBmBmBmBmJcJcLuVhVhVhNkJcJcJcJcJcJcJcBmBmBmBmBmBmububJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNLgLgLgLgLgLgLgJcJcubJcubJcsNJcubJcubJcsNublyLgLgLgsNsNLgLgsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmdI -dIskskBmBmBmJcubJcJcJcJcBmBmJcBmBmJcJcLuVhVhVhLuJcJcJcJcJcJcJcububububububububJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNLgLgLgsNLgLgLgLgsNBmsNsNubJcubJcsNJcubJcubJcsNsNsNLgLgLgsNsNLgLgsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmdI +dIskskBmBmBmJcubJcJcJcJcBmBmJcBmBmJcJcLuVhVhVhLuJcJcJcJcJcJcJcububububububububJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNLgLgLgsNLgLgLgLgsNBmsNsNubJcubJcsNJcubJcubJcsNsNsNLgLgLgsNsNLgLgsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmBmJcJcJcJcJckaJcJcJcBmBmBmBmdI dIskskBmBmBmJcubJcJcJcJcBmBmJcBmBmJcJcLuVhHcVhLuLuJcJcJcbpJcJcubJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcsNubsNJcubJcsNJcubJcubJcubububLgLgsNsNsNLgsNsNsNsNsNsNsNsNsNsNLgLgBmBmBmJcJcubJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcBmBmBmBmdI dIskskBmBmBmJcubJcJcJcJcBmBmJcBmBmJcJcLuVhVhVhVhLuubJcJcJcJcJcubJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNLgsNsNJcsNsNsNJcubJcubububububububububLgLgsNsNsNLgsNsNsNsNsNJcJcJcJcJcBmBmBmBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmdI dIskskBmBmBmJcubJcJcJcJcJcJcJcBmBmJcJcLuVhVhVhVhLuubububububububJcJcJcBmJcBmJcBmJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNLgsNsNJcsNsNLgsNsNsNubububJcJcJcJcsNsNLgLgsNLgLgLgsNLgLgLgLgBmBmJcBmBmBmBmBmJcJcJcJcububububububububububububububububJcBmBmBmBmdI -dIBmBmBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhVhLuubJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcubububububububububububJcJcJcJcLgLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcBmBmdI +dIBmBmBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhVhLuubJcJcJcJcJcFOJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcubububububububububububJcJcJcJcLgLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcBmBmdI dIJcJcJcJcJcJcubJcJcJcJcJcJcJcububububLufAfAVhVhPAubJcJcJcJcJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcJcJcBmBmBmBmJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcubJcJcBmBmLgLgLgLgLgLgLgBmBmBmBmBmJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcububububJcJcdI dIJcJcJcJcJcJcubJcJcJcJcJcJcJcubJcJcJcLuLuLuVhVhVhLuJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcBmBmBmBmJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcubJcJcBmBmsNsNLgLgsNsNsNJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcBmJcBmBmJcJcJcJcJcubJcJcdI dIJcJcJcJcJcJcubububububububububJcJcLuPALuLuVhVhVhLuJcJcJcJcJcJcBmBmBmBmLgLgskLgLgLgLgBmBmBmBmBmBmBmBmJcBmBmBmBmLgsNsNsNsNLgLgLgLgLgLgLgLgLgLgBmJcJcJcJcJcJcJcJcJcJcubBmBmBmBmLgLgLgsNsNsNsNJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcubJcJcdI -dIEpububububububububububububububLuLuLuLuLuPAVhVhVhLuJcJcJcJcJcBmJcBmBmBmLgLgskLgLgLgLgBmBmBmBmBmBmBmBmBmBmBmJcJcsNsNsNsNLgLgsNsNsNsNsNsNsNLgLgBmBmBmBmBmBmBmBmBmBmBmubJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcBmBmBmBmJcBmJcubJcJcdI +dIububububUlububububububububububLuLuLuLuLuPAVhVhVhLuJcJcJcJcJcBmJcBmBmBmLgLgskLgLgLgLgBmBmBmBmBmBmBmBmBmBmBmJcJcsNsNsNsNLgLgsNsNsNsNsNsNsNLgLgBmBmBmBmBmBmBmBmBmBmBmubJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcBmBmBmBmJcBmJcubJcJcdI dIJcJcJcJcJcJcJcJcJcJcJcJcJcLuLuLuJcJcLuLuLuVhVhVhLuJcJcJcJcBmBmBmBmBmBmLgLgskLgLgsNsNJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNLgsNsNsNsNsNsNsNsNsNLgBmBmJcJcJcJcJcJcJcJcJcubJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcJcBmBmBmBmBmBmBmJcJcBmJcBmBmJcJcJcJcJcJcJcJcBmBmBmJcubJcJcdI -dIJcJcJcJcJcJcJcJcJcJcJcJcLupuLuJcJcJcJcPALuVhVhVhLuJcJcBmBmBmBmBmBmBmBmLgLgskLgLgsNsNubububububububububububububsNsNsNsNLgsNsNsNsNsNsNsNsNsNLgBmBmJcJcJcJcJcJcJcbpJcubJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcJcBmBmJcJcJcBmBmBmBmBmBmBmJcJcptJcJcJcJcJcJcJcJcJcJcJcJcubdI +dIJcJcJcJcJcJcJcJcJcJcJcJcLupuLuJcJcJcJcPALuVhVhVhLuJcJcBmBmBmBmBmBmBmBmLgLgskLgLgsNsNubububububububububruubububsNsNsNsNLgsNsNsNsNsNsNsNsNsNLgBmBmJcJcJcAGJcJcJcbpJcubJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcJcBmBmJcJcJcBmBmBmBmBmBmBmJcJcptJcJcJcJcJcJcJcJcJcJcJcJcubdI dIskdIJcJcJcJcJcJcJcJcLuLuLuLuJcJcJcJcJcJcNkVhVhVhLuJcJcBmBmBmBmBmBmBmBmsNLgskLgLgsNsNubsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcubububJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcBmBmJcJcJcJcBmBmBmBmBmBmBmJcJcptJcJcJcJcJcJcJcJcJcJcubJcubdI -dIskskJcJcJcJcJcJcJcLuLuLuJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcBmBmBmBmBmBmBmJcsNLgskLgsNsNsNubsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcubJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcBmJcJcJcJcJcJcBmJcJcJcJcJcJcptptJcJcJcJcJcJcJcJcJcJcubububdI +dIskskJcJcJcJcJcJcJcLuLuLuJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcBmBmBmBmBmBmBmJcsNLgskLgsNsNsNubsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcubJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNJcJcBmJcJcJcJcJcJcBmJcJcJcJcJcJcptptJcJcJcJcJcJcJcJcJcJcEpububdI dIdIdIJcJcJcJcJcJcLupuLuJcJcJcJcJcJcJcJcubLuVhVhVhLuJcJcBmBmBmBmBmBmJcJcJcBmskBmJcJcJcubsNLgsNsNsNsNsNsNLgLgJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcBmBmBmJcJcJcsNsNsNsNsNubsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcptJcJcJcJcJcububdI dIdIJcJcJcJcJcJcLuLuLuJcJcJcJcJcJcJcJcJcubLuVhVhVhLuJcJcBmBmBmJcBmJcJcJcJcBmskBmJcJcJcubsNLgLgLgLgLgLgLgLgLgBmBmBmJcJcJcJcBmBmJcJcJcJcJcJcBmBmJcJcJcJcsNsNsNsNsNubsNsNsNsNsNsNsNsNsNsNsNsNLgsNLgJcBmBmJcJcJcptJcJcJcJcJcptptJcJcptptptJcJcJcJcJcJcJcJcJcptubJcdI -dIJcJcJcJcLuLuLuLuLuJcJcJcJcJcJcJcJcJcJcubLuVhVhVhLuJcBmBmBmBmJcBmJcJcJcJcBmskLgJcJcJcubsNsNsNLgLgLgLgLgLgLgBmBmBmJcJcJcJcBmBmJcJcBmJcJcBmBmBmJcJcJcJcsNsNsNsNsNubsNsNsNsNsNsNsNsNLgsNLgsNsNsNsNJcBmBmJcJcJcJcJcJcJcJcJcJcptJcJcJcptJcJcJcptJcJcptJcptJcJcJcJcdI +dIJcJcJcJcLuLuLuLuLuJcJcJcJcJcJcJcJcJcJcubLuVhVhVhLuJcBmBmBmBmJcBmJcJcJcJcBmskLgJcJcJcubsNsNsNLgLgLgLgLgLgLgBmBmBmJcJcJcJcBmBmJcJcBmJcJcBmBmBmJcJcJcJcsNsNsNsNsNubsNsNsNsNsNsNsNsNLgsNLgsNsNsNsNJcBmBmJcJcJcJcJcJcFOJcJcJcptJcJcJcptJcJcJcptJcJcptJcptJcJcJcJcdI dIJcJcLupuLuLupuJcJcJcJcJcJcbpJcJcJcJcJcubLuVhVhVhLuJcBmBmBmsNLgLgsNsNsNsNLgskLgLgsNsNubsNsNsNsNsNLgLgLgLgLgJcJcJcJcJcJcBmBmBmJcBmBmJcBmBmBmLgLgsNsNsNsNsNsNsNsNubsNsNLgLgLgsNLgsNsNsNsNsNsNsNsNJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcptJcJcJcJcJcdIdI -dIJcLupuLuLuJcJcJcJcJcJcJcJcJcJcJcJcJcJcubLuVhVhVhLuJcBmBmBmsNLgsNsNsNsNsNLgskLgLgsNsNubsNsNsNsNsNLgLgLgLgLgJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcJcsNLgLgLgsNLgsNsNsNsNubLgLgLgsNLgsNsNsNsNsNsNsNsNsNsNJcBmJcJcJcJcptJcJcJcJcJcptJcJcJcJcJcptJcJcptJcptJcJcJcJcptJcdIdI +dIJcLupuLuLuJcJcJcJcJcJcJcJcJcJcJcJcJcFOubLuVhVhVhLuJcBmBmBmsNLgsNsNsNsNsNLgskLgLgsNsNubsNsNsNsNsNLgLgLgLgLgJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcJcsNLgLgLgsNLgsNsNsNsNubLgLgLgsNLgsNsNsNsNsNsNsNsNsNsNJcBmJcJcJcJcptJcJcJcJcJcptJcJcJcJcJcptJcJcptJcptJcJcJcJcptJcdIdI dILuLuLuLuJcJcJcJcJcJcJcJcJcubububububububLuVhVhVhLuBmBmBmBmsNsNsNsNsNsNsNLgskLgLgsNsNubJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmBmBmJcJcJcJcsNsNsNsNsNsNsNLgLgsNubLgsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcptJcJcJcJcJcJcdIdI dILuLuLuJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcJcLuVhVhVhPAJcJcJcJcsNsNsNsNsNsNsNsNLgLgLgsNsNubJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNubsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcdIdI -dILuJcJcJcububububububububububJcJcbpJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcJcubJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNububububububsNsNsNsNJcJcJcJcJcJcJcBmBmJcJcJcJcBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcptJcJcdIdI +dILuJcJcJcububububububSEubububJcJcbpJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcJcubJcYiJcJcJcBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNububububububsNsNsNsNJcJcJcJcJcJcJcBmBmJcJcJcJcBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcptJcJcdIdI dIJcJcJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcubJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcBmBmJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcptJcptptJcJcdIdI -dIEpububububJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcubJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcdIdI -dIJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcubububububJcBmBmJcJcubJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcbpJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcubububBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcptJcptptJcJcdI +dIubububububJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcubJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcdIdI +dIJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcubububububJcBmBmJcJcubJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcbpJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcAGJcJcJcubububBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcptJcptptJcJcdI dIJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcJcJcJcJcJcPAVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcubJcBmBmJcJcubJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcubJcJcJcJcJcJcBmBmBmBmBmBmBmBmJcJcJcJcJcubJcJcJcJcJcJcJcdIdI dIdIdIdIdIdIskskskskskskskBmJcJcJcJcJcJcJcLuVhVhVhNkJcJcJcJcJcJcJcJcJcJcJcubJcBmBmJcsNubsNsNsNsNLgLgLgLgBmBmBmJcJcJcJcJcBmJcBmJcJcJcJcJcJcJcsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcububJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcubJcptJcptJcptJcJcdI -dIskskskskskskskdIskskskskBmBmBmJcJcJcJcJcLuVhVhVhLuJcJcJcJcJcJcJcJcJcbpJcubJcJcBmJcsNubsNsNsNsNLgLgLgLgBmBmBmBmBmJcJcJcBmJcBmJcJcJcJcJcJcJcsNsNsNLgLgLgLgLgsNLgLgLgBmBmJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcptJcdIdI +dIskskskskskskskdIskskskskBmBmBmJcJcJcJcJcLuVhVhVhLuJcJcJckaJcJcJcJcJcbpJcubJcJcBmJcsNubsNsNsNsNLgLgLgLgBmBmBmBmBmJcJcJcBmJcBmJcJcJcJcJcJcJcsNsNsNLgLgLgLgLgsNLgLgLgBmBmJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcptJcdIdI dIJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcpuVhVhVhLuJcJcJcJcJcJcJcJcJcJcJcubububububububsNsNsNsNLgLgLgLgBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcsNLgLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcptptJcptptJccMdI dIJcJcbpJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmJcLuVhVhVhLupuLuJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmsNsNsNsNLgLgLgLgLgLgLgLgLgLgBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubJcJcJcJcJcJcJccMdI dIJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhLuPALuJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNsNsNLgBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcsNsNsNsNsNLgsNsNsNBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcubububububJcJcJcJcJcubJcJcJcJcububJcububJcJcptJcptptJccMdI dIBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhPAJcLupuLuJcJcJcBmBmBmBmBmBmBmJcJcsNsNLgLgLgLgLgLgBmBmBmJcsNsNsNsNsNsNsNsNsNsNsNsNJcJcsNsNsNsNsNLgLgLgLgBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcububububdiububububJcJcJcptptJcJccMdI -dIJcJcJcJcJcJcJcJcJcJcJchDhDhDhDhDJcJcJcJcNkVhVhVhLuJcJcLuLuJcJcJcJcJcJcJcBmBmBmBmBmLgLgLgLgsNLgLgLgBmBmJcJcsNsNsNsNsNsNsNsNsNsNsNsNJcubsNsNsNsNsNsNsNknLgBmBmBmBmJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubububdiOuubububububJcJcJcJcJcJccMdI -dIJcJcJcJcJcJchDJcJcJcJchDhDhDJcJcJcJcJcJcNkVhVhVhLuJcJcJcLuPALuJcJcJcJcJcJcJcJcJcJcBmskskBmBmBmBmBmJcBmBmJcsNsNsNsNsNZmsNsNsNsNsNsNJcJcsNsNsNsNsNsNsNLgLgBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubububububdiububububJcJcJccMcMcMcMdI -dIJcJcJcJcJchDhDhDJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhVhVhJcJcLuLuhDpuJcJcJccMJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmBmJcsNsNsNsNsNsNsNsNsNsNsNsNJcJcsNsNsNsNsNsNsNLgLgBmJcJcJcubububzNubJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubububububububububububububububzNcMcMcMcMcM +dIJcJcJcFOJcJcJcJcJcJcJchDhDhDhDhDJcJcJcJcNkVhVhVhLuJcJcLuLuJcJcJcJcJcJcJcBmBmBmBmBmLgLgLgLgsNLgLgLgBmBmJcJcsNsNsNsNsNsNsNsNsNsNsNsNJcubsNsNsNsNsNsNsNknLgBmBmBmBmJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubububdiOuubububububJcJcJcJcJcJccMdI +dIJcJcJcJcJcJchDJcJcJcJchDhDhDJcJcJcJcFOJcNkVhVhVhLuJcJcJcLuPALuJcJcJcJcJcJcJcJcJcJcBmskskBmBmBmBmBmJcBmBmJcsNsNsNsNsNZmsNsNsNsNsNsNJcJcsNsNsNsNsNsNsNLgLgBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubububububdiububububJcJcJccMcMcMcMdI +dIJcJcJcJcJchDhDhDJcJcJcJcJcJcJcJcJcJcJcJcLuVhVhVhVhVhJcJcLuLuhDpuJcJcJccMJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmBmJcsNsNsNsNsNsNsNsNsNsNsNsNJcJcsNsNsNsNsNsNsNLgLgBmJcJcJcubububzNubJcJcJcJcJcJcJcJcJcJcJcJcJcAGJcJcJcJcJcJcJcubububububububububububububububzNcMcMcMcMcM dIJcJcJcJcJchDhDJcJcJcJcJcJcJcJcJcJcJcJcJcLufAVhVhVhVhhDubHHHHhDLuHHHHHHHHJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmBmBmsNsNsNsNsNsNsNsNsNsNsNsNJcJcsNsNsNsNsNsNLgknkntMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcHHHHHHHHHHHHubububububububububububububublr dIJcJcJcJchDhDhDJcJcJcJcJcJcJcJcJcJcJcJcJcubLuVhVhVhVhhDhDHHHHHHHHHHububHHJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmBmBmsNsNsNsNsNsNsNsNsNsNsNsNJcJcJcJcJcJcJcJcBmtMtMtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcHHHHHHHHHHHHHHHHHHHHubububHHHHHHHHHHHHPGlr -dIJcJchDhDhDJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubLuVhVhVhVhubhDubububLuubhDububJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmtMtMtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHPGlr -dIhDhDhDhDhDhDhDhDJchDhDhDhDJcJcJcJcBmJcJcubLuVhVhVhVhhDhDJcJcJchDJchDhDJcJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmtMvWvWvWtMBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHPGlr +dIJcJchDhDhDJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubLuVhVhVhVhubhDubububLuubhDububJcJcFOJcJcJcdIdIJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJckaJcJcJcJcJcJcJcBmtMtMtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHPGlr +dIhDhDhDhDhDhDhDhDJchDhDhDhDJcJcJcJcBmJcJcubLuVhVhVhVhhDhDJcJcJchDJchDhDJcJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmtMvWvWvWtMBmJcJcJcJcJcJcJcFOJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHPGlr dIJcJchDhDhDhDhDhDJcJchDhDhDhDJcJcJcJcJcJcubLuVhVhVhVhhDJcJcJcJcJcJcJchDJcJcJcJcJcJcJcdIdIJcJcJcJcJcJcBmvWtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmvWtMtMvWvWtMBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcubububububububububububububububububububublr dIJcJcJchDhDhDhDhDJcJchDhDhDhDhDJcJcJcJcJcubpuVhVhVhHcubJcJcJcJcJcJcJchDhDhDJcJcJcJcJcdIdIJcJcJcJcJcJcJcBmtMJclrlrlrlrJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmvWtMtMvWBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcGVcMcMcMcMcM dIJcJcJchDhDububhDJcJcJchDhDhDhDhDJcJcJcJcubLuVhVhVhVhubJcJcJcBmJcJcJcJchDhDhDhDJchDJcdIdIJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmJcJcJcBmBmBmJcJcJcJcBmBmvWtMBmvWtMBmBmBmBmBmBmJcJcJcJcBmBmBmBmBmJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcubJccMcMcMcMdI -dIEpubububububhDhDJcJcJchDhDhDhDhDhDhDJcJcubLufAfAVhVhubJcJcBmBmJcJcJcJchDhDhDhDJchDhDdIdIhDhDhDJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmJcBmJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcubmJmJJcJccMdI +dIububububububhDhDJcJcJchDhDhDhDhDhDhDJcJcubLufAfAVhVhubJcJcBmBmJcJcJcJchDhDhDhDJchDhDdIdIhDhDhDJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmJcBmJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcubmJmJJcJccMdI dIJcJcJchDhDhDhDhDJcJcJcJchDJchDhDhDhDJchDubububVhVhVhubJcJcJcBmJcJcJcJcJchDhDhDJcJchDdIdIhDhDhDhDhDJcJcLuJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmJcJcJcJcmJmJmJmJcMdI dIJcJcJchDhDhDhDhDJcJcJcJcJcJchDhDhDJcJchDhDhDubVhVhVhVhJcBmBmBmBmBmJcJcJchDhDhDJcJchDdIdIhDhDhDJchDJcJcLuJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcmJmJmJmJmJcMdI dIJcJcJchDhDhDhDhDJcJcJcJcJcJcJchDhDhDhDhDJcJcubfAVhVhVhJcJcBmBmBmBmBmJcJchDhDhDhDJcJcdIdIhDhDhDhDhDJcJcLuJcJcJcJcJcBmBmJcJcJcbpJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmJcububJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcmJmJmJmJmJcMdI -dIJcJcJchDhDhDhDhDJcJcJcJcJcJcJcJchDJchDhDhDJcububVhVhVhJcJcJcJcJcBmBmBmJcJchDhDhDJcJcdIdIhDhDhDhDJcJcJcLuJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcmJmJmJmJmJcMdI +dIJcJcJchDhDhDhDhDJcJcJcJcJcJcJcJchDJchDhDhDJcububVhVhVhJcJcJcJcJcBmBmBmJcJchDhDhDJcJcdIdIhDhDhDhDJcJcJcLuJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcAGJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcFOJcJcJcBmBmJcJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJckaJcJcJcJcJcmJmJmJmJmJcMdI dIJcJchDhDhDhDhDhDJcJcJcJcJcJcJcJcJcJcJchDhDJcububVhVhVhJcJcJcJcJcJcJcJcJcJchDhDhDJcJcdIdIhDhDJcJcJcJcJcLuJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcBmBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcmJmJmJmJmJdIdI -dIJchDhDhDhDhDhDhDJcubJcJcJcJcJcJcJcJcJcJchDhDububVhHcVhJcJcJcJcJcJcJcJcJcJcJcJchDJcJcJcJcJcJcJcJcJcJcJcLuJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcmJmJmJmJmJdIdI +dIJchDhDhDhDhDhDhDJcubJcJcJcJcFOJcJcJcJcJchDhDububVhHcVhJcJcJcJcJcJcJcJcJcJcJcJchDJcJcJcJcJcJcJcJcJcJcJcLuJcJcJcJcBmBmBmBmJcJcJcJcJcJcJcJcJcBmBmJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcmJmJmJmJmJdIdI dIJchDhDJchDhDhDhDJcubJcJcJcJchDJcJcJcJcJcJchDububVhVhVhJcJcJcJcJcJcJcJcJcJcJcJchDJcJcJcJcJcJcJcJcJcJcJcLuLuJcJcJcBmBmBmBmBmBmJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcmJmJmJmJdIdIdI -dIhDhDhDJchDhDhDhDJcubJcJcJchDhDJcJcJcBmJcJcJcububVhVhVhVhVhVhJcJcJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcdIdIdIdIdIdIJcBmtMtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcmJmJmJmJdIdIdI +dIhDhDhDJchDhDhDhDJcubJcJcJchDhDJcJcJcBmJcJcJcububVhVhVhVhVhVhJcJcJcJcJcJcBmJcJcJcJcFOJcJcJcJcJcJcJcdIdIdIdIdIdIJcBmtMtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmBmJcJcJcJcJcJcJcJcmJmJmJmJdIdIdI dIhDhDJcJchDhDhDhDJcubJcJcJchDhDJcJcJcBmJcJcJcububfAfAVhVhVhVhhDhDhDJcJcJcJcJcJcJcJcJcJcJcdIdIdIdIdIdIdIdIdIdIdIJcBmtMtMtMBmBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmJcJcJcBmBmJcJcJcJcBmBmJcJcJcJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmJcJcJcJcJcmJmJmJmJdIdI dIhDhDJcJchDhDhDhDJcubJcJcJchDhDJcBmBmBmBmBmubububububVhVhVhVhhDdIdIdIdIdIdIdIdIdIdIdIJcdIdIdIdIdIdIdIdIdIdIdIdIdIdIfZfZskskBmJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcBmBmBmBmJcJcBmJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmJcJcmJmJmJmJmJmJdIdI -dIhDhDJcJcJchDhDhDJcUlJcJcJcJchDJcJcBmBmBmubububUlububVhVhVhVhhDdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIskfZskskBmJcJcJcJcJcJcJcJcJcJcbpJcJcJcJcJcbpJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcBmBmBmBmBmJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcdIdImJmJmJdIdIdIdI +dIhDhDJcJcJchDhDhDJcubJcJcJcJchDJcJcBmBmBmububububububVhVhVhVhhDdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIskfZskskBmJcJcJcJcJcJcJcJcJcJcbpJcJcJcJcJcbpJcJcJcJcBmBmBmBmBmBmJcJcJcJcJcBmBmBmBmBmJcJcJcJcBmBmBmBmBmBmBmBmBmBmBmBmBmBmJcdIdImJmJmJdIdIdIdI dICDdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdIdI "} (1,1,2) = {" diff --git a/_maps/map_files/roguetown2/otherz/smallswamp.dmm b/_maps/map_files/roguetown2/otherz/smallswamp.dmm index 437e4ad45f..9863b0e5d5 100644 --- a/_maps/map_files/roguetown2/otherz/smallswamp.dmm +++ b/_maps/map_files/roguetown2/otherz/smallswamp.dmm @@ -10,7 +10,9 @@ "j" = (/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/bog) "l" = (/turf/closed/mineral/random/rogue/high,/area/rogue/indoors/cave) "o" = (/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/bog) +"q" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/bog) "r" = (/turf/open/floor/rogue/dirt,/area/rogue/indoors/cave) +"s" = (/obj/effect/landmark/start/adventurerlate,/turf/open/floor/rogue/dirt,/area/rogue/outdoors/bog) "v" = (/obj/structure/portal,/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/bog) "w" = (/turf/open/floor/rogue/dirt/road,/area/rogue/indoors/cave) "x" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/bog) @@ -18,7 +20,10 @@ "z" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/bog) "B" = (/obj/effect/landmark/events/testportal{aportalloc = "bog"},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/bog) "D" = (/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/bog) +"F" = (/obj/effect/landmark/start/adventurerlate,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/bog) "G" = (/turf/open/water/swamp,/area/rogue/outdoors/bog) +"M" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/bog) +"O" = (/obj/effect/landmark/start/adventurerlate{icon_state = "arrow"; dir = 1},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/bog) "Q" = (/turf/closed/mineral/random/rogue/med,/area/rogue/outdoors/bog) "S" = (/obj/structure/fluff/traveltile/vampire{aportalgoesto = "vampin"; aportalid = "vampexit"},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/woods) "U" = (/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/hexstone,/area/rogue/outdoors/bog) @@ -31,105 +36,105 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb booooooooooDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGoooooooooooooYYoooooooooooYYGGGGGGGGGGGGGGGGGGGGGGGGGGGQQQQQQQGGGGGGGGQQQQQQQQQQQQQob booooooooooDDDDDDDDDDDDDDDDDDDDDDDDDGGGGGGGGGGGooooooGGGDDGGGGGGGGGGGDDGGGGGGGGGGGGGGGGGGGGDDDDDDDQQQQQQQDDDGGGDDQQQQQQQQQQQQQob -boooooDDDDDDDDDDDDDDDDDDDDDDDDDDDDDGGGDDDDDDDDDDDDDDDGGGDDGGGGDDDDDDDDDDDDDDDGGGGGGGaaaaaGGDDDDDDDQQQQQQQDDDGGGDQQQQQQQQQQQQQQob +boooooDDDDDDzDDDDDDDDDDDDDDDDDDDDDDGGGDDDDDDDDDDDDDDDGGGDDGGGGDDDDDDDDDDDDDDDGGGGGGGaaaaaGGDDDDDDDQQQQQQQDDDGGGDQQQQQQQQQQQQQQob boooooaaaaaDDaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaaaaaaaaaaaaGGDDGGGGaaaaaaaDBaaaaaaacaaaaaaaaaGGGaaaaaaaQQQQQQQaaaGGaaQQQQQQQQQQQQQQob boooeeeGGGaDDaaaaaaGGGGGGGGGGaaaaGaGaaaaaaaaaaaaaaaaaaaaDDaaGGaaaaaaaDDaaaaaaaccaaaaaaaGGGGaaaaQQQQQQQQQQaaaGGaaQQQQQQQQQQQQQQob boooeeeGGGaDaaaaaaaGGGGGGGGGGaaaaaaGaaaaaaaGGaaaaaaaaaaaDDaaGGaaaaaaaDDaaaaaaaaccccaaaGGGGGaaaaQQQQQQQQQQaaaGGaaQQQQQQQQQQQQQQob -boooeeeeeGaDDaaZaaaGGGGeeGGGGaaaaaaGGaaaaaaGGaGaaaaaaaaaDDaaaaaaaaaaaDDaaaaaaaaccccaaaaaGGGaaaaQQQQQQQQQQaaaGGaaaaaQQQQQQQQQQQob +boooeeeeeGaDDaaZaaaGGGGeeGGGGaaaaaaGGaaaaaaGGaGaaaaqaaaaDDaaaaaaaaaaaDDaaaaaaaaccccaaaaaGGGaaaaQQQQQQQQQQaaaGGaaaaaQQQQQQQQQQQob booDaGeeeGaDDaaaaaGGGeeeeeeGGGaaaaaaaaaaaGGGGaGaaaaaaaaaDaaaaaaaaaaaaDDaaaaaaaaacccaaaaaGGGaaaaQQQQQQQQQQaaaGGaaaaaaQQQQQQQQQQob booDaGeeeGaaDaaaaaGGGeeeeeeGGGGGaaaaaaaaaaGGGGGaaaaaaaaaDaaaaaaGaaaaaDDaaaaaGaaacccaaaaaGGGaaaaaaQQQQQQQQaaaGaGGaaaaQQQQQQQQQQob bGDDaGeeeGaaDaaaaaGGGeeeeeeeGGGGaaaaaaaaaaaGGGGaaaaaaaaaDaaaaaaaaGaaaDDaaaaaGaaaaccaaaaaaGGaaaaaaQQQQQQQQaaaGGGGaaaaaaaQQQQQQQob -boDDaGGGeGaaDaaaaaaGGeeeeeeeGGaaaaaaaaaaaaaGGGGGaaaaaaaaDaaaaaaGaGaaaDaaaaaaGaaaacccaaaaaaGaaaaaaQQQQQQQQaaaGGGaaaaaaaaQQQQQQQob -boDDaaGaGGaaDaaaaaaGGeeeeeeeGGaaaaaaGGaaaaaaGGGGaaaaaaaaDaaaaaaGGGGaaDaaaaaaGaaaacccaaaaaGGGaaaaaaQQQQQQaaaaaGGDDDDDDDDDDDDDzGob +boDDaGGGeGaaDaaaaaaGGeeeeeeeGGaaaaaaaaaaaaaGGGGGaaaaaaaaDaaaaaaGaGaaaDaaaaaaGaaaacccaaaaaaGaqaaaaQQQQQQQQaaaGGGaaaaaaaaQQQQQQQob +boDDaaGaGGaaDaaaaaaGGeeeeeeeGGaaaaaaGGaaaaaaGGGGaaaaaaaaDaaaaaaGGGGaaDqaaaaaGaaaacccaaaaaGGGaaaaaaQQQQQQaaaaaGGDDDDDDDDDDDDDzGob boDDaaaaGGaaDaaaaaaGGGGeeeeeGGaaaaaaaGaaaaaaGGGGaaaaaaaaDaaaaaaaGGGaaDaaaaaaGaaaaaccaaGGGGGGaaaaaaaaQQQQaaaaaaGGaaaaaaaaGaGGDGob booDaaaaaaaaDaaaaaaGGGGGGGeeeGaaaaGGGGaaZaaaaGaGaaaaaaaaDaaaaaaaGGGaaDaaaaGaGaaaaaccaaaaaaGGaaaaaaaaQQQQaaaaaaGGaaaaaaaaGGGDDGob booDaaaaaaaaDaaaaaaaaaaGGGeeeGaaaaaaaaaaaaaaaGGGaaaaaaaaDaaaaaaaaaaaaDaaaaaaGaGaaacccaaaaaGGaaaaaaaaQQQQaaaaaaGGGaaaaaaaGGGDDGob -bDDDDDDDDDDDDDDDDDaaaaaGGGGeeGaaaaaaaaaaaaaaaGGGaaaaaaaaDaaaaaaaaaaaaDaaaaaaaaGaaaccaaaaaaaGGaaaaaaQQQQQaaaaaaaaGGaaaaaGGGaDDGob +bDDDDDDDDDDxDDDDDDaaaaaGGGGeeGaaaaaaaaaaaaaaaGGGaaaaaaaaDaaaaaaaaaaaaDaaaaaaaaGaaaccaaaaaaaGGaaaaaaQQQQQaaaaaaaaGGaaaaaGGGaDDGob bDDDaaaaaaaaaaaaaDaaaaaaGGGGGGaaaaaaaaaaaaaaaGGGaaaaaaDDDDDDDDDDDDDDDDaaaaaaaaGaaacccaaaaaaGGGaaaaaQQQQQaaaaaaaaGGGaaaaGGaaDGGob -booDaoooooaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaaaaGGaGGaaccccaaaaGGGaaaaaaaaaQQQaaaaaaaaaGGGaaaGaaaDGGob +booDaoooooaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaOaaaaaaaaaaDaaaaGGaGGaaccccaaaaGGGaaaaaaaaaQQQaaaaaaaaaGGGaaaGaaaDGGob boooooooooooooaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaaaaaGGGaaacccccaaaGaaaaaaaaaaaQQQaaaaaaaaGGGGaGaaaaaDGGob -booooooaaaooaaaaaDaaGGGGGGaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaccccaaaaaGaaaaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaDGGob -booooooaaaaaGGGGaDaaGGaaaGGaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaGGGGaaaaaccccaaaaaGaaaaaaaaaaaaaaaaaaaaaaGGGGaaaaaaaDGGob +booooooaaaooaaaaaDaaGGGGGGaaaaaaaaMaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaccccaaaaaGaaaaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaDGGob +booooooaaaaaGGGGaDaaGGaaaGGaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaGGGGaaaaaccccaaaaaGaaaaaaaaaaaaaaaaaOaaaaGGGGaaaaaaaDGGob boooooaaaaaaGaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaaaaccccaaGaaaaaaaaaaaaaaaaaaaaaGGGGaaaaaaaGGGGob -boooooaaaaaaaGGaaDaaaaaaaaaaaGGGGaaaaaaaaaaaaGGGaaGGaGGaaaaaaaaaaaaaGGGGGaaaaaaaaaaccccaaaaaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaaGGGGob +boooooaaaaaaaGGaaDaaaaaaaaaaaGGGGaaaaaaaaaaaaGGGaaGGaGGaaaaaaaaaaaaaGGGGGaaaaaaaaaaccccaaaaaaaaaaaMaaaaaaaaaaaGGGGGaaaaaaaGGGGob boooooaaZaaaGGaaaDaGGGGGGaGGGGGGGaaaaaaaaaaaaGGaGGaaGGaaaaaaaaaaaaaGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGaaaaaaaaGGGGob boooooaaaaaaGaaaaDaGGeeeeeGGGeGGGaaaaaaaaaGGGaGaaaaaGaaaaaaaaaaaaaGGGDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaGGGGGob boooooaaaaaaGaaaaDaGGeeeeeeeeeGGGaaaaaaGGGGaaaaaaaGGGaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaGGaGGaaaaaaaaaaaaaaaaaaaaaaaGGGGGob -boooooaaaaaaGaaaaDaGGeeeeeeeeeeGGaaaaaaGGaaaaaaaaaGGGGaaaaaGaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaaaaaaaaaaaaaaaaaGGDGGob +boooooaaaaaaGaaaaDaGGeeeeeeeeeeGGaaaaaaGGaaaaaaaaaGGGGaaaaaGaaaaaaaaaDaaaaaaaaaaaaaaqaaaaaaaaaGGGGGaaaaaaaaaaaaaaaaaaaaaaGGDGGob boooooaaaaaaaaaaaDaGGGGGeeeeGGGGGaaaaaaaaaGGaaaaaaGGGGGaaaaGaaaaaaaaaDaaaaaaaaaGaaaaaaaaaaaaaaaaGGGGGaaaaaaaaaaaaaaaaaaaGGaDGGob -boooooaaaaaaaaaaaDaaaaaaGGGGGGGGGaaaaaaaaaaGGGaaaaGGGGGaaaaGaaaaaaaaaDaaaaaGGGGaGGaaaaaaaaaaaaaGGGaGGaaaaaaaaaaaaaaaaaaaaaaDGGob +boooooaaaaaaaaaaaDaaaaaaGGGGGGGGGaaaaaaaaaaGGGaaaaGGGGGaaaaGaaaaaaasaDaaaaaGGGGaGGaaaaaaaaaaaaaGGGaGGaaaaaaaaaaaaaaaaaaaaaaDGGob boooooaaaGGaaaaaaDaaaaaaGGGGGaaaaaaaaaaaDDDDDGDDDDDDDDDDDDDGDDDDDDDDDDaaaaGGaaaaGGaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaDGGob boooooaaaaGGaaaaaDaaaaaaaaaaaaaaGGaaaaaaGGGGGGaaaaaaGaaaaaaGaaaaaaaaaaaaaGGaaaaaaGaaaGGGGGGaaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaDGGob booooaaaaaaGGaaaaDaGaaaaaaaacaaaaGGaaaaaDaaaaaaaaaaGGaaaaaaaaGaaaaaaaaaaaGGaaaaaaGGaaaaGGaaaGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaDGGob -booooaaaaaaaGGaaaDaGaaaaaaaacaaaaaGGaaaaDaaaaGGGGGGGGGaaaGGGGaGaaGGGaaaaaGGaaaaaaaGaaaaGaaaaaaaGGGGaaaaaaaaaaaaaaaaaaaaaaaaDGQob -booooaaaaaaaaaaaaDGGaaaaccaacaaaaaaGaaaaDaaaGGGeeeeaeeGaaaGGGaGGGGGGGGGGaaGGGGaaaaaaaaaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDGQob +booooaaaMaaaGGaaaDaGaaaaaaaacaaaaaGGaaaaDaaaaGGGGGGGGGaaaGGGGaGaaGGGaaaaaGGaaaaaaaGaaaaGaaaaaaaGGGGaaaaaaaaaaaaaaaaaaaaaaqaDGQob +booooaaaaaaaaaaaaDGGaaaaccaacaaaaaaGaaaaDaaaGGGeeeeaeeGaaaGGGaGGGGGGGGGGaaGGGGaaaaaaaaaGaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaDGQob booooooooooaaooooooooooocccacaaaaaaGaaaaDaaaGGeeeeeeeeGaaaGGGaaGGeeGGGGGaaaGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDQQob boooooooooooooooooooooooaccaccaaaaGGaaaaDaGGeeeeeeeeeeGGaaaGGaaGGeeGGGGGGeeeGGGGGGGGaaaaaaaaaaQQQaaaaaaaaaaaaaaaaaaaaaaaaaaDQQob booooaaaaaaaaaaaGGaooooaacccccaaaaGaaaaaDaGGeeeaaaaaeeGGaaaGGaaGGeeeeeGGGGeeeeeGGGGGaaaaaaaaQQQQQQQQQaaaaaaaaaaaaaaaaaaaaaaQQQob bGDDaaaGGGGGaaaaGDaaaaaaacccccaaaaaaaaaaDaaGeeaaaaaaeeeGaaaaaaaGGeGGeeeeeeeeeeeeeeeGaaaaaQQQQQQQQQQQQQaaaaaaaaaaaaaaaQaaaaaQQQob -bGDDaGGeeeGGGaGGaDaaaaaaaaccccaaaaaaaaaaDaaGeeaaaZaaGeeGGGaaaaaaaaGGGGGeeeeeeeeeeeeGGaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQaaQaQQQQob -beeeeeGeeeGGaaGaaDaaaaaaaacccccaaaaaZaaaDaaGeeaaaaaaaeeGGGaaaaaaaaGGGGGGGeeeeeeeeeeaaaaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQob +bGDDaGGeeeGGGaGGaDaaaaaaaaccccaaaaaaaaaaDqaGeeaaaZaaGeeGGGaaaaaaaaGGGGGeeeeeeeeeeeeGGaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQaaQaQQQQob +beeeeeGeeeGGaaGaaDaaaaaaaacccccaaaaaZaaaDaaGeeaaaaaaaeeGGGaaaaOaaaGGGGGGGeeeeeeeeeeaaaaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQob beeeeeeeeGGaaaaaaDaaaaaaaaccccaaaaaGGaaaDaGGGeaaaaaaaeGaGGaaaaaaaaGGGGGGGeeeeeeGGGGGaaaaaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQob bGeeeeeeeGaaaaaaaDaaaaaaaaaaccaaaaaaGaaaDaGGGeeeeeeeeeGGGGGaaaaaaaGGGGGGGaaaGGGGGGaaaaaaaaaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQob -beeeeeGGGaaaaaaaaDaaaaaaaaaaacaaaaaaGGaaDaaGGeeeeeeeeeGGGGGGaaaaaaGGGGGGGaaaaGGGGaaaaaaaaaaaaaaaaaaaaQQQQQQQQQQQQQQaQQaQQQaQQGob +beeeeeGGGaaaaaaaaDaMaaaaaaaaacaaaaaaGGaaDaaGGeeeeeeeeeGGGGGGaaaaaaGGGGGGGaaaaGGGGaaaaaaaaaaaaaaaaaaaaQQQQQQQQQQQQQQaQQaQQQaQQGob bGGeeeGGaaaaaaaaaDaaaaaaaaaaacaaaaaaaGaaDaaaGGGGGGGGGGaGGGaGaaaDaaaaaaaGaaaaaGGaGGaaaaaaaaaaaaaaaaaaaaaDDDDDDDDDDaaaaaaaaaaQQGob -bGGGGGaaaaaGGGGGaDaaaaaaaaaaacaaaaaaaaaaDaaaaaaaaGGaGaaaaaaGGaaDaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaDaaaaaaaDDDDDDDDDDDDzDGob +bGGGGGaaaaaGGGGGaDaaaaaaaaaaacaaaaaaaaaaDaaaaaaaaGGaGaaaaaaGGaaDaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaqaaaaaaaaDaaaaaaaDDDDDDDDDDDDzDGob bGGDaaaaaaGGaaaaaDaaaaaaaaaaacaaaaaaaaaaDDDDDDDGDDDDDDDDDDDDGGDDDDDDaaaaaaaaaaaGGGaaGGGaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaob bGGDaaaaaaGaaaaaaDaaaaaaaGaaaaaaGGGGaaaaDaaaaGGaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaGaaGaGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaacccccaccob -bGGDaaaaaGGaaaaGGDGGaaaaaaGGGGGaGGGGaaaaDaaaGGaaaaGGGaaaaaaaaaaDaaaaaaaaGGGGGaaaaaaGGaaaaaGaaaaaaaGaaaaaaaaaaaaaaaaaaccccccaccob +bGGDaaaaaGGaaaaGGDGGaaaaaaGGGGGaGGGGaaaaDaaaGGaaaaGGGaaaaaaaaaaDaaaaaaaaGGGGGaaaaaaGGaaaaaGaaaaaaaGaaaaaaaqaaaaaaaaaaccccccaccob bGGDaaaaaGaaaaGGGGGaaaaaaaaaGGGGGGGGaGGaDaaaGGGGGGaaaaaaaaaaaaaDaaaaGGGaGGGGaaaaaaaGaaaaaaaaaaaaaaGGGGaaaaaaaaaaaaaaccccccccccob bGGDaaaaaaaaaaGGGDGGaaaaaaaaGGeeeeeGGGGGDaaaaaaaaaaaaaaaaaaaaaaDaaaGGGGeeeeGGaaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaacccccccccccob bGGDaaaaaaaaaGGaaDaGaaaaaaaaGGeeeeeGGGGGaaaaaaaaaaaaaaeeeeaaaaaDaaGGeeeeeeeGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccccooooooccob -bGGDaaaaaaaGGaaaaDGGaaaaaaaaGGeeeeeeGGGaaaaaaaaaaaaaeeeeeeaaaaaDaaGGeeeeeeeeeeGGaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaccccccccjvooojccob +bGGDaqaaaaaGGaaaaDGGaaaaaaaaGGeeeeeeGGGaaaaaaaaaaaaaeeeeeeaaaaaDaaGGeeeeeeeeeeGGaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaccccccccjvooojccob bGGDaaaaaaaaGGaaaDaGaaaaaaaaGGeeeeeeGGGGaaaaaaaaeeeeeeeeeeaaaaaDaaGGeeeeeeeeeeGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccccaaajUyyUjccob bGGDaaaaaaaGDGDDDDDGDDDDDDDDDaaaGeeeGGGGaaaaeeeeeeeeeeeeaaaaaaaDaaGGGeeeeeeeeeGGZaaaaaaaaaaaaaaaaaaaaaaaaaaaccccccaaaajyyyyjaaob bGGDaaaaaaaGGGaaaDaGaaaaDDaaaaaaGeeeGGGaaaaaeeeeeeeeaGGaaaaaaaaDaaGGGGGeeeeeeeGGaaaaaaaaaaaaaaaaaaaaaaaaaaaacccccaaaaajyyyyjaaob -bGGDaaaaaaaaGGaaaDGGaaaaDDaaaaaaGeeeGGaaaaaaaGGaaaaaaGaaaaaaaaaDaaGGGGaeeeeeeeGGaaaaaaaaaaaaaaaaaaaaaaaaaaacccccaaaaaaaGaaaaaaob +bGGDaaaaaaaaGGaaaDGGaaaaDDaaaaaaGeeeGGaaaaaaaGGaaaaaaGaaaaaaaaaDaaGGGGaeeeeeeeGGaasaaaaaaaaaaaaaaaaaaaaaaaacccccaaaaaaaGaaaaaaob bGGDaaaaGGaaGGaaaGGGaaaaDDaaaaaaaGGGGGaaaaaGGGaaaaaaGGaaaacaaaaDaaaaGGGGGGGGGGGGaaaaaaaaaaaaaaaaaaaGGaaaaacccccaaaaaGGGaaaaaaaob -bGGDaaaGGaaaGGaaaaaaaaaaDDaaaaaaaaGGGaaaaaGGGGaaaaaaaaaaaccaaaaDaaaaGaaaGGGGGaaaaaaaaaaaaaaaaaaaaaGGGGaaaccccccaaaaGGaaaaaaaaaob +bGGDaaaGGaaaGGaaaaaaaaaaDzaaaaaaaaGGGaaaaaGGGGaaaaaaaaaaaccaaaazaaaaGaaaGGGGGaaaaaaaaaaaaaaaaaaaaaGGGGaaaccccccaaaaGGaaaaaaaaaob bGGDaaaGGGaaaaaaaaaaaaaaDDaaaaaaaaaaaaaaaGGaaaaaaaaaaaacccaaaaaDaaaaaaaaaaaaaGaGGGGGGGGGaaaaaaGaaGGaGGaGGaaccccaaaaGGaaaaaaaaSob -bDDDaaaaaaaaaaccaccaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaacccacaaaaDaaaaaaaaaaGGGGaaaGGGaaaaaaaaGGGGGGGGGGaGGaaccccaaaaGGGaaaaaaaSob -bxDDaaaaaaaacccccccccaaaaDaaaaaaaaaaaaaaaaaaaaaaaacccccccccaaaaDaaaaaaaaaaaGGGaGGaaaaaaaaaaaGaaaaaaGGaaaGGGGaaaaGGGGGGGGaaaaaSob +bDDDaaaaaaaaaaccaccaaaaaaDaaaaaaaaaaaaqaaaaaaaaaaaaaaacccacaaaaDaaaaaaaaaaGGGGaaaGGGaaaaaaaaGGGGGGGGGGaGGaaccccaaaaGGGaaaaaaaSob +bDDDaaaaaaaacccccccccaaaaDaaaaaaaaaaaaaaaaaaaaaaaacccccccccaaaaDaaaaaaaaaaaGGGaGGaaaaaaaaaaaGaaaaaaGGaaaGGGGaaaaGGGGGGGGaaaaaSob baaaaaaaaccccccccccccaaaaDaaaaaaaaaaaaaaaaaaaaaaccacccccccaaaaaDaaaaaGaaaaaaaGGaaaaaaaaaaaaaaaaaaaaGaaaaGGGGaGGGGGGGaaaaaaaaaSob baaaaaaacccccccccccccccccDaaaaaaaaaaaaaaaaaaaaacacccccccccaaaaaDaaaaGGGaaaaaaGaaaaaaaaaaaGaaaaaaaaaGaaaaGGGGGccaGGGGaaaaaaaaaaob bccaaaacccccccccccccccaaaDaaaaaaccccccacacacacccccccccccccaaaaGDaGGGGGaaaaaaaaaaaaaaaaaaGGaaaaaaaaaGaaaaGGGGacccaaaaaaaaaaaaaaob -bccccccccccccccccccaaaaaaDacccccccccccccccccccccccccccacaaaaaGGGGGGGaaaaaaaaaaaaaaaaaaaaGaaaaaaaaaaaaaGaaaaaaccccaaaaaaaaaaaaaob +bccccccccccccccccccaaaaaaDacccccccccccccccccccccccccccacaaaaaGGGGGGGaaaaaaaaaaaaaaaaaaaaGaaaaaqaaaaaaaGaaaaaaccccaaaaaaaaaaaaaob bccccccccccccaaaaaaaaaaaaDaaaaaaaaaaaaaaaaacccaaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaaaaaaaaaaccccaaaaaaaaaaGaaob bccaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGDaaaaaaaaaaaaaaaaaccaaaaaaaaaaaaaaaGGaaaaaacaacccccaaaaaaaaaGaaob baGGaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaGaaaaaaaGGaaaaaaaaGGGaDaaaaaaaaaaaaaaaacccaaaaaaaaaZaaaaaGGaaaaaacaacacccaaaaaaaaaGaaob -baGGaaaaaaaaaaaacaaaaaaaaDDDDDDDDDDDDDDGGGDDDDDDDGGDDDDDDDDGGDDDaaaaaaaaaaaaaaacccaacaaaaaaaaaaaaaGGaaaaaacaacaccccaccaaaaaaaaob -baaGGaaaaaaaaaaccaaaaaaaaDaaaaaaaaaaaaaGaaaaaaaaaaGaaaaaaaGGGGaDaaaaaaaaaaaaccccccacaccccccccccaaGGacccccccaaacccccccccaaaaaaaob +baGGaaaaaaaaaaaacaaaaaaaaDDDDDDDDDDDDDDGGGDDDDDDDGGDDDDDDDDGGDDDaqaaaaaaaaaaaaacccaacaaaaaaaaaaaaaGGaaaaaacaacaccccaccaaaaaaaaob +baaGGaaaaaaaaaaccaaaaaaaaFaaaaaaaaaaaaaGaaaaaaaaaaGaaaaaaaGGGGaDaaaaaaaaaaaaccccccacaccccccccccaaGGacccccccaaacccccccccaaaaaaaob bGGGGaaaaaacccccccaaaaaaaDaaaaaaaaaaaaGGaaaaaaaaaaGaaaaaaaGGaGaDaaaaaaaaaaccccccccacaccaccccaaaaaGGaacccccaaaaacccccccccaaaaaaob bGGGGaaaaaaaacccccaaaaaaaDaaaaaaaaaaaGGaaaaeeeeeeeeeeeeeeaaaaaaDaaaaaaaaaccccccccccaaaaaaaacaaaaaaGaaaaaaaaaaaaacaccccccccaacaob bGGGaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaGGaaeeeeeeeeeeeeeeeeaaaaaaaaaaaaaacaaccccaccaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaccaccccaaccob bGGGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeGaaaaaaaaaGGaaaaaaaaaaaacaacaccccccaaaaaaaaaaaaaaaaaGGaaaaaaaaaaaaaaaaaccccccccccob -bGGDaGaaaaaaaaaaaaaGGGaaaaaaaaaaGGGGaaGGGaaeeeaaaaaaaaaaaaaaaaaaaaaaaaccccccccaaaaaaaaaaaaaaaaaaaaaDDDDDaaaaaaaaaaaaaccaacccccob +bGGDaGaaaaaaaaaaaaaGGGaaaaaaaaaaGGGGaaGGGaaeeeaaaaaaaaaaaaaaaaaaaaaaaaccccccccaaaaaasaaaaaaaaaaaaaaDDDDDaaaaaaaaaaaaaccaacccccob bGGDaGaaaaaaaaaaaaGGGaaaaaaaaaaGGGGGGGGaaaeeeeaaaaaaaaaaaaaaaaaaaaccaccccccaaaaaaaaaaaaaaGaGaaaaaaaDDDGDDDDDDDDDDDDDDaaaacccccob -bGGDaGGGGGaaaaaaaGGGGaaaaaaaaGGGaGGGGaaaaaeeaaaaaaaaaaaaaaacacaaaaccccccaaaaaaaGaaaaaaaaaaaaaaaaaaaDDGGGDGaaaaaaaaaaDaaaaaaaccob +bGGDaGGGGGaaaaaaaGGGGaaaaaaaaGGGaGGGGaaaaaeeaaaaaaaaaaaaaaacacaaaaccccccaaaaaaaGaaaaaaaaaaaaaaaaaaaDDGGGDGaaaaaaqaaaDaaaaaaaccob bGGDGGaaaGGGaaaaaGGaGaaaaaaaaaaaaaGGGGaaaaaaaaaaccccccccccccccccccccccccaaaaaGGGaaaaGaaaGaaaaaaaaaaDDGGGGGaaaaaaaaaaDaaaaaaaaaob -bGGDGGaaaaaaaaaaaGGaaGaaaaaaaaaaaaaaaGaaaaaaaccccccccccccccccccccccccacaaaaGGGaaaaeeeeeeaaaGaaaaaGaGDGGGGGaaaaaaaaaaDDDDDDDDzGob +bGGDGGaaaaaaaaaaaGGaaGaaaaaaaaaaaaaaaGaaaaaaaccccccccccccccccccccccccacaaaaGGGaaaaeeeeeeaaaGaaaaaGaGDGGGGGaaaaaaaaaaDDDDDDDDDGob bGGGGGaaaaaaaaaaaaaaaGaaaaaaacccaaaaaaaaaaaaaacacacccccccccaaaaccccaaaaaaaaGaaeeeeeeeeeeaaaGaaaaaGaGGGGGGGaaaaaaaaaGaaaaaaGGDGob bGGGGaaaaaaaaaaaaaaaaaaaaaaacccccccaaaaaaaaaaaaccccaaccccaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeaaGGaaaGGGaDGGGGGDaaGaaaaaaGGaaaaaGGGGob bGGDaaaaaaZaaaaaaaaaccaaaaaacccccccccaaaaaaaaaaccaccccaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeeeeeGaGaaaaaGGaaGGGGGDGaaaaaaaaaaaaaaaGGGGob bGGDaaaaaaaaaaaaaaacccaaaaaacccaaaaaaaaaaaGaaaaaccaaaaaaaaaaaaaaaaaaaaaaGaaaaGeeeeeeeeeeGGaaaaaaGaaaGGGGGDaaGaGaaaaaaaaaaaGGGGob -bGGDaaaaaaaaaaaaacccccaaaaGaaaaaaaaaaaaaaaGaaaaaaaaaaaaGaGGaaaaaaaaaaaaGGaGeeeeeeeeeeeaaaaaaaaaaGaaGGGGGGDaaaGGGGGGaaaaaaaGGGGob +bGGDaaaaaaaaaaaaacccccaaaaGaaaaaaaaaaaaaaaGaaaaaaaaaaaaGaGGaaaaaaMaaaaaGGaGeeeeeeeeeeeaaaaaaaaaaGaaGGGGGGDaaaGGGGGGaaaaaaaGGGGob bGGDaaaaaaaaaaaaaccaaaaaaGGGGaaaaaaZaaaaaGGaGaaaaaaaaaaGGGaaaaaaaaaaaaaeeeeeeeeeeaeeGGGaaaaaaaaaGaaGGGGGGDaaaGGaGGGGaaaaaaGGGGob -bGGDaaaaaaaaaaaaaccaaaaaaGGGGaaaaaaaaaaaaGGGGaaaaaaaaaGGaaaaaaaaaaaaaaGeeeeeeeaaaaaaaaGGGaaaaaaaaaaaGGGGDDaaaaGaaaGGaaaaaGGGGGob +bGGDaaaasaaaaaaaaccaaaaaaGGGGaaaaaaaaaaaaGGGGaaaaaaaaaGGaaaaaaaaaaaaaaGeeeeeeeaaaaaaaaGGGaaaaaaaaaaaGGGGDDaaaaGaaaGGaaaaaGGGGGob bGGDaaaaaaaaaaaaaaaaaaaaaaGGGGaaaaaaaaaaaGGGGaaaaaaaaGGaaaaaaaaaaaaaaaGGGGGGaaaaaaaaaaaaaaGaaaaaaaaaGGGGGDaaaaaaaaGaaaaaaGGDGGob bGGDaaaaaaaaaaaaaaaaaaaaaaGGGGGaaaGGaaaaaGGGGaaGaaaaaGaaaaaaGGaaaGGaaaGGaGGGaaaaaaaaaaaaaaaaaaaaaaaaDDGGGGaaaaaaaaaaGaaGGGGGGGob bGGGaaaaaaaaaaaaaaaaZaaaaaaGGaGaaaGGGaGGGGGGGaGGaaaaaGaaaaaGGGaaGGGGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDGGDGGaaaaaaaaaaGaaGGGGDDGob bGGGaaGGaaaaaaaaaaaaaaaaaaaaGGGaaaGaGGGGGGGGGGGaaaaaaaaaaaaGeeeeeeeGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGaaGGDGob -bGGGaaaGGaGGaGaaaaaaaaaaaaaaaaGGaaGaaaGGaaaGaaaaaaaaaaaaaaaGeeeeeeeGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaGDDGob -bGGGaaaaGGaGGGaaaaaaaaaaaaaaaaaaaaGaaaGeeeeGaaaaaaaaaaaaaaGGeeeeeeeGGaaaaaaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaaGGDDGob -bGGGaaaaaGGGGaaaaaaaaaaaaaaaaaaaaGGaaaGeeeeaaaaaaaaaaaaaaaGeeeeeeeeGGGaaaaaGaaaaogggoaaooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaDDGob +bGGGaaaGGaGGaGaaaaaaaaaaaaaaaaGGaaGaaaGGaaaGaaaaaaaaaaaaaaaGeeeeeeeGaaaaaaaaaaaaaaaaaaaaaaaaMaaaaaaaaaaaaaaaaaaaaaaaaGGaaaGDDGob +bGGGaaaaGGaGGGaaaaaaaaaaMaaaaaaaaaGaaaGeeeeGaaaaaaaaaaaaaaGGeeeeeeeGGaaaaaaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaaGGDDGob +bGGGaaaaaGGGGaaaaaaaaaaaaaaaaaaaaGGaaaGeeeeaaaaaaaaaaaaaaaGeeeeeeeeGGGaaaaaGaaaaogggoaaooaaaaaaaaaaaaaaaaaaaaaqaaaaaaaaaaGaDDGob bGGDaaaaaGGaGGaaaaaaaaaaaaaaaaGaGGaaaaGGeeeaaaaaaccaaaaaaaGeeeeeeeeGGaaaaaaGaaaooggggggggoooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGDDGob -bGGGaaaGGaGGGGaaaaaaaaaaaaaaGGGaaaaaaaGGeeeGaaaaaccaaaaaaGGeeeeeeeeeGaaaaaaGaaaooooggggggggggggooaaaaaaaaaaaaaaaaaaaaaaaaGGDDGob -bGDDaaaaGGGaGGaaaaaaaaaaaaaaGGGGaaaaaaGGGeeaaaaacccaaaaaaGGeeeeeeeeeGaaaaaaGGaaaaaoooogggggggggooooaaaaaaaaaaaaaaaaaahhaaGGDDGob +bGGGaaaGGaGGGGaaaaaaaaaaaaaaGGGaaaaqaaGGeeeGaaaaaccaaOaaaGGeeeeeeeeeGaaaaaaGaaaooooggggggggggggooaaaaaaaaaaaaaaaaaaaaaaaaGGDDGob +bGDDaaaaGGGaGGaaaaaaaaaaaaaaGGGGaaaaaaGGGeeaaaaacccaaaaaaGGeeeeeeeeeGaaaMaaGGaaaaaoooogggggggggooooaaaaaaaaaaaaaaaaaahhaaGGDDGob bGDDaaaaaaaaaaaaaaaaaaaaaaaaGGGGGaaaaaaGGeeGaacccccaaaaaGGGeeeeeeeeeGaGaaaaaGaaaaaaaoogggggggggooooaaaaDDaaaaaaaaaaaahhaaGGGGGob bGDDaaaaaaaaaaaaaaaaaaaaaaaaGeeeeaaaaaaGGeeGaacccccaaaaaaGGeeeeeeeeeGGGaaaaaGaaaaaaaaogggggggggoooooooaDDDDDDDaaaaaaahhaaaaGGGob -bGDDaaaaaaaaaaaaaaaaaaaaaaaaGeeeeGGaaaaGGGGGaaccccccaaaaaaaGGGGGGGGaGGGaaaaaGaaaaaaaaogggggggggoooooooooDDDDDDaaaaaahhhaaaaDDGob +bGDDaaaOaaaaaaaaaaaaaaaaaaaaGeeeeGGaaaaGGGGGaaccccccaaaaaaaGGGGGGGGaGGGaaaaaGaaaaaaaaogggggggggoooooooooDDDDDDaaaaaahhhaaaaDDGob bGDDaaaaaaGaaaaaaaaaaZZaaaaaGGeeeeeGaaaGGGGGaaccccccaaaaaaaaaaaaaaaGGGGGGGaGGaaaaDDDDDgggggggggooooooowwwDDDDDDaaaaahhhaaaaDDGob -bGDDaaaaaaaGGaaaaaaaaaaaaaaaGGeeeeeGaaaaGGGGaaccccccaaaaaaaaaaaaaaaaGGaaGGGaaaaaaDDDDDoogggggggodddwwwwwwoooDDDaaoaahhhaaaaDDGob +bGDDaaaaaaaGGaaaaaaaaaaaaaaaGGeeeeeGaaaaGGGGaaccccccaaaaaaaaaqaaaaaaGGaaGGGaaaaaaDDDDDoogggggggodddwwwwwwoooDDDaaoaahhhaaaaDDGob bGDDGGGGaaaaaGaaaaaaaaaaaaaaGGGeeeeGGGaaaaaaaaacccccaaaaaaaaaaaaaaaaGaaaGaaaaaaaowwwwwdogggggggoddwwwwwddooooooooooohhhoooooooob bGDDaGGGGaaaaaGGGaaaaaaaaaaaGGGeeeeGGGaaaaaaaaccccccaaaaaaaaaaGeeGGGGGaaGGaaaaaaowwwwdddlllllllodwwwwddooooooooooooohhhoooooooob bGDDaaaaGGGGGaaaGGaaaaaaaaaaaaGeeeeGGGGGaaaaaaccccccaaaaaaaGGGaeeGGaaaaaaaaaaaaadwwwwllllllllllllwwwlllllllllllllddwiiwddddddddb @@ -141,10 +146,10 @@ bGGGGaaaaaaaaaaaaaGGGGGGaaaaaaaaaaaGaaaaaaGGGaacccccaaaGeeeeeeeeeGaaaaaaaaaGaaag bGGGGaaaaaaaaaaaaaaaaaGGGGaaaaaaaaaGGaaaaaaGGaacccccaaaGeeeeeeGGGGaaaaGaaaaaaaoglwrwrwwwwwwdddddddiwdwwwfdddddddlldlliillllllldb bGDGGaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaGaaaaaaaaaaccaaaaaaGeeeeeeGaGaaaaGGaaaaaaaowwwrwrrwwrrrrrwwwdwiwwwwwwwwwdddddlllliillllllldb bGDGGaaaaaaaaaaaaaaaaaaaaGGGaaaaaaaaGaaaaaaaaaaaaaaaaaaGGGeeeeGGaaaaGGaaaaaaaaodwwrrrrrrrrrrrrwwwwiwwddwwwwiiiiddllllllllllldddb -bGDDGaaaaaaaaaaaaaaaaaaaaaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaGGGGGGGaaaaaGGaaaaaaaaoodwwwwrrrrrrrrrrwwwdiwwdddwwwiiiiddllllllllllldddb +bGDDGaaaaaaaaaaaaaaaaaaaaaGaaaMaaaaaaaaaaaaaaaaMaaaaaaaGGGGGGGaaaaaGGaaaaaaaaoodwwwwrrrrrrrrrrwwwdiwwdddwwwiiiiddllllllllllldddb bGDGGaaGGaaaaaaGGGGGaaaaaaGaaaaaaaaaaaaaaaaaaaaaaaaaaGGaaaaGGaaaaaGGaaaaaaaaDooddddwrrrrrrrrrriiiiiiwddwwwwwdddddllllllllllldddb bGDGGaaGGaaaaaGGGGGGGGGGaaGaaaaaaaaaaaaaaaaGGaaaaaaaaaGGGGGaaaaaGGaaaaaaaaDDDodwwdddrrrrrrrrrriiiiiiwddfwwddddddddlllllllddddddb -bGDDGGGGaaaaaaGGGGGGGGGGaaGaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaGGGaaaaaaaaaDDwwwwwwddwrwwwwwrrriiiiiiwwdwwwwdddddldlllllllddddddb +bGDDGGGGaaaaaaGGGGGGGGGGaaGaaaaaaaaaaaaaaGGGaaaaaaaaaaaaaaaaaaGGGaaaaaaqaaDDwwwwwwddwrwwwwwrrriiiiiiwwdwwwwdddddldlllllllddddddb bGxDGGGGaaaaaaaaaaaaaaaaaaGaaaaaaaaaaaGGaGaGaaaaaGGaaaaaaaaaaaaaaaaaaaaaaaaowwwwwwwdllllldwrrriiiiiirwwdwwwwiiddlllllllllddddddb bGDDGGGaaaaaaaaaaaaaaaaaaaaGGaaaaaaaaaaGGGaGGaaaaaGGaaaaaaaaaaaaaaaaaaaaaooodwwwwwwdlllllwwrrriiiiiirwwdwwwiiiddddlllldddddddddb bGDGGGGaaaaaaaaaaaaaaaaaaaaaaGaaGGGaGGGGGGGaGaaaaaGGGGaaGaaaaaaaaaaaaaaaaoddwwwwdwwwlllllwwrrrrwddirwwwdwwiiiidddddddldddddddddb diff --git a/_maps/map_files/roguetown2/roguetown2.dmm b/_maps/map_files/roguetown2/roguetown2.dmm index 8f1d7a9327..a432deef56 100644 --- a/_maps/map_files/roguetown2/roguetown2.dmm +++ b/_maps/map_files/roguetown2/roguetown2.dmm @@ -250,6 +250,7 @@ "eQ" = (/obj/item/roguestatue/gold,/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "eR" = (/turf/open/floor/rogue/grass,/area/rogue/outdoors/town) "eS" = (/turf/open/floor/rogue/cobble,/area/rogue/outdoors/town) +"eT" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) "eU" = (/obj/machinery/light/rogue/oven/south,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "eV" = (/obj/machinery/light/rogue/hearth,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "eW" = (/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/manor) @@ -295,6 +296,7 @@ "fP" = (/obj/structure/fluff/statue/gargoyle/moss,/turf/open/floor/rogue/grass,/area/rogue/indoors/town/manor) "fQ" = (/obj/structure/mineral_door/wood/fancywood{lockid = "lord"; name = "Lord's Apartment"},/turf/open/floor/rogue/carpet/lord/left{dir = 1},/area/rogue/indoors/town/manor) "fS" = (/obj/structure/chair/wood,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) +"fT" = (/obj/structure/fluff/railing/border,/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) "fU" = (/obj/item/book/rogue/law,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "fV" = (/turf/open/floor/rogue/tile/masonic{dir = 1},/area/rogue/indoors/town/manor) "fW" = (/obj/effect/landmark/start/sheriff{dir = 1},/turf/open/floor/rogue/carpet/lord/center,/area/rogue/indoors/town/manor) @@ -322,6 +324,7 @@ "gt" = (/obj/effect/landmark/start/squire{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "gu" = (/obj/structure/fluff/walldeco/customflag{pixel_y = 32},/obj/effect/landmark/start/manorguardsman{dir = 4},/turf/open/floor/rogue/tile/masonic{dir = 4},/area/rogue/indoors/town/manor) "gv" = (/obj/structure/fluff/walldeco/customflag{pixel_y = 32},/obj/effect/landmark/start/dungeoneer{dir = 8},/turf/open/floor/rogue/tile/masonic{dir = 8},/area/rogue/indoors/town/manor) +"gw" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) "gx" = (/turf/closed/wall/mineral/rogue/stone/moss,/area/rogue/outdoors/rtfield) "gy" = (/obj/structure/flora/roguetree/evil,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "gz" = (/turf/open/transparent/openspace,/area/rogue/outdoors/rtfield) @@ -409,6 +412,7 @@ "ij" = (/obj/structure/table/wood{icon_state = "largetable"; dir = 8},/obj/item/candle/yellow/lit,/obj/structure/fluff/walldeco/rpainting/crown{pixel_x = 32},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "ik" = (/turf/closed/wall/mineral/rogue/wooddark/window,/area/rogue/indoors/town/manor) "il" = (/obj/structure/mineral_door/wood/fancywood{name = "Lord's Office"; lockid = "lord"},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) +"in" = (/turf/open/floor/carpet/purple,/area/rogue/indoors/town) "iq" = (/turf/closed/wall/mineral/rogue/wooddark/window,/area/rogue/outdoors/town) "ir" = (/obj/structure/table/wood{icon_state = "largetable"; dir = 4},/obj/item/candle/yellow/lit,/turf/open/floor/rogue/blocks/stonered,/area/rogue/indoors/town/manor) "is" = (/obj/structure/table/wood{icon_state = "largetable"; dir = 4},/obj/item/reagent_containers/glass/cup,/turf/open/floor/rogue/blocks/stonered,/area/rogue/indoors/town/manor) @@ -467,6 +471,7 @@ "jx" = (/turf/open/floor/rogue/wood,/area/rogue/indoors/town/magician) "jy" = (/obj/machinery/light/rogue/firebowl/standing/blue,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/magician) "jz" = (/turf/open/floor/rogue/blocks,/area/rogue/indoors/town/manor) +"jA" = (/turf/open/floor/rogue/wood,/area/rogue/outdoors/beach) "jB" = (/obj/structure/bookcase,/obj/item/book/random,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "jC" = (/obj/structure/table/wood,/obj/item/paper/scroll,/obj/item/paper/scroll,/obj/item/paper/scroll,/obj/item/natural/feather,/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/blocks,/area/rogue/indoors/town/manor) "jD" = (/obj/structure/roguemachine/scomm,/turf/open/floor/rogue/blocks,/area/rogue/indoors/town/manor) @@ -702,7 +707,7 @@ "nZ" = (/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/indoors) "oa" = (/turf/closed/wall/mineral/rogue/wooddark/end{icon_state = "endwooddark"; dir = 8},/area/rogue/indoors) "ob" = (/turf/closed/wall/mineral/rogue/wooddark/end{icon_state = "endwooddark"; dir = 4},/area/rogue/indoors) -"oc" = (/obj/structure/mineral_door/wood/deadbolt{dir = 1; icon_state = "wooddir"; locked = 0},/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) +"oc" = (/obj/structure/mineral_door/wood/deadbolt{dir = 1; icon_state = "wooddir"; locked = 0; lockid = "farm"},/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) "od" = (/turf/closed/wall/mineral/rogue/wooddark/horizontal,/area/rogue/indoors) "oe" = (/obj/effect/landmark/start/villager,/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/rtfield) "of" = (/obj/structure/mineral_door/wood/donjon{dir = 1; icon_state = "donjondir"; locked = 1; lockid = "nightmaiden"},/turf/open/floor/rogue/herringbone,/area/rogue/indoors/town/bath) @@ -771,7 +776,7 @@ "pq" = (/obj/structure/fluff/statue/gargoyle/moss/candles,/turf/open/floor/rogue/cobble,/area/rogue/outdoors/town) "pr" = (/obj/structure/fluff/railing/stonehedge,/turf/open/floor/rogue/dirt,/area/rogue/outdoors/rtfield) "ps" = (/obj/structure/roguewindow,/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) -"pt" = (/obj/structure/mineral_door/wood/deadbolt{dir = 1; icon_state = "wooddir"},/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) +"pt" = (/obj/structure/mineral_door/wood/deadbolt{dir = 1; icon_state = "wooddir"; lockid = "farm"},/turf/open/floor/rogue/dirt/road,/area/rogue/indoors) "pu" = (/obj/machinery/light/rogue/wallfire/candle/blue/l,/obj/structure/fluff/railing/border,/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/bath) "pv" = (/obj/structure/table/wood{icon_state = "longtable"},/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/bath) "pw" = (/obj/structure/table/wood{icon_state = "longtable"; dir = 1},/obj/item/candle/yellow,/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/bath) @@ -808,7 +813,7 @@ "qb" = (/obj/structure/ladder,/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "qd" = (/turf/open/floor/rogue/blocks/bluestone,/area/rogue/indoors/town) "qe" = (/obj/structure/closet/crate/chest,/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) -"qf" = (/obj/structure/lever/wall{pixel_x = 32; redstone_id = "warehouse_shutter"},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) +"qf" = (/obj/structure/lever/wall{pixel_x = 32; redstone_id = "warehouse_shutter"},/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "qg" = (/obj/structure/flora/roguegrass/bush,/turf/open/floor/rogue/grass,/area/rogue/outdoors/town) "qh" = (/obj/structure/flora/roguegrass/bush,/turf/open/floor/rogue/dirt,/area/rogue/outdoors/town) "qi" = (/turf/open/floor/rogue/dirt,/area/rogue/outdoors/town) @@ -889,7 +894,7 @@ "rF" = (/obj/structure/table/wood,/obj/item/storage/pill_bottle/dice,/turf/open/floor/rogue/tile{icon_state = "chess"},/area/rogue/outdoors/town) "rG" = (/obj/structure/roguemachine/money/r,/turf/open/floor/rogue/tile{icon_state = "chess"},/area/rogue/outdoors/town) "rH" = (/turf/closed/wall/mineral/rogue/wood,/area/rogue/under/town/basement) -"rI" = (/obj/structure/closet/crate/chest,/obj/item/reagent_containers/food/snacks/rogue/crackerscooked,/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) +"rI" = (/obj/structure/closet/crate/chest,/obj/item/reagent_containers/food/snacks/rogue/crackerscooked,/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "rJ" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "rK" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "rL" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) @@ -1046,6 +1051,7 @@ "uI" = (/obj/machinery/light/rogue/firebowl,/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/dwarfin) "uJ" = (/obj/structure/closet/crate/chest,/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/dwarfin) "uK" = (/obj/structure/closet/crate/roguecloset,/obj/item/clothing/suit/roguetown/shirt/shortshirt/random,/obj/item/clothing/suit/roguetown/shirt/shortshirt/random,/obj/item/clothing/under/roguetown/tights/random,/obj/item/clothing/under/roguetown/tights/random,/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/dwarfin) +"uL" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "uM" = (/obj/machinery/light/rogue/hearth,/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town) "uN" = (/obj/structure/table/wood{icon_state = "tablewood1"; dir = 1},/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town) "uO" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town) @@ -1069,7 +1075,7 @@ "vh" = (/obj/structure/fluff/wallclock/r,/turf/open/floor/rogue/cobble,/area/rogue/indoors) "vi" = (/obj/structure/roguewindow,/obj/structure/roguewindow/openclose{icon_state = "woodwindowdir"; dir = 8},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "vj" = (/obj/structure/table/wood{icon_state = "map6"},/turf/open/floor/rogue/carpet/lord/right,/area/rogue/indoors/town/manor) -"vk" = (/obj/structure/stairs{icon_state = "stairs"; dir = 1},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/indoors/town/dwarfin) +"vk" = (/obj/structure/stairs{icon_state = "stairs"; dir = 1},/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/dwarfin) "vl" = (/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) "vm" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) "vn" = (/obj/structure/stairs{icon_state = "stairs"; dir = 4},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) @@ -1079,6 +1085,7 @@ "vr" = (/obj/structure/stairs{icon_state = "stairs"; dir = 4},/turf/open/floor/rogue/blocks{icon_state = "paving"},/area/rogue/indoors) "vs" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/blocks{icon_state = "paving"},/area/rogue/indoors) "vt" = (/obj/structure/stairs{icon_state = "stairs"; dir = 1},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors) +"vu" = (/obj/structure/chair/wood{dir = 8},/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) "vv" = (/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town) "vw" = (/obj/structure/closet/crate/roguecloset,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town) "vx" = (/obj/machinery/light/rogue/torchholder/c,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town) @@ -1183,8 +1190,8 @@ "xs" = (/obj/structure/fluff/traveltile{aportalgoesto = "bogrtin"; aportalid = "bogrtout"},/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/rtfield) "xt" = (/obj/machinery/light/rogue/wallfire/candle,/obj/structure/fluff/clock,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "xu" = (/obj/effect/landmark/start/mercenarylate{icon_state = "arrow"; dir = 8},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) -"xv" = (/obj/effect/landmark/latejoin,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) -"xw" = (/obj/effect/landmark/latejoin,/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/rtfield) +"xv" = (/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) +"xw" = (/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"},/area/rogue/outdoors/beach) "xx" = (/obj/effect/landmark/mapGenerator/rogue/roguetownfield{endTurfX = 128; endTurfY = 128},/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/rtfield) "xy" = (/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/mountains) "xz" = (/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/town/roofs) @@ -1237,6 +1244,7 @@ "yE" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/cobble,/area/rogue/outdoors/rtfield) "yG" = (/obj/structure/fluff/statue,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "yH" = (/obj/structure/roguewindow/openclose{icon_state = "woodwindowdir"; dir = 1},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) +"yI" = (/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floor2"; dir = 1},/area/rogue/outdoors/beach) "yJ" = (/obj/structure/fermenting_barrel/random/water,/obj/item/storage/box/matches,/turf/open/floor/rogue/cobble,/area/rogue/under/town/basement) "yM" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/open/transparent/openspace,/area/rogue/outdoors/town) "yO" = (/obj/structure/closet/crate/chest,/obj/item/clothing/neck/roguetown/gorget,/obj/item/clothing/shoes/roguetown/boots,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) @@ -1248,6 +1256,7 @@ "yW" = (/obj/structure/bed/rogue,/obj/effect/landmark/start/mason,/turf/open/floor/rogue/blocks/stonered,/area/rogue/indoors/town/dwarfin) "yY" = (/obj/structure/table/wood{icon_state = "map3"},/obj/item/natural/feather,/turf/open/floor/rogue/carpet/lord/right,/area/rogue/indoors/town/manor) "yZ" = (/obj/effect/landmark/start/churchling,/turf/open/floor/rogue/churchrough,/area/rogue/indoors/town/church/chapel) +"zb" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/beach) "zd" = (/obj/structure/fluff/railing/wood,/turf/open/floor/rogue/grass,/area/rogue/outdoors/rtfield) "ze" = (/obj/structure/fluff/railing/wood,/turf/closed/wall/mineral/rogue/stone/moss,/area/rogue/outdoors/rtfield) "zf" = (/obj/machinery/light/rogue/firebowl/standing/blue,/turf/open/floor/rogue/concrete,/area/rogue/indoors/town/shop) @@ -1298,9 +1307,9 @@ "Ab" = (/obj/structure/fluff/walldeco/customflag,/turf/closed/wall/mineral/rogue/wood,/area/rogue/indoors/town/manor) "Ac" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 1},/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/church) "Ad" = (/obj/structure/closet/crate/chest{lockid = "priest"},/obj/item/clothing/cloak/stole/red,/obj/item/clothing/cloak/chasuble,/turf/open/floor/carpet/royalblack,/area/rogue/outdoors/town) -"Ae" = (/obj/structure/fluff/walldeco/church/line{icon_state = "churchslate"; dir = 4},/obj/effect/landmark/start/monk,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) +"Ae" = (/obj/structure/fluff/walldeco/church/line{icon_state = "churchslate"; dir = 4},/obj/effect/landmark/start/monk,/obj/machinery/light/rogue/torchholder/r{dir = 4},/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) "Af" = (/turf/open/floor/rogue/churchrough,/area/rogue/indoors/town/church/chapel) -"Ag" = (/obj/structure/fluff/walldeco/church/line{icon_state = "churchslate"; dir = 8},/obj/effect/landmark/start/churchling,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) +"Ag" = (/obj/structure/fluff/walldeco/church/line{icon_state = "churchslate"; dir = 8},/obj/effect/landmark/start/churchling,/obj/machinery/light/rogue/torchholder/r,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) "Ah" = (/obj/structure/mineral_door/wood{name = "Room VI"; chat_color_name = room; lockid = "roomvi"},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/church/chapel) "Ai" = (/turf/closed/wall/mineral/rogue/wood,/area/rogue/indoors/town/church/chapel) "Aj" = (/obj/machinery/light/rogue/torchholder/c,/turf/open/transparent/openspace,/area/rogue/outdoors/town/roofs) @@ -1349,7 +1358,7 @@ "Ba" = (/obj/structure/rack/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/garrison) "Bb" = (/obj/structure/fluff/walldeco/painting/seraphina{pixel_y = 32},/obj/effect/landmark/start/templar,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) "Bc" = (/obj/machinery/light/rogue/torchholder/c,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) -"Bd" = (/obj/machinery/light/rogue/torchholder/r,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) +"Bd" = (/turf/open/water/cleanshallow,/area/rogue/outdoors/beach) "Be" = (/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/indoors/town/tavern) "Bf" = (/turf/closed/wall/mineral/rogue/decowood,/area/rogue/indoors/town/tavern) "Bg" = (/obj/structure/roguewindow/openclose,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/tavern) @@ -1364,7 +1373,7 @@ "Bp" = (/turf/open/transparent/openspace,/area/rogue/indoors/town/church/chapel) "Bq" = (/obj/structure/chair/bench/church{icon_state = "church_benchleft"; dir = 1},/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) "Br" = (/obj/structure/chair/bench/church/mid{icon_state = "church_benchmid"; dir = 1},/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) -"Bs" = (/obj/structure/chair/bench/church/r,/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) +"Bs" = (/obj/structure/chair/bench/church/r{dir = 1},/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) "Bt" = (/obj/structure/fermenting_barrel/random/water,/turf/open/floor/rogue/tile{icon_state = "tile"},/area/rogue/indoors/town/tavern) "Bu" = (/obj/machinery/light/rogue/oven/south,/turf/open/floor/rogue/tile{icon_state = "tile"},/area/rogue/indoors/town/tavern) "Bv" = (/obj/structure/table/wood{icon_state = "longtable"},/obj/item/reagent_containers/powder/flour,/obj/item/rogueweapon/huntingknife/cleaver,/turf/open/floor/rogue/tile{icon_state = "tile"},/area/rogue/indoors/town/tavern) @@ -1386,7 +1395,7 @@ "BL" = (/obj/item/roguebin/water,/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) "BM" = (/obj/structure/chair/bench/church{icon_state = "church_benchleft"; dir = 1},/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) "BN" = (/obj/structure/chair/bench/church/mid{icon_state = "church_benchmid"; dir = 1},/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) -"BO" = (/obj/structure/chair/bench/church/r,/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) +"BO" = (/obj/structure/chair/bench/church/r{dir = 1},/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) "BP" = (/turf/open/floor/rogue/tile{icon_state = "tile"},/area/rogue/indoors/town/tavern) "BQ" = (/obj/effect/landmark/start/cook,/turf/open/floor/rogue/tile{icon_state = "tile"},/area/rogue/indoors/town/tavern) "BR" = (/obj/item/reagent_containers/food/snacks/smallrat,/turf/open/floor/rogue/tile{icon_state = "chess"},/area/rogue/indoors/town/tavern) @@ -1697,8 +1706,9 @@ "HL" = (/obj/structure/mineral_door/wood/deadbolt{icon_state = "wooddir"; dir = 8},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/dwarfin) "HM" = (/obj/structure/closet/crate/chest,/obj/item/candle/yellow,/obj/item/candle/yellow,/obj/item/candle/yellow,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/dwarfin) "HN" = (/turf/closed/wall/mineral/rogue/pipe{icon_state = "iron_line"},/area/rogue/indoors/town/dwarfin) +"HO" = (/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"},/area/rogue/outdoors/beach) "HP" = (/obj/structure/bed/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/manor) -"HQ" = (/obj/structure/rack/rogue,/obj/item/roguekey/roomi{name = "fancy room I key"; lockid = "fancyroomi"; pixel_x = 10},/obj/item/roguekey/roomi{name = "fancy room I key"; lockid = "fancyroomi"},/obj/item/roguekey/roomi{name = "fancy room II key"; lockid = "fancyroomii"; pixel_x = -10},/turf/open/floor/rogue/blocks,/area/rogue/under/town/basement) +"HQ" = (/obj/structure/rack/rogue,/obj/item/roguekey/roomi{name = "fancy room I key"; lockid = "fancyroomi"; pixel_x = 10},/obj/item/roguekey/roomi{name = "fancy room II key"; lockid = "fancyroomii"; pixel_x = -10},/obj/item/roguekey/roomi{name = "fancy room III key"; lockid = "fancyroomiii"},/turf/open/floor/rogue/blocks,/area/rogue/under/town/basement) "HR" = (/obj/structure/rack/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town) "HS" = (/obj/structure/roguewindow/openclose{icon_state = "woodwindowdir"; dir = 8},/turf/open/floor/rogue/wood,/area/rogue/indoors/town) "HT" = (/obj/structure/ladder,/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) @@ -1711,7 +1721,7 @@ "Ia" = (/obj/structure/bed/rogue,/obj/effect/landmark/start/weaponsmith{icon_state = "arrow"; dir = 8},/obj/item/bedsheet/rogue/cloth,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/dwarfin) "Ib" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/closed/wall/mineral/rogue/wooddark/vertical,/area/rogue/indoors/town/dwarfin) "Ic" = (/obj/structure/fluff/railing/border,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/dwarfin) -"Id" = (/obj/effect/landmark/latejoin,/obj/effect/landmark/start/adventurerlate{dir = 1},/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/rtfield) +"Id" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "If" = (/obj/structure/table/wood{icon_state = "tablewood2"; dir = 10},/obj/item/natural/feather,/obj/item/candle/skull/lit,/turf/open/floor/carpet/stellar,/area/rogue/indoors/town/shop) "Ig" = (/turf/open/floor/rogue/rooftop{icon_state = "roofg"; dir = 2},/area/rogue/outdoors/town/roofs) "Ih" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 4},/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/dwarfin) @@ -1913,6 +1923,7 @@ "LV" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/church) "LW" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 8},/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) "LX" = (/obj/structure/fluff/railing/wood,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/tavern) +"LY" = (/obj/structure/bars,/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/beach) "LZ" = (/obj/item/reagent_containers/food/snacks/crow{icon_state = "crow"; dir = 8},/turf/open/floor/rogue/rooftop{icon_state = "roof"; dir = 8},/area/rogue/outdoors/town) "Ma" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/transparent/openspace,/area/rogue/outdoors/town) "Mb" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/open/transparent/openspace,/area/rogue/outdoors/town) @@ -1998,11 +2009,20 @@ "ND" = (/obj/structure/stairs{icon_state = "stairs"; dir = 4},/turf/open/floor/rogue/rooftop{dir = 8},/area/rogue/outdoors/town) "NE" = (/obj/effect/landmark/mapGenerator/rogue/mountain{endTurfX = 128; endTurfY = 128},/turf/open/transparent/openspace,/area/rogue) "NF" = (/obj/effect/landmark/mapGenerator/sunlights{endTurfX = 128; endTurfY = 128},/turf/open/transparent/openspace,/area/rogue) +"NG" = (/obj/structure/well,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "NH" = (/obj/structure/mineral_door/wood/fancywood{lockid = "lord"; name = "Lord's Apartment"},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "NI" = (/obj/machinery/light/rogue/wallfire/candle,/turf/open/floor/rogue/carpet/lord/right,/area/rogue/indoors/town/manor) +"NJ" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "NK" = (/obj/structure/bed/rogue/inn/wool,/turf/open/floor/carpet/inn,/area/rogue/indoors/town/tavern) +"NL" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/beach) +"NQ" = (/obj/structure/chair/wood{dir = 8},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/tavern) +"NR" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) +"NS" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) +"NZ" = (/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/under/cave) +"Oa" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 1},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "Oc" = (/obj/structure/fluff/railing/wood,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 10},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Od" = (/obj/structure/fluff/statue/gargoyle,/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) +"Og" = (/obj/machinery/light/rogue/wallfire/candle/blue,/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) "Om" = (/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Oo" = (/obj/structure/roguemachine/scomm,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "Op" = (/obj/machinery/light/rogue/torchholder,/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/indoors/town/bath) @@ -2010,14 +2030,24 @@ "Os" = (/obj/structure/closet/crate/chest,/obj/item/paper/scroll,/obj/item/paper/scroll,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "Ot" = (/obj/structure/closet/crate/chest,/obj/item/candle/skull,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/under/town/basement) "Ou" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/cobble,/area/rogue/outdoors/town) +"Ov" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "Ox" = (/obj/structure/chair/bench/coucha,/turf/open/floor/carpet/royalblack,/area/rogue/indoors/town/manor) +"OA" = (/obj/machinery/light/rogue/firebowl/stump,/turf/open/floor/rogue/grass,/area/rogue/outdoors/town) "OE" = (/obj/structure/bookcase,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"OJ" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) +"OM" = (/obj/effect/decal/cobbleedge{dir = 5},/turf/open/floor/plating/ashplanet/rocky,/area/rogue/outdoors/beach) +"OP" = (/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/open/transparent/openspace,/area/rogue/indoors/town) "OT" = (/obj/structure/rack/rogue,/obj/item/rogueweapon/shield/wood,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) +"OU" = (/obj/item/reagent_containers/glass/bucket/wooden,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) +"OW" = (/obj/structure/fluff/railing/wood{dir = 1; pixel_y = 7; pixel_x = 2; layer = 2.7},/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "OX" = (/obj/structure/roguemachine/atm,/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "OY" = (/obj/structure/mineral_door/wood{name = "Room I"; lockid = "roomi"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) +"Pb" = (/obj/structure/mineral_door/wood,/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "Pd" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 1},/turf/open/floor/rogue/carpet/lord/center,/area/rogue/indoors/town/manor) "Ph" = (/obj/structure/fluff/railing/wood{dir = 1; pixel_y = -1},/turf/open/floor/rogue/cobble,/area/rogue/outdoors/town) +"Pm" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "Po" = (/obj/structure/mineral_door/wood/deadbolt,/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town) +"Pp" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "Pu" = (/obj/structure/floordoor/gatehatch/inner{redstone_id = "gatelava"},/obj/structure/kybraxor{pixel_x = -32; pixel_y = -32},/turf/open/transparent/openspace,/area/rogue/indoors/town/manor) "Pw" = (/obj/structure/fluff/railing/border,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "Px" = (/obj/structure/fluff/millstone,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) @@ -2025,43 +2055,64 @@ "PA" = (/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "PB" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "PD" = (/turf/open/floor/rogue/carpet/lord/right{dir = 1},/area/rogue/indoors/town/manor) +"PE" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "PG" = (/obj/structure/closet/crate/chest,/obj/item/paper/scroll,/obj/item/paper/scroll,/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) "PH" = (/mob/living/simple_animal/hostile/retaliate/rogue/wolf{del_on_deaggro = 0},/turf/open/floor/rogue/cobble,/area/rogue/under/town/basement) "PI" = (/obj/structure/mineral_door/wood/deadbolt,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town) +"PJ" = (/obj/structure/stairs{icon_state = "stairs"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) +"PL" = (/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "PO" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "PR" = (/obj/structure/bed/rogue/inn/double,/obj/item/bedsheet/rogue/fabric_double,/obj/structure/fluff/walldeco/customflag{pixel_x = 32; pixel_y = 0},/turf/open/floor/rogue/carpet/lord/center,/area/rogue/indoors/town/manor) +"PW" = (/obj/effect/decal/cobbleedge,/turf/open/floor/plating/ashplanet/rocky,/area/rogue/outdoors/beach) +"Qa" = (/obj/structure/roguewindow/openclose{icon_state = "woodwindowdir"; dir = 4},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/tavern) "Qd" = (/obj/structure/floordoor/gatehatch/outer,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Qi" = (/obj/structure/fluff/walldeco/church/line{icon_state = "churchslate"; dir = 8},/turf/open/floor/rogue/church,/area/rogue/indoors/town/church/chapel) +"Qk" = (/obj/machinery/light/rogue/torchholder/c,/obj/structure/globe,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "Qm" = (/obj/structure/mineral_door/wood{name = "Room V"; chat_color_name = room; lockid = "roomv"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) "Qn" = (/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/carpet/lord/center,/area/rogue/indoors/town/manor) "Qp" = (/obj/structure/mineral_door/wood/fancywood{locked = 1; lockid = "hand"; name = "Hand's Chambers"},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "Qq" = (/obj/structure/closet/crate/chest,/obj/item/paper/scroll,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"Qs" = (/obj/structure/fluff/railing/border,/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/beach) +"Qt" = (/obj/structure/table/wood{icon_state = "tablewood1"; dir = 1},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "Qu" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/town) "Qv" = (/obj/structure/rack/rogue,/obj/item/roguekey/roomi{pixel_x = 10},/obj/item/roguekey/roomii,/obj/item/roguekey/roomiii{pixel_x = -10},/turf/open/floor/rogue/cobble,/area/rogue/under/town/basement) "QA" = (/mob/living/simple_animal/hostile/retaliate/rogue/wolf{del_on_deaggro = 0},/turf/open/floor/rogue/blocks,/area/rogue/under/town/basement) "QC" = (/obj/structure/rack/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/church) "QD" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) +"QG" = (/obj/machinery/light/rogue/torchholder/c,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "QH" = (/obj/structure/chair/bench/coucha/r,/turf/open/floor/carpet/royalblack,/area/rogue/indoors/town/manor) "QM" = (/obj/structure/chair/bench/couch{icon_state = "redcouch2"},/obj/structure/fluff/walldeco/stone{pixel_x = 0; pixel_y = 32},/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"QO" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town) +"QQ" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) +"QT" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/beach) "QW" = (/obj/machinery/light/rogue/firebowl/stump,/turf/open/floor/rogue/dirt,/area/rogue/outdoors/rtfield) +"QX" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "QY" = (/obj/machinery/light/rogue/torchholder/c,/obj/structure/fluff/railing/wood,/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) +"Ra" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) "Rc" = (/obj/structure/fluff/railing/wood{dir = 1; pixel_y = -1},/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Re" = (/obj/structure/fluff/millstone,/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "Rk" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/cobble,/area/rogue/outdoors/exposed/dwarf) +"Rr" = (/obj/structure/boatbell/fluff{pixel_y = 16},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floor2"; dir = 1},/area/rogue/outdoors/beach) "Rs" = (/obj/structure/chair/wood/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/under/town/basement) "Rv" = (/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/under/town/basement) +"Rw" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "RB" = (/obj/effect/landmark/start/priest,/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) +"RC" = (/obj/structure/closet/crate/roguecloset,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "RD" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/exposed/dwarf) +"RE" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/obj/structure/fluff/railing/wood{dir = 1; pixel_y = 7; pixel_x = 2; layer = 2.7},/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "RF" = (/obj/structure/roguewindow/openclose{icon_state = "woodwindowdir"; dir = 4},/turf/open/floor/rogue/wood,/area/rogue/indoors/town) "RJ" = (/obj/structure/stairs/stone{icon_state = "stonestairs"; dir = 4},/turf/open/floor/rogue/church,/area/rogue/outdoors/town) "RM" = (/obj/structure/bookcase,/obj/item/book/random,/obj/item/book/random,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "RQ" = (/obj/structure/roguemachine/scomm,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) +"RS" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/cobble,/area/rogue/indoors/town/dwarfin) "RT" = (/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "RU" = (/obj/structure/chair/bench/couch{icon_state = "redcouch2"},/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "RV" = (/obj/structure/bookcase,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"RW" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "RZ" = (/obj/item/rogueweapon/mace/wsword,/obj/item/rogueweapon/mace/wsword,/obj/structure/closet/crate/roguecloset/inn/chest,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "Sc" = (/obj/structure/table/wood{icon_state = "map6"},/obj/machinery/light/rogue/wallfire{pixel_x = 32},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "Se" = (/obj/item/roguekey/roomv{lockid = "abandonedhouse"; name = "rusty key"},/turf/open/floor/rogue/wood,/area/rogue/under/town/basement) +"Si" = (/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "Sl" = (/obj/structure/bookcase,/obj/item/book/random,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "So" = (/obj/structure/fluff/statue/gargoyle,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "Sp" = (/obj/item/roguestatue/iron,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) @@ -2069,29 +2120,43 @@ "Sy" = (/obj/structure/table/wood,/obj/structure/table/wood{icon_state = "tablewood1"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "Sz" = (/obj/structure/fluff/traveltile{aportalgoesto = "forestin"; aportalid = "forestout"},/turf/open/floor/rogue/cobblerock,/area/rogue/outdoors/rtfield) "SA" = (/obj/machinery/light/rogue/wallfire/candle{pixel_y = -32},/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) +"SP" = (/obj/effect/decal/cobbleedge{dir = 1},/turf/open/floor/plating/ashplanet/rocky,/area/rogue/outdoors/beach) "SR" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/open/floor/rogue/dirt/road,/area/rogue/outdoors/rtfield) "SS" = (/obj/structure/table/wood{icon_state = "longtable"; dir = 1},/obj/item/paper/scroll,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) +"ST" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floor2"; dir = 1},/area/rogue/outdoors/beach) "SU" = (/turf/open/floor/rogue/cobble,/area/rogue/under/cave) "SY" = (/obj/structure/bed/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/church) "Tc" = (/obj/structure/fluff/railing/wood{dir = 1; pixel_y = -1},/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) +"Te" = (/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 4},/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) +"Tf" = (/obj/structure/stairs{icon_state = "stairs"; dir = 8},/turf/open/floor/plating/ashplanet/rocky,/area/rogue/outdoors/beach) "Th" = (/obj/structure/fluff/walldeco/painting{pixel_y = 32},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "Tj" = (/obj/structure/winch{gid = "townin"; redstone_id = "townin"},/turf/open/floor/rogue/blocks,/area/rogue/indoors/town/manor) +"Tm" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) "Tn" = (/obj/structure/table/wood{icon_state = "map3"},/obj/machinery/light/rogue/wallfire{pixel_x = 32},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) +"Tr" = (/obj/structure/closet/crate/chest,/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "Tt" = (/obj/structure/table/wood,/obj/item/keyring,/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) +"Tu" = (/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) +"Tw" = (/obj/structure/mineral_door/wood{name = "Fancy Room III"; chat_color_name = room; lockid = "fancyroomiii"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) "Tx" = (/obj/structure/closet/crate/roguecloset/dark,/obj/item/clothing/suit/roguetown/armor/leather/vest,/obj/item/clothing/shoes/roguetown/boots/leather,/obj/item/clothing/suit/roguetown/armor/armordress,/turf/open/floor/rogue/blocks/stonered/tiny,/area/rogue/indoors/town/dwarfin) "Ty" = (/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "TA" = (/obj/effect/landmark/start/manorguardsman{dir = 4},/turf/open/floor/rogue/tile/masonic{dir = 4},/area/rogue/indoors/town/manor) "TC" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) +"TG" = (/obj/machinery/light/rogue/torchholder/r{dir = 4},/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) "TI" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/cobble,/area/rogue/outdoors/town) +"TN" = (/obj/effect/decal/cobbleedge{dir = 6},/turf/open/floor/plating/ashplanet/rocky,/area/rogue/outdoors/beach) "TR" = (/obj/item/storage/roguebag,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "TS" = (/obj/structure/bed/rogue,/turf/open/floor/rogue/wood,/area/rogue/indoors/town) "TU" = (/obj/effect/landmark/start/manorguardsman{dir = 8},/turf/open/floor/rogue/tile/masonic{dir = 8},/area/rogue/indoors/town/manor) +"TW" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "Uc" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/grass,/area/rogue/outdoors/town) +"Ue" = (/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 10},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) "Ug" = (/obj/structure/mineral_door/wood{icon_state = "wcv"; lockid = "shop"},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) "Uh" = (/obj/structure/closet/crate/roguecloset/dark,/obj/item/roguekey/blacksmith,/obj/item/roguekey/blacksmith,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/dwarfin) "Ui" = (/obj/structure/chair/wood/rogue,/turf/open/floor/rogue/carpet/lord/right,/area/rogue/indoors/town/manor) "Uk" = (/obj/machinery/light/rogue/firebowl/stump,/obj/structure/fluff/railing/wood{dir = 1; pixel_y = -1},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Um" = (/obj/structure/table/wood,/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town/tavern) +"Up" = (/obj/structure/bed/rogue,/turf/open/floor/carpet/purple,/area/rogue/indoors/town) +"Ut" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "Uw" = (/obj/structure/plasticflaps,/turf/closed/mineral/rogue,/area/rogue/under/town/basement) "Uy" = (/obj/structure/chair/wood/rogue/fancy,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "UB" = (/obj/machinery/light/rogue/wallfire/candle{pixel_y = -32},/turf/open/floor/carpet/royalblack,/area/rogue/indoors/town/manor) @@ -2099,9 +2164,14 @@ "UF" = (/obj/structure/bookcase,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "UG" = (/obj/structure/table/wood{icon_state = "longtable"},/obj/structure/fluff/walldeco/rpainting{pixel_y = 32},/obj/item/natural/feather,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "UH" = (/obj/structure/mineral_door/wood{name = "Fancy Room I"; lockid = "fancyroomi"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) +"UI" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 10},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) "UJ" = (/obj/structure/closet/crate/chest,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"UQ" = (/obj/structure/stairs{icon_state = "stairs"; dir = 8},/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "US" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/machinery/light/rogue/firebowl/standing,/turf/open/floor/rogue/cobble,/area/rogue/outdoors/rtfield) +"UV" = (/obj/structure/chair/wood{dir = 4},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/tavern) "Vc" = (/obj/structure/rogue/trophy/deer,/turf/open/floor/carpet/royalblack,/area/rogue/indoors/town/manor) +"Ve" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 10},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) +"Vf" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/beach) "Vj" = (/obj/structure/fluff/statue/gargoyle,/obj/machinery/light/rogue/wallfire/candle,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "Vk" = (/obj/structure/closet/crate/roguecloset,/obj/item/needle/thorn,/obj/item/reagent_containers/glass/cup/silver,/obj/item/roguekey/church,/obj/item/paper/confession,/obj/item/roguekey/priest,/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) "Vn" = (/obj/structure/floordoor/gatehatch/outer,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) @@ -2111,15 +2181,21 @@ "Vu" = (/obj/structure/fluff/railing/wood{dir = 1; pixel_y = -1},/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 4},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Vy" = (/obj/structure/chair/bench/couch,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "VA" = (/obj/structure/winch{dir = 4; gid = "gatemanor2"; redstone_id = "gatemanor3"; pixel_x = -6},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) +"VD" = (/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 10},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) "VE" = (/obj/structure/closet/crate/roguecloset/lord,/obj/item/clothing/shoes/roguetown/nobleboot,/obj/item/rogueweapon/greatsword,/obj/item/scomstone,/obj/item/clothing/suit/roguetown/armor/plate/blkknight,/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) "VI" = (/obj/structure/chair/wood/rogue,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "VK" = (/obj/structure/fluff/clock,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "VL" = (/obj/structure/bed/rogue/shit,/obj/effect/landmark/start/butler{icon_state = "arrow"; dir = 4},/turf/open/floor/rogue/cobble,/area/rogue/indoors/town/manor) +"VM" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "VN" = (/obj/machinery/light/rogue/torchholder,/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/indoors/town/dwarfin) "VO" = (/obj/item/rogueweapon/tongs,/turf/open/floor/rogue/blocks/stonered,/area/rogue/indoors/town/dwarfin) "VP" = (/obj/structure/table/wood{icon_state = "tablewood1"},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/dwarfin) "VQ" = (/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/obj/structure/fluff/railing/wood{dir = 1; pixel_y = -1},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "VT" = (/obj/structure/fluff/walldeco/painting/seraphina{pixel_y = 32},/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) +"VX" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) +"Wa" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"},/area/rogue/outdoors/beach) +"Wf" = (/obj/structure/fluff/railing/border,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/obj/machinery/light/rogue/torchholder{pixel_y = 26; dir = 1},/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) +"Wh" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/blocks/stonered,/area/rogue/indoors/town/dwarfin) "Wi" = (/obj/structure/fluff/railing/wood,/obj/structure/fluff/railing/wood,/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Wl" = (/obj/structure/table/wood,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "Wp" = (/obj/machinery/light/rogue/torchholder,/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) @@ -2127,10 +2203,13 @@ "Wr" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "WA" = (/obj/effect/landmark/start/manorguardsman{dir = 8},/turf/open/floor/rogue/tile/masonic{dir = 2},/area/rogue/indoors/town/manor) "WB" = (/obj/machinery/light/rogue/torchholder/l,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) +"WC" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 10},/turf/closed/wall/mineral/rogue/stone,/area/rogue/outdoors/town) "WG" = (/obj/structure/closet/crate/roguecloset,/obj/item/rogueweapon/huntingknife/cleaver,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/under/town/basement) "WH" = (/obj/structure/mineral_door/wood/fancywood{lockid = "lord"; name = "Lord's Apartment"},/turf/open/floor/rogue/carpet/lord/right{dir = 1},/area/rogue/indoors/town/manor) +"WK" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 1},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 9},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "WL" = (/obj/structure/table/wood,/obj/item/candle/yellow,/obj/item/candle/yellow,/obj/item/paper/scroll,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/indoors/town/church) "WN" = (/obj/structure/chair/wood/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town/tavern) +"WQ" = (/obj/structure/closet/crate/chest,/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/woodturned,/area/rogue/outdoors/beach) "WT" = (/obj/structure/mineral_door/wood/deadbolt{icon_state = "wooddir"; dir = 8; lockid = "townroom1"},/turf/open/floor/rogue/ruinedwood{icon_state = "vertw"; dir = 1},/area/rogue/indoors/town) "WU" = (/obj/structure/bookcase,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "WW" = (/obj/structure/stairs/stone{icon_state = "stonestairs"; dir = 4},/turf/closed,/area/rogue/indoors/town/church/chapel) @@ -2139,42 +2218,59 @@ "Xe" = (/obj/effect/landmark/events/haunts,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) "Xf" = (/obj/machinery/light/rogue/wallfire/candle/l,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "Xg" = (/obj/machinery/light/rogue/wallfire/candle{pixel_y = -32},/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"Xk" = (/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) +"Xn" = (/obj/machinery/light/rogue/wallfire/candle/blue,/turf/open/floor/rogue/metal,/area/rogue/indoors/town/shop) "Xp" = (/turf/open/floor/rogue/tile/masonic{dir = 2},/area/rogue/indoors/town/manor) "Xq" = (/obj/machinery/light/rogue/torchholder/r,/obj/structure/closet/crate/chest,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "Xu" = (/obj/structure/fluff/railing/wood,/obj/structure/fluff/railing/wood{icon_state = "woodrailing"; dir = 8; pixel_y = -1},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) +"XA" = (/obj/structure/mineral_door/wood,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) "XC" = (/obj/structure/fluff/psycross,/obj/item/rogueweapon/woodstaff/aries,/turf/open/floor/carpet/royalblack,/area/rogue/outdoors/town) "XF" = (/obj/structure/roguemachine/scomm/l,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) +"XK" = (/obj/machinery/light/rogue/wallfire/candle/blue,/turf/open/floor/rogue/tile{icon_state = "chess"},/area/rogue/indoors/town/shop) "XN" = (/obj/effect/decal/cobbleedge{dir = 1; icon_state = "borderfall"},/obj/structure/roguemachine/atm{pixel_x = 32; pixel_y = 0},/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) +"XZ" = (/obj/structure/fluff/railing/border,/turf/closed/wall/mineral/rogue/wooddark,/area/rogue/outdoors/beach) +"Yb" = (/turf/closed/mineral/rogue/bedrock,/area/rogue/outdoors/beach) "Yc" = (/obj/structure/fermenting_barrel,/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "Yk" = (/obj/structure/floordoor/gatehatch/inner,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Yo" = (/obj/structure/fluff/clock,/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) "Yp" = (/obj/structure/fluff/wallclock,/obj/structure/chair/bench/couch,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"Yq" = (/obj/structure/table/wood{icon_state = "tablewood1"; dir = 1},/obj/item/paper/scroll,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/indoors/town) +"Yt" = (/obj/structure/bars,/turf/open/water/cleanshallow,/area/rogue/outdoors/beach) "Yv" = (/obj/structure/bookcase,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/obj/item/book/random,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) "Yx" = (/obj/machinery/light/rogue/torchholder/c,/turf/open/floor/rogue/grass,/area/rogue/outdoors/town) +"Yy" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/dirt,/area/rogue/outdoors/town) "Yz" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/grass,/area/rogue/outdoors/town) "YE" = (/obj/structure/mineral_door/wood{icon_state = "wcv"; lockid = "townroom1"},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town) "YI" = (/obj/structure/chair/wood/rogue{icon_state = "chair2"; dir = 4},/turf/open/floor/rogue/tile{icon_state = "bfloorz"},/area/rogue/indoors/town/manor) "YK" = (/obj/structure/roguemachine/scomm/r,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "YL" = (/obj/structure/bed/rogue,/turf/open/floor/rogue/ruinedwood{icon_state = "horzw"},/area/rogue/under/town/basement) +"YM" = (/obj/structure/mineral_door/wood{name = "Room IV"; chat_color_name = room; lockid = "roomiv"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) "YS" = (/obj/structure/bed/rogue/inn/double,/obj/item/bedsheet/rogue/fabric_double,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "YU" = (/obj/structure/bearpelt,/obj/structure/fluff/wallclock{pixel_x = -32; pixel_y = 0},/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) +"YZ" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "Zb" = (/obj/structure/fluff/statue/knight,/turf/open/floor/rogue/carpet/lord/center,/area/rogue/indoors/town/manor) "Zc" = (/obj/structure/closet/crate/chest{lockid = "priest"},/obj/item/book/rogue/bibble,/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) "Zg" = (/obj/structure/closet/crate/roguecloset,/obj/item/rogueweapon/sword/rapier,/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) +"Zi" = (/obj/machinery/light/rogue/torchholder/r,/turf/open/floor/rogue/churchmarble,/area/rogue/indoors/town/church/chapel) "Zj" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 4},/turf/open/floor/rogue/cobble,/area/rogue/outdoors/exposed/dwarf) +"Zk" = (/obj/structure/fluff/wallclock,/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floort"},/area/rogue/outdoors/beach) "Zm" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 5},/turf/open/floor/rogue/cobble,/area/rogue/outdoors/rtfield) "Zn" = (/obj/machinery/light/rogue/torchholder{pixel_y = 26},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "Zp" = (/obj/machinery/light/rogue/wallfire/candle,/obj/structure/chair/bench/couch{icon_state = "redcouch2"},/turf/open/floor/rogue/woodturned,/area/rogue/indoors/town/manor) "Zu" = (/obj/structure/roguemachine/scomm,/turf/open/floor/rogue/wood,/area/rogue/outdoors/town) +"Zv" = (/obj/structure/flora/roguegrass/water/reeds,/turf/open/water/cleanshallow,/area/rogue/outdoors/beach) "Zx" = (/turf/open/floor/rogue/carpet/lord/left{dir = 1},/area/rogue/indoors/town/manor) +"Zy" = (/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/outdoors/beach) "ZC" = (/obj/structure/mineral_door/wood{name = "Room II"; lockid = "roomii"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/tavern) "ZH" = (/obj/structure/bed/rogue/shit,/turf/open/floor/rogue/grass,/area/rogue/indoors/town/manor) +"ZI" = (/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/obj/effect/landmark/latejoin,/turf/open/floor/rogue/ruinedwood{icon_state = "wooden_floor2"; dir = 1},/area/rogue/outdoors/beach) "ZJ" = (/obj/machinery/light/rogue/torchholder,/turf/closed/wall/mineral/rogue/craftstone,/area/rogue/indoors/town) "ZL" = (/obj/structure/fluff/railing/wood,/obj/structure/fluff/railing/border{icon_state = "border"; dir = 6},/turf/open/floor/rogue/blocks,/area/rogue/outdoors/town) "ZM" = (/obj/machinery/light/rogue/wallfire/candle/r,/turf/open/floor/rogue/carpet,/area/rogue/indoors/town/manor) "ZP" = (/obj/structure/closet/crate/chest{lockid = "priest"},/obj/item/book/rogue/bibble,/turf/open/floor/carpet/royalblack,/area/rogue/indoors/town/church) "ZQ" = (/obj/structure/fluff/railing/border{icon_state = "border"; dir = 4},/obj/structure/fluff/railing/border{icon_state = "border"; dir = 8},/turf/open/floor/rogue/ruinedwood{icon_state = "weird1"},/area/rogue/indoors/town/shop) "ZU" = (/obj/machinery/light/rogue/wallfire/candle/l,/turf/open/floor/carpet/royalblack,/area/rogue/indoors/town/manor) +"ZV" = (/obj/structure/closet/crate/chest,/obj/machinery/light/rogue/torchholder{icon_state = "torchwall1"; dir = 8},/turf/open/floor/rogue/ruinedwood,/area/rogue/indoors/town) "ZW" = (/obj/effect/landmark/events/haunts,/turf/open/floor/rogue/carpet/lord/center,/area/rogue/indoors/town/manor) "ZZ" = (/obj/structure/table/wood{icon_state = "map1"},/turf/open/floor/rogue/wood,/area/rogue/indoors/town/manor) @@ -2229,49 +2325,49 @@ craaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacac aaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaacacacacaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaciciciciciciciaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaclahcvbbahahcwagbubbasascxbXbXasasagbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaacycyacacacacacacacacaaacacacacaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciciciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaciciciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacsahczahahahbXagasbXcAcAcBbXbXasasagbXbXbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaacycyacacacacaaacacacaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciciciciciciciciciciciciciciciciciciciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababXbabXbabXbXagascCcAcAcDbXbaasasagagcEbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaacacacacacacacacacacacacaacFaaaaaaaacFcycyaacFacaccFacacaccFaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciciciciciciciciciciciciciciciciciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaahcmascGcHcIbXagascJcKcAcLbXbaasasasagcEbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaacacacacacacacacacacacacaccycycycycycycycycycycycycycycycycyacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXbFasasasasasbXagasbabXbXbXbXbXasasasagcEbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaacacacacacacacacacacacacacaccycycycycycycycycycycycycycycycycyacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagagagbbahahcwagbubXcMcMcMcMcpasasasbabXbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacacaaaacFaaaaaaaacFcycyaacFcycycFaacFcycyacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacMcNcOahcsahbXagasbbcPcPagcQcpasasasbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaacFcycycFaaaaaaaaaaaaacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXbXbXbXbXbabXbXcRascScAcTcUcKcpasasasbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaacFcVcVcFaaaaaaaaaaaaacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXcWcXasasasascSasasbbcPagagagbXasasasbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaacFcFcFcFaaaaaaaaaaaaacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaasascYbbbbbbbbasasbXbXcLcAcZbXasasasbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaasascYbbdbdcbbasbubXbXbXbXbXbXasasasbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacGasasagagagcSagagbXbXbXbXbXbXasasasbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaadadadaacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababXddbXbXbabXbabXbXasasasbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacacacacacdadaaaaaaaaaaaaadadaaadadaacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaasasasasasasdebXaaaabadfdfdfbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacacacacacacacacacacacacacacacdadadadadadadadadadadadaacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagagagagagagdgbXaaaabababXbXbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaacacacacacacacacacacacacacacacacacacdadadadadadadadadadadaacacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababXbXagagbXbababXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaacacacacacacacacacacacacacacacacacacacdadadadadadadadadadaacacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXbXdhbXaabaalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaacacacacacacacacacacacacacacacacacdadadadadadadadadaacacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalasalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpcpcpcpcpcpcpcpcpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacacacacacacacdadadadadadadadadaacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalcWasasdiasdjdkasasascWalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpaEdldmcpdncPdocpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacacacacacacacacdadadadadadadaacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalasasasagagagasasasasasalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpdpcPcPcPcPcPdocpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacacacacacacdadadadadadadadadaacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalagagdqdrdqdqdqdqdqasasalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpagcPcPcpdscPdocpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacacdadadadadadadadadadadadadaacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldtasdqdudududududqaNdvalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpagdwbXcpcpcPcpcpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacacacdadadadadadadadadadadadadadaacacacacacacacaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalasasdqdudududududqagdxalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpagagaEcpcPcPdocpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacacdadadadadadadadadadadadadadaacacacacacacacacacaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldtasdqdudududududqdydzalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpdAagagcPcPcPdocpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacdadadadadadadadadadadadadadadaacdaacacacacacaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalagagdqdudududududqdydxalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpagagagcpcPcPdBcpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaacacacacacacacacdadadadadadadadadadadadadadadadadaacacacacacaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldtasdqdudCdDdududqdEdFalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdGbbdGdHbbcpcpcpcpcpaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaacacacacacacacacacdadadadadadadadadadadadadadadaacacacacaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalasasdqdudududududqagdxalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIdJdKdLagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaacacacacacacacacacacdadadadadadadadadadadaacacacacacacacaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalaldMalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaldNdOasasdqdudududududqdPagalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIagcRagagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldQdRaldSaldTalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldUasbbasasdqdudududududqaNdvalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIdJdVdWagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaacacacacacacacacacacacacacacacacacacdadaacacacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjbjSebjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldUasdXdYasdqdqdqdqdqdZdqasasalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIagagagagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaacacacacacacacacacacacacacacacacacdadadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjbjbjbjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalasbbasagagagasasagagasasasalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadIdJeaebagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacacdadadadaadadadacacdadadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjecbjalbjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalasedasagasasasasagagaseecWalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdGbbdGbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacacacdadadadadaadadadadadaddadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjefbjbjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalalalalalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacacacacdadadaacacacacacadadadadaddadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjbjbjbjegalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaacacacdadadadadaacacacacacacacacacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaacacacdadadadadaacacacacacacacacacacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacdadaaaaaaaaaaaaaaaaaaaacacacacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacdadaaaaaaaaaaaaaaaaaaaaaaaaaacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacdadadadaacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacaaaaaaaaaaaaalalalalaaaaaaaaacacacacdadaacacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacaaaaaaaaaaaaalduehalaaaaaaaaaaacacacdadadaacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacaaaaaaaaaaaaalahehalaaaaaaaaaaacacacacdadaacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacaaaaaaaaaaaaalaheialaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacacaaaaaaaaaaalejdOalalalaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacacaaaaaaaaaaalahahahekalaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaacacacacacacacacaaaaaaaaalahduduelalaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaacacacacacacacacacacacacaacFaaaaaaaacFcycyaacFacaccFacacaccFaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciciciciciciciciciciciciciciciciciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaahcmascGcHcIbXagascJcKcAcLbXbaasasasagcEbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNZ +aaaaaaaaaaaaaaacacacacacacacacacacacacaccycycycycycycycycycycycycycycycycyacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXbFasasasasasbXagasbabXbXbXbXbXasasasagcEbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZy +aaaaaaaaaaaaacacacacacacacacacacacacacaccycycycycycycycycycycycycycycycycyacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagagagbbahahcwagbubXcMcMcMcMcpasasasbabXbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNZZy +aaaaaaaaaaacacacacacacacacacacacacacaaaacFaaaaaaaacFcycyaacFcycycFaacFcycyacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacMcNcOahcsahbXagasbbcPcPagcQcpasasasbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyZy +aaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaacFcycycFaaaaaaaaaaaaacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXbXbXbXbXbabXbXcRascScAcTcUcKcpasasasbXaaaaaaaaaaaaaaaaaaaaYbYbYbYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaacFcVcVcFaaaaaaaaaaaaacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXcWcXasasasascSasasbbcPagagagbXasasasbXaaaaaaaaaaaaaaaaYbYbYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaacFcFcFcFaaaaaaaaaaaaacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaasascYbbbbbbbbasasbXbXcLcAcZbXasasasbXaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaasascYbbdbdcbbasbubXbXbXbXbXbXasasasbXaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacGasasagagagcSagagbXbXbXbXbXbXasasasbXaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaadadadaacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababXddbXbXbabXbabXbXasasasbXaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacacacacacdadaaaaaaaaaaaaadadaaadadaacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaasasasasasasdebXaaaabadfdfdfbXaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdBdYtLY +aaaaaaaaacacacacacacacacacacacacacacacacacdadadadadadadadadadadadaacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagagagagagagdgbXaaaabababXbXbXaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyZy +aaaaaaacacacacacacacacacacacacacacacacacacdadadadadadadadadadadaacacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababXbXagagbXbababXaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdYbYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNZZy +aaaaaaacacacacacacacacacacacacacacacacacacacdadadadadadadadadadaacacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXbXdhbXaabaalaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZy +aaaaaaaaaaaaacacacacacacacacacacacacacacacacacdadadadadadadadadaacacacacacacacacaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalasalalalaaaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdYbaacpcpcpcpcpcpcpcpcpaaaaaaaaaaaaaaaaaaaaNZ +aaaaaaaaaaacacacacacacacacacacacacacacacacacacdadadadadadadadadaacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalcWasasdiasdjdkasasascWalaaaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdYbaaaacpaEdldmcpdncPdocpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacacacacacacacacacacacdadadadadadadaacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalasasasagagagasasasasasalaaaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdYbaaaacpdpcPcPcPcPcPdocpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacacacacacacacacacdadadadadadadadadaacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalagagdqdrdqdqdqdqdqasasalaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdYbaaaacpagcPcPcpdscPdocpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacacacacacdadadadadadadadadadadadadaacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldtasdqdudududududqaNdvalaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdYbaaaacpagdwbXcpcpcPcpcpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacacacacdadadadadadadadadadadadadadaacacacacacacacaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalasasdqdudududududqagdxalaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdYbaaaacpagagaEcpcPcPdocpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacacdadadadadadadadadadadadadadaacacacacacacacacacaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldtasdqdudududududqdydzalaaaaaaaaaaaaaaaaaaaaBdBdBdBdBdBdBdBdYbaaaaaacpdAagagcPcPcPdocpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacdadadadadadadadadadadadadadadaacdaacacacacacaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalagagdqdudududududqdydxalaaaaaaaaaaaaaaaaaaaaBdBdBdBdBdBdBdYbaaaaaaaacpagagagcpcPcPdBcpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaacacacacacacacacdadadadadadadadadadadadadadadadadaacacacacacaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldtasdqdudCdDdududqdEdFalaaaaaaaaaaaaaaaaaaaaBdBdBdBdBdBdBdYbaaaabbdGbbdGdHbbcpcpcpcpcpaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaacacacacacacacacacdadadadadadadadadadadadadadadaacacacacaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalasasdqdudududududqagdxalaaaaaaaaaaaaaaaaaaaaBdBdBdBdBdBdBdYbaaaadIdJdKdLagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaacacacacacacacacacacdadadadadadadadadadadaacacacacacacacaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalaldMalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaldNdOasasdqdudududududqdPagalaaaaaaaaaaaaaaaaaaaaBdBdBdBdBdBdBdYbaaaadIagcRagagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldQdRaldSaldTalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldUasbbasasdqdudududududqaNdvalaaaaaaaaaaaaaaNZNZZyYtYtYtYtYtYtYtZyaaaadIdJdVdWagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaacacacacacacacacacacacacacacacacacacdadaacacacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjbjSebjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaldUasdXdYasdqdqdqdqdqdZdqasasalaaaaaaaaaaYbZyZyZyZyYtYtYtYtYtYtYtZyNZaadIagagagagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaacacacacacacacacacacacacacacacacacdadadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjbjbjbjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalasbbasagagagasasagagasasasalaaaaaaaaYbYbBdBdBdBdBdBdZvBdBdBdBdBdZyaadIdJeaebagdIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacacdadadadaadadadacacdadadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjecbjalbjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalasedasagasasasasagagaseecWalaaaaaaaaYbBdBdBdBdBdBdBdBdBdBdBdZvBdYbaabbdGbbdGbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacacacdadadadadaadadadadadaddadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjefbjbjbjalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalalalalalalalaaaaaaYbYbZvBdBdZvBdBdBdBdBdBdBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacacacacdadadaacacacacacadadadadaddadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbjbjbjbjbjegalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdBdHOBdBdBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaacacacdadadadadaacacacacacacacacacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYbBdBdBdBdBdBdBdWKWaPEBdBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaacacacdadadadadaacacacacacacacacacacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyBdBdBdZvBdBdZvNRWaYZBdBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacdadaaaaaaaaaaaaaaaaaaaacacacacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyZvBdBdBdBdBdWKyIxwyIPEBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacdadaaaaaaaaaaaaaaaaaaaaaaaaaacacacdadadadaacacacacacacaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyZyTuBdBdBdBdBdNJTWTuPpRWBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacdadadadaacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVfQsQsREOWOWOWjAjAXkyIRryIRWBdZvBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacaaaaaaaaaaaaalalalalaaaaaaaaacacacacdadaacacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyTfSPOMPLPLPLjAjAXkyIyIyIRWBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacaaaaaaaaaaaaalduehalaaaaaaaaaaacacacdadadaacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyTfPWTNPLPLTeBdBdNJZITuSTRWBdBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacaaaaaaaaaaaaalahehalaaaaaaaaaaacacacacdadaacacacacacaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNLQTzbuLPLTuTuBdUtIdxvZkxvYZPmBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacaaaaaaaaaaaaalaheialaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZyTuPbTuTuBdBdgwTuTuTuxvXkNSBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacacaaaaaaaaaaalejdOalalalaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTuPLTrTuBdBdUIVeTuPJXkVMOJBdBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacacaaaaaaaaaaalahahahekalaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTuWQTrTuBdBdBdVDUeXZXZWfBdZvBdYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacacacacacacacacaaaaaaaaalahduduelalaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTuTuTuTuBdBdBdBdBdBdBdBdBdBdYbYbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaacacacacacacacacaaaaaaaaalalalalalalaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciaaaa aaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciciaaaa @@ -2392,8 +2488,8 @@ eneqeoeoepeoepeoepeoepeoepeoeqeqeoeqeqepepeneneneneneneneneneneneneneneneneoeoeo eneqeoeoepeoepeoepeoepeoepeoeqeqeoeoeoepepeoeneneneneneneneneneneneneneneneoeoeoeqeqeoeoererjUeSeSkDlalQlQlQlQlakDljmdmdmxljliljltltltltmykDkDmzmzmzeSeSgglRmilRPOlTmjmkmlmmmnkwlFkweSlUjNkJlmlmmojNkJlmmplmlmjNjZjZmqjSjSjNmrmrjXjXjXmsggerererewewkCmtkVlKlKlKlKlKlLlKlKlKkCkCkCkCkCkCkCkVkVkVkVkVmueteteteteteteten eneqeoeoeoeoepeoepeoepeoepeoeqeqeoeoeoeoepepeoenenmvmwmwmveneneneneneneneneojaeoeqeqeoeoererjUeSgpkDkDkDkDkDkDkDkDljmdmdmdljliljljljljljljlhkDeseseseSeSggmAmBmAggkwmCmDmDmDmDlFlFmEeSgpjNmFmGmHmIjNkJlmmJmJmKjNjZjZmqjSjSmLjXjSjSjSmMjNmNererereSewkCnbkClKlKlKlLlLlLlKlKlKkCkVkVkVkVmPmQkVlLmRmSkVmueteteteteteteten eneoeoeoeoeoeoeoeoeoepeoepeoeoeqeoeoiVeoepepepeoenmTgzgzmTeneneneneneneneoeoeoeoeqeoeoeoererjUeSeSkDnjnknlnjnmnmkDnnmdmdmdljlinoltnoltnoltnokDnpnpnpggeSeSeSeSmUkwkwmDmVlTmDmWkwmXkweSmYlGlmlmlmlmlGkJlmjZmpkJjNjNjNjNmZjSkQkQkQnanakQkQmNererereSewkVnbkVlKlKlKlLlKlKlKlKlKkCkVmbmbkVmPncndlLnenfkVmueteteteteteteten -eneoeoeoeoeonggMgMeoeoeoepeoeoeoeoeoeogxgxepepgxgxnhnininheneneneneneneoeoeoeoeoeoeoeoeoererjUeSeSkDltlQlQltnGnGkDnHljljnIlhlilililililililinJggnKggggeSeSkwkwlTlTkwnqnrmDmDmDnskwkweSgpjNkJkJkJntjNnunvjZmpkJjNnwnxjXnyjSkQlInzlIlIlIkQmNererereSewkVnbnAnblLlLlLlKlKlKkVlKkVkVnBnBnBncncnClLlLnDkVmueteteteteteteten -eneoeoeoeoeoeogMgMgMReeoeoeoeoeoeoeoeogxeoepepeoeomvnEnFmveneneneneneneoeoeoeoeoeoeoeogMererjUeSeSkDltlQlQltnGnGofmdmdljnomdmdnoognoognoognokDnpnpnpggeSnLkwnMnNnOnPmDmDmDmDmDkwlFkweSesjNnQnRkJnSjNjNjNjNjNjNjNnwnxjXjSjSnTjXlIlIlInUkQmNererereSewkVnbkClKlLlKlKlKlKlKlKlKkVkVnVnVkVnWnckVnDlLnXkVmueteteteteteteten +eneoeoeoeoeonggMgMeoeoeoepeoqUeoeoeoeogxgxepepgxgxnhnininheneneneneneneoeoeoeoeoeoeoeoeoererjUeSeSkDltlQlQltnGnGkDnHljljnIlhlilililililililinJggnKggggeSeSkwkwlTlTkwnqnrmDmDmDnskwkweSgpjNkJkJkJntjNnunvjZmpkJjNnwnxjXnyjSkQlInzlIlIlIkQmNererereSewkVnbnAnblLlLlLlKlKlKkVlKkVkVnBnBnBncncnClLlLnDkVmueteteteteteteten +eneoeoeoeoeoeogMgMgMReNGOUeoeoeoeoeoeogxeoepepeoeomvnEnFmveneneneneneneoeoeoeoeoeoeoeogMererjUeSeSkDltlQlQltnGnGofmdmdljnomdmdnoognoognoognokDnpnpnpggeSnLkwnMnNnOnPmDmDmDmDmDkwlFkweSesjNnQnRkJnSjNjNjNjNjNjNjNnwnxjXjSjSnTjXlIlIlInUkQmNererereSewkVnbkClKlLlKlKlKlKlKlKlKkVkVnVnVkVnWnckVnDlLnXkVmueteteteteteteten ennYnYnYnYnZoaobocoaododododododododobnZeoeoeoeoeoeogMgMeogxeoeoeoeoeoepepepepepgXeoeooeererjUeSeSkDnjltltnjnjoGkDmdmdljltltltoglQlQlQlQlQogkDesesesggeSeSohoioioinPmDmDojokolkwomkweSesjNjNjNjNjNjNewesononoojNjNjNjNjSjSkQjXlIlIlIopkQoqererereSewkClLlKlKlLlKlKkVkCkCkCesesewkVkVkVkVorkVkVorkVkVkVkVeteteteteteten eneoeoeoeoosotouotovowoxoyozoAoBoCoDoEoseoeoepepeoeogMgMeogxgXepepepepepepoFepepepeoeogMererjUeSeSkDkDkDkDkDkDkDkDmdmdljltlQltoglQlQlQlQlQogkDoVoVoVggeSgpkwoioioHkwlTlTlTlTlTkwkwkweSesesesewewewewesesononoIjNoJlqjXjSjXkQjXlIlIlIoKkQggererereSewkClLlLlLlLlKkVkCkVkVkVewewewkYkYkYkVlLoLlLlLoMoNoOkVeteteteteteten eneoeoeoeooPoQoRototoSoToToToTowozowowoPeoepepeoeoeogMgMeogxepepoUepgXepepepepepepeqeqgMererjUeSeSkDkDkDljljleljplmdmdljltltltoglQlQlQlQlQogmheSeSeSeSeSeSlTkwohkwkwkwoWkwkwkwkwkwggeSeSggjMoXoXoXoXoXoXoXggggjNoYjXjXjXlnkQlIoZlIoZpakQpbererereSewesesesesesesesewewpcpcpcewewkYkYkYkVlLlLlLlLlLlLpdkVeteteteteteten @@ -2402,33 +2498,33 @@ ennYeoprnYnZoapsobnZoaodpsobnZptnZoaobnZeoeoepepeoeogMgMeoeoepepeoeqeqeqeqeqeqeo eneoeoepeppAeqeqhlpBpCpDeoeopFgMeopGqUeoeoeoepepepeogMgMeogxeoeoeqeqeoeoeoeoeoeoeqiVeoeoererjUeSkvkDkDkDpIlilimdkDkDFqkDkDpQagagpRagagagalalaloXoXoXeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSpyewkYkVlLlLpKpLpMpNpOkVeteteteteteten eneoeoepepeqeqeqeqeqeoeoeoeogMgMeoeoeoeoeoeoeoepQWepgMgMeoeoeoeoeojaeoeoeoeoeoeoeqeoeoeoererjUeSeSkDkDkDkDkDkDkDalpYbRpZqaagahahahahahbmalagahahahaleSeSeSlTkwkwkwpUpUpUpUkwkwkwkwggeSeSggggggggggggggggewewpVewpVewpVewewesggewewewewewewewpWpXpWewewewewewpWpWewewewpXewewewpWewewetewewewewewewkVkVkVeteteteteteten eneoepepepeoeoeoepepeoeoeogMgMgMeoeoeqeqeqeqeqeoepepgMeoeogxeoeoeoeoeoeoiVeoepepeoeoeoeoererjUeSeSalHQagqpqqqrqsalbRqtpZalagahahahbmahahqaagahquahaleSeSeSkwqbDTDTqdqdqdqdDTqeqfkwkwewewewewewewewewmNmNpVerererererererpVeSeSeweReRqgiSiSqhpXpXpXqhewqiqjqkqipXqiqlqipXqmqnqmpXeweweweweweweweweweteteteteteteteteten -eneoepepepepeoepepeoeoeogMgMgMeoeqeqeqeoeoeqeoeoepepgMeoeogxeoeoeoepeoepepepepeoiVqoqoeoererjUeSeSalqGasasasasasqaqHqHqIalalalahbmahbmbmalagahqJahaleSeSgpkwDTDTDTqdqdqdqdDTDTDTDTkwewqvqwqxqyqxqxqxmNqzewerererererererewqAeSeweReReRiSeRpXpXpXqgeRiOqiqBqCqipXqiqDqipXeSeSeSpXoXoXoXoXoXoXoXeweweteteteteteteteteten +eneoepepepepeoepepeoeoeogMgMgMeoeqeqeqeoeoeqeoeoepepgMeoeogxeoeoeoepeoepepepepeoiVqoqoeoererjUeSeSalqGasasasasasqaqHqHqIalalalahbmahbmbmalagahqJahaleSeSgpkwRwDTDTqdqdqdqdDTDTDTDTkwewqvqwqxqyqxqxqxmNqzewerererererererewqAeSeweReReRiSeRpXpXpXqgeRiOqiqBqCqipXqiqDqipXeSeSeSpXoXoXoXoXoXoXoXeweweteteteteteteteteten eneqepeoepepeoeoeoeoeogMgMgMeoeoeqeqeqiUeoeqiVeoepeogMgMeoqEeoeoeqepepepepepepeoqFeoeoeoererjUeSeSbaqVasaseJaUQvalpZqWqXalqYalqZraagagrbalagagahahaleSeSeSkwDTDTDTqdqdqdqdqKDTDTqLkwewqxqxqxqMqxqNqxmNmNpVerererererererpVeSeSeweRqgiSiSqhpXqOpXiSiSiOpXpXpXpXpXpXpXfvpXpXpXpXpXoXqPeSqQqRqSnpqjeweteteteteteteteteten eneqepepepepeqeogMgMgMgMgMgMeoeoeoeqeqeqeqeqeoeqeqeqgMgMeoqEgxeoqTeqeqeogXepepepqFeoeoPAererjUeSeSbaalalalalalalalalalalbXrrbXalalalalalalalalalalaleSeSeSrcDTDTrdrererererfDTDTrgkwewrhrirjqxrhrirkewggewerererererereresrleSeweRiSqgrmpXpXpXpXpXqgewfvpXqifvqBqipXpXpXpXpXqiqioXerrnroeSeSrppXeweteteteteteteteteten eneqeqepepeoeqeoeogMgMgMgMgMgMgMeoeoeqeoeoeqeqeqeqeqgMgMeoeorqeoeoeoeqeqeoeoeoeoeoeoSRPwLGLGgYeSeSggOrggrBOXgggcggggggOrggeSggggggggggggOrggggggggggeSeSeSkwDTDTrdrererererfDTDTrgkwewqxqxqxqxqxqxqxeweSpVerererererererewrseSeweRiSeRqipXrtrupXpXeRrwrxpXfvqirmfvpXqirxqipXqDqjoXeSeSeSeSeSnppXeweteteteteteteteteten eneqeqeoepepeqeqeqeqeogMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMrygMgMryrzeSeSrAeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSkwqeDTrdrererererfDTDTqekwewrDqxrErFrjqxrGeweSewerererererererpVggeSeweRqgeRqhpXpXpXpXpXqiewfvpXqiqirxqipXqiqiqipXqiqioXrooXoXoXoXoXpXeweteteteteteteteteten -eneqeqeoeoeoeqeqeqeqeoeoeoeogMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMrygMgMryrzeSeSrAeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSkwrIDTrJrKrKrKrKrLqeqeqekwewoXqxqxqxqxqxrMeweSpVererererererereweseSeweReReRiSqipXrNpXqhrmiOfvpXfvpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXeweteteteteteteteteten +eneqeqeoeoeoeqeqeqeqeoeoeoeogMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMrygMgMryrzeSeSrAeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSkwrIDTrJrKrKrKrKrLqeqeZVkwewoXqxqxqxqxqxrMeweSpVererererererereweseSeweReReRiSqipXrNpXqhrmiOfvpXfvpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXeweteteteteteteteteten eneoeoeneneneoeqeqepepepepepepeoeoeoeogMgMeqeqepepeoeoeogMgMgMgMgMgMgMgMgMgMgMgMgMryryrzeSeSrAeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSkwkwkwkwkwkwkwoWkwkwkwkwkwewoXqxqxqxqxqxriewggewererererererereweskxewrPeReRiSqhpXpXpXqgeRiOfvpXqipXfvqBpXpXqBqiqiqirQewfvrRfvqjrRfveweweteteteteteteteteten eneneoeneneneneneoeoepepepepepepepepeoeoeqeqepepepepeoeogMgMgMgMeoeoeoeoeoeoeoeoeoeoPBQDMbMbRTggggggeSggggrSeSeSggggggggggggggggggeSggggrTggrUggggggeSeSeSeSggeSeSeSeSeSeSeSeSeSeSggggqxqxqxrVrWqxrXeweSewererererererereweseSewpXpXpXrYpXpXpXpXeRrmewfvpXqBpXrZfvpXpXqieReRqiqioXeweweweweweweweweteteteteteteteteten eneoeoeneneneneneneoepepepepepepepeoeoeqeqepepepepeoeogMgMgMgMqUeoeoepepepepeoqFeoeoeoPAererjUsasbhXscsdsbsesfsfststststVNststststeSkwsgkwkwshkwsgkweSeSsisjsksksksksjsksksksksjewewewoXqxqxewewewewewslewererereweweweweweseSewpXpXqiqhiSqgiSiSqgeRewewpXewsmfvfvpXpXqBeRfvqDqjoXeteteteteteteteteteteteteteteteteten eneoeneneneneneneneoeoeoeoeoepepepepeqeoepepepepepsneogMgMgMgMeoeoepepepepepepsoepgXeoeoererjUsbspsqsrsrsssbZjsfsfhThTsbfLTxtqststeSkwsukwkwkwkwshkweSeSeSsvswsxsyszsAsBsCsDsEsFewewewoXeSggiNsGrCsHersIespJpVeseseSiZeSesesewewpXpXpXqgqgiSqgiSiSfvewsJpXsKpXrxfvpXpXqiqifvqiqioXeteteteteteteteteteteteteteteteteten enepeoeneneneneneneoepeoeosLeoepeoepeqepepeoeoeoepeoeogMgMgMgMeoeqepepepepepepsMsNsMsMeoererOmsbsOsqsrsrsPsbsfsfsfhThTtetctctqvksbgpkwshshshshshshkweSeSeSsUsVsWsVsXsAswsDsYsZsFewewewggeSggeSeSeSsHertaeSeSeSeSggggggggewewewewewewpXpXewewewewewewewpXpXpXpXpXpXpXpXfveweweweweweteteteteteteteteteteteteteteteteten -enepepeoeneneneneoepepepeoeoeoepepepeqepeoeoeoepepeoeogMgMgMeoeoeqepepepepgXepepepeoeoeoererTCsbtbtctdtdtdtesfsfsbscscsbtcvDtqHJsbthkwshshshshshshkweSeSeSsUsVsVsVtisAswswswtjsFeweweSggggggggggeSeStktleSeSeSeSeSeSeSeSewqgqgeRrRtmpXpXtmeRrReRrRewqjpXqiqirZfvfvpXpXpXeSeSpXtneweteteteteteteteteteteteteteteteteten +enepepeoeneneneneoepepepeoeoeoepepepeqepeoeoeoepepeoeogMgMgMeoeoeqepepepepgXepepepeoeoeoererTCsbtbtctdtdtdtesfsfsbscscsbtcvDtqtcsbthkwshshshshshshkweSeSeSsUsVsVsVtisAswswswtjsFeweweSggggggggggeSeStktleSeSeSeSeSeSeSeSewqgqgeRrRtmpXpXtmeRrReRrRewqjpXqiqirZfvfvpXpXpXeSeSpXtneweteteteteteteteteteteteteteteteteten eneoepeoeneneneoeoepepeoeoeqeqepepeqeqepeogXeoepeoeoeogMgMgMeoeqeqeqeoepepepepeoepeoeqeoererjUsbtotctptqtqsbsfRksbtctctbtctctctcsbeSkwshshshshshshkweSeSeSsjtttuswtvtwtvswswtxsFeweweSeSeSggggeSeSeSeSeSeSkwkwkwkwkweSeSeweReReReRfvpXpXeReRfvfvqgewqipXqDqifvfvfvpXpXfvewtyfvggeweteteteteteteteteteteteteteteteteten eneoepepeoeneoeoeoeoeoeoeqeqeqeqeqeqeoepepeoepepeoeoeogMgMgMeoeqeoeqeqepepepepepepeqeqeoererjUsbtztctdtAtqsesfsfsbtctctcvLsrvMvNsbkykwshshshshshshkweSeSgpsjsksksksksksksktDsksjeweweSeSeSeSeSeSeSeSeSeStEtFDTDTtHkwtFeSeweReReReRfvpXpXeRfveReRrRewqipXqiqifvpXfvpXpXfvggeSpXeSeweteteteteteteteteteteteteteteteteten eneoeoepepeoeoeoeoeoeoeoeoeoeqeqeqeqeoeoeoepepeojaeoeogMgMgMeoeqeoeoeqeqepepepeoeoeqeqeoererjUsesbsbsbsbsesesfsfsbtctctctcsrsrvVsbkxkwshshshshshshkweSeSeSsFtJswtKtLtMtNsyswtjsFeweweSeSeSeSeSeSeSeSeSeSuvtODTDTtHtHtFewewfveReRfvpXpXpXfveReReRfvewqBpXfvfvfvfvfvpXpXfvggfvpXtPeweteteteteteteteteteteteteteteteteten -eneneneoepepeoepepeoepepepeoeoeoeqeqeoeoeoeoeoeoeoeoeogMgMgMeoeqeqgXeoeqeqeoeoeoeoeqeoeoererTCstststststststsfRksbtotztctcsrsrsPsbeSkwkwkwkwkwkwkwkweSeSeStDswswswswtVswswswswsFeweweSeSeSeSeSeSeSeStFtFtFtFDTDTDTDTtFeweReReRfvpXpXpXpXpXpXeRfveRewqipXtWqipXpXfvpXpXfvggpXpXggeweteteteteteteteteteteteteteteteteten +eneneneoepepeoepepeoepepepeoeoeoeqeqeoeoeoeoeoeoeoeoeogMgMgMeoeqeqgXeoeqeqeoeoeoeoeqeoeoererTCstststststststsfRksbtotztctcsrsrsPsbeSkwkwkwkwkwkwkwkweSeSeStDswswswswtVswswswswsFeweweSeSeSeSeSeSeSeStFtFtFtFDTDTDTDTtFeweReReRfvpXpXpXpXpXpXeRfveRewYypXtWqipXpXfvpXpXfvggpXpXggeweteteteteteteteteteteteteteteteteten eneneneoeoepepepeoeogXepeptXtXtXtXtXtXtXpstXpstXpstXtXgMgMgMeoeqeqeqeqeqeqeqeoeoeoeoepeoererjUsttgsQsRsQtfstsfsfstststststststststggggTIeSeSeSeSZneSeSeSeSsFswswsjswzfswsjswswsFeweweSeSeSeSeSeSeSeStFudmXtHlFDTMhuetFeweRfveRfvpXpXrReReRpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXggpXeSggeweteteteteteteteteteteteteteteteteten eneneneoeoeoepepeoeoepepeptXufuguhuitXujukukukulukumtXtXgMgMeoqUeqeqeqeqeqeqeogXeoepepepererjUsttfsQsQsQyWstsfsfsfRDsfsfsfyjsfRDyjeStHuquququruquqtHeSeSeSusswswswswtVswuuswttsFewewewkveSeSeSeSeSeSRFlFlFlFlFlFDTuwtFfveRfvfvpXpXfveReRfvfvfveReRewfvfvfveReReReRfvfvpXewuxeSggeweteteteteteteteteteteteteteteteteten -eneneneneoeoeoepeoeoepepeppsuyuyuyuyuzuAuAuBuCuDuEukuFtXgMgMeoeoeqeoeoeqeqeoeoeoeoepepepererjUststststtsststZjsfHwHxHxHxHxHxHxHxHzgguquMuNuOuPuQuRuqeSeSeSsFswuSuTuUuVtVswswuWsFeweweweweSeSeSeSeSeStFLMTStHlFWqtHTytFeReRfvpXpXpXfveReReReRfvrPeRewrRrRrRfvrReRrRfvrRpXpXpXfvtPeweteteteteteteteteteteteteteteteteten -eneneneneneneoeoeoeoepepeptXuYuyuyuZtXuAuAukvavbuEuktXtXgMgMeoeoeoepepepepepeoeoeoepepeoererjUsttByDsQsQsQsttUsfteIsIstctctctceIHNeSuquPuPuPuPuPuPWTyueSgpsAvesksksksjsFsFsFsFsjOrggeSeSeSeSeSeSeSeStFtFtFtFtFtFtFtFtFiOiOfvpXpXfvpWiOiOiOpWpWpWpWewpWpWpWpWpWpWpWpWpWpWeweweweweweweteteteteteteteteteteteteteteteten -eneneneneneneneoeoeoeoeoeotXtXtXtXtXtXtXtXukvfvgukvhtXeogMgMeoeoeogXepepepepeojaepepeoeoererjUstsQsQsQsQsQtIsfsfHNIsIssQIuIvtcIwHNeSuquPuPtHuquququqeSeSeSsAswswswucsFvlzjsFsFsFggeSeSeSeSeSeSeSeSeSeSeSeSiNeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSiNeSeSeweteteteteteteteteteteteteteteteten -eneneneneneneneoeomvvovpvotXvqvqvrvstXvtvtuAuAuAuAuApseogMgMeoepeoeoepepepeoeoeoepepgXeoererTCststtctctctcstsfsfHNIsHAsQsQsQtcIBHNgpuqvvvvtHvwvxvyuqeSeSeSsAvzswswswtDvlvnsFsFsFeSeSeweweSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeweteteteteteteteteteteteteteteteten -eneneneneoepepepepvAeoeoeotXvqvqvrvBvCukukukukukukujtXeogMgMepepeoeoepepepeoeoeoeoeoeoeoererjUsttctctctctTstZjsfHNIDIsIEsQIFtcsQHNeSuqvvvvvFvvvvvvureSeSeSsAvGtuswswsjsFsFsFsFsjeSeSewewewewewWpewewewewewewewewewewewewewewewWpeweweweweweweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten -eneneneoepeqeqeqeqmTeoeovHtXvqvqvIvJtXtXpstXvKtXpstXtXeogMgMepepeoeoeoeqeqeoeoeoeoeoeoeoererjUstuatctcsttcstsfsfHNIsIssQVOstyktqHNeSuqvvvvtHvOvOvOuqeSeSeSvPsAsAsAsAsAeRfvYxeReReSgpeweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten -eneneneoepeqeoeqeqmTeoeoeotXvQvQvRvRtXgMgMgMvSeoeovTeoeogMgMepeoeoeoeqeqsneoeoepepepepeoererjUstuntcuostubstsfsfHNIDIssQsQsttqtqHNeSuqvWvvuqvvvxvXuqeSeSeSkeggggOXggggeSeSeSeSeSeSeSpbeweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten -eneneoepeqeqeqeqeomTeoeoeotXvqvqvqvqtXgMvYgMeoeovZeoeoeogMgMepqUeoeoeqeoeoepepgXepepepeoererTCstuIuJuKstupstsfsfHNIsIssQsQsttqtqHNeSuqtHvvvvvvvvwbuqeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten -eneoeqeqeqeqeqeqeowceoeoeotXvqvqvqvqtXgMgMgMeowdweeoeoeogMgMepepeoeoeoepepepepepepepeqeoererjUstststststststsfsfJaHxHxHxHxHxHxHxJbeStHuquququququqtHeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten +eneneneneoeoeoepeoeoepepeppsuyuyuyuyuzuAuAuBuCuDuEukuFtXgMgMeoeoeqeoeoeqeqeoeoeoeoepepepererjUststststtsststZjsfHwHxHxHxHxHxHxHxHzgguquMuNuOuPuQuRuqeSeSeSsFswuSuTuUuVtVswswuWsFeweweweweSeSeSeSeSeStFLMTStHlFWqtHTytFOAeRfvpXpXpXfveReReReRfvrPeRewrRrRrRfvrReRrRfvrRpXpXpXfvtPeweteteteteteteteteteteteteteteteteten +eneneneneneneoeoeoeoepepeptXuYuyuyuZtXuAuAukvavbuEuktXtXgMgMeoeoeoepepepepepeoeoeoepepeoererjUsttByDsQsQsQsttUsfteIsIstctctctceIHNeSuquPuPuPuPuPuPWTyueSgpsAvesksksksjsFsFsFsFsjOrggeSeSeSeSeSeSeSeStFtFtFtFtFtFtFtFtFiOiOpWpXpXpWeTfTfTWCeweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten +eneneneneneneneoeoeoeoeoeotXtXtXtXtXtXtXtXukvfvgukvhtXeogMgMeoeoeogXepepepepeojaepepeoeoererjUstsQsQsQsQsQtIsfsfHNRSIssQIuIvtcIwHNeSuquPuPtHuquququqeSeSeSsAswswswucsFvlzjsFsFsFggeSeSeSeSeSeSeSeSeSeSeSeSiNeSeSeSeSeSeSeSeSeSeSeSeSsHerQQewewewewtHtHtHtHtHtHtHtHtHeweweweweweweweweteteteteteteteteteteteteteteteten +eneneneneneneneoeomvvovpvotXvqvqvrvstXvtvtuAuAuAuAuApseogMgMeoepeoeoepepepeoeoeoepepgXeoererTCststtctctctcstsfsfHNIsHAsQsQsQtcIBHNgpuqvvvvtHvwvxvyuqeSeSeSsAvzswswswtDvlvnsFsFsFeSeSeweweSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSsHerQQewewewewtHYqQtSiQGtHRCQktHeweweweweweweweweteteteteteteteteteteteteteteteten +eneneneneoepepepepvAeoeoeotXvqvqvrvBvCukukukukukukujtXeogMgMepepeoeoepepepeoeoeoeoeoeoeoererjUsttctctctctTstZjsfHNIDIsIEsQIFtcWhHNeSuqvvvvvFvvvvvvureSeSeSsAvGtuswswsjsFsFsFsFsjeSeSewewewewewWpewewewewewewewewewewewewewewewWpewRaVXVXTmewewewewtHOaOaSiSiXASiSitHeweweweweweweweweteteteteteteteteteteteteteteteten +eneneneoepeqeqeqeqmTeoeovHtXvqvqvIvJtXtXpstXvKtXpstXtXeogMgMepepeoeoeoeqeqeoeoeoeoeoeoeoererjUstuatctcsttcstsfsfHNIsIssQVOstyktqHNeSuqvvvvtHvOvOvOuqeSeSeSvPsAsAsAsAsAeRfvYxeReReSgpewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewtHSiSiSitHtHinQXtHeweweweweweweweweteteteteteteteteteteteteteteteten +eneneneoepeqeoeqeqmTeoeoeotXvQvQvRvRtXgMgMgMvSeoeovTeoeogMgMepeoeoeoeqeqsneoeoepepepepeoererjUstuntcuostubstsfsfHNIDIssQsQsttqtqHNeSuqvWvvuqvvvxvXuqeSeSeSkeggggOXggggeSeSeSeSeSeSeSpbewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewtHOvSiUQOPtHinUptHeweweweweweweweweteteteteteteteteteteteteteteteten +eneneoepeqeqeqeqeomTeoeoeotXvqvqvqvqtXgMvYgMeoeovZeoeoeogMgMepqUeoeoeqeoeoepepgXepepepeoererTCstuIuJuKstupstsfsfHNRSIssQsQsttqtqHNeSuqtHvvvvvvvvwbuqeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewtHtHtHtHtHtHintHtHeweweweweweweweweteteteteteteteteteteteteteteteten +eneoeqeqeqeqeqeqeowceoeoeotXvqvqvqvqtXgMgMgMeowdweeoeoeogMgMepepeoeoeoepepepepepepepeqeoererjUstststststststsfsfJaHxHxHxHxHxHxHxJbeStHuquququququqtHeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSeSewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewewtHtHtHtHtHtHtHeweweweweweweweweweteteteteteteteteteteteteteteteten eneoeqeqeqeoeoeoeomvmvwfmvtXtXtXtXtXtXgMgMwgeoeoeovZeogMgMgMeoepeoeoepepepepepepepeqeqeoererXuwhwhQYwhWiwhwhwhwhwhwhwhQYwhwhwhwhwhwhwhwhwhQYwhwhwhwhZLrTrTrTOcwhwhwhwhwhwhwhwhwhwhwhwheweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweweteteteteteteteteteteteteteteteten engMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMeoepeoeoeoeoepepepepeqeqeoeoererererererererwierererererererererererererererererererererLKeSeSeSyMerererererererererererererererererererererererererererererererererererererererererererererererererererererererererererenenenenenenenenenenenenenenenenen engMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMeoeoeoeogXeoeoeqeqeqeqeqeoeoererererererererwierererererererererererererererererererererLKeSeSeSyMerererererererererererererererererererererererererererererererererererererererererererererererererererererererererererenenenenenenenenenenenenenenenenen @@ -2488,8 +2584,8 @@ eneneneneneneneneneneneneneneneneneneneneneneneoeoeqeqeogMgMeojaeoeoenenenenenen eneneneneneneneneneneneneneneneneneneneneneneneoeoeoeoeogMgMeoqUeoeneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenepepeqeqepepgMgMephleqepepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen eneneneneneneneneneneneneneneneneneneneneneneneneneoeoeogMgMeoxueneneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenepepeqeqepepgMgMepeqeqepepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen eneneneneneneneneneneneneneneneneneneneneneneneneneneoeogMgMxueneneneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenepepepepepeogMgMepepeqepepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen -enenenenenenenenenenenenenenenenenenenenenenenenenenenxvxwxwxueneneneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenepgXeoepepeogMgMeoepeogXepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen -enenenenenenenenenenenenenenenenenenenenenenenenenenenenIdIdeneneneneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenenepeoeoeoeogMgMeoeoeoepepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen +eneneneneneneneneneneneneneneneneneneneneneneneneneneneogMgMxueneneneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenepgXeoepepeogMgMeoepeogXepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen +enenenenenenenenenenenenenenenenenenenenenenenenenenenengMgMeneneneneneneneneneneneneneogzgzeoenenenenenenenenenenenenenenenenenenenenenepeoeoeoeogMgMeoeoeoepepenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen xxeneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneneoeoeoeoSzSzeoeoeoenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenenen "} (1,1,3) = {" @@ -2541,9 +2637,9 @@ xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxA xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBAjxBAjxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBjNAkjXjXAljNkJAmkJkJAnkJjNxBxBxBxBxBzIzLzLQCQCzLzLfJzVApAqRBAqApzVzPzPzPzPzOApAsApzOApAtApzIxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBAuAuAuAuAuAuAuAuAuAuAujNAvjXjXAwjNAxlmkJAykJkJjNxBxBxBxBxBzIAzzPAAAAAAzPzOAqAqABACADAqAqzOAAAAAAAAzVAqzVzOzVAqzVzIxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBAuAEAFAGAuAEAFAGAuAuAujNAHjXjXAIjNAJlmAKjZAKALjNxBxBxBxBzEzIAAAAAMANAfAAzPAOAOAPAQARAOAOzPASAMATzPzVAqzVzPzVAqzVzFxzxzxzxzxzxz -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxBxBxBxBxBxBxBBeBfBfBfBgBfBfBfBfBfBfBgBfBfBfBfBexBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBlTkwkwAUkwlTAVAVjNjNAWjNjNjNjNjZAXAXAXjNAYjXjXlmjNAJAKAKAZAKBajNxBxBxBxBzEzIzVzVzVzVzVzVBbzVzVzVAqzVzVzVzVzVzVzVzVzVAqzVBczVAqBdzIxzxzxzxzxzxz +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxBxBxBxBxBxBxBBeBfBfBfBgBfBfBfBfBfBfBgBfBfBfBfBexBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBlTkwkwAUkwlTAVAVjNjNAWjNjNjNjNjZAXAXAXjNAYjXjXlmjNAJAKAKAZAKBajNxBxBxBxBzEzIzVzVzVzVzVzVBbzVzVzVAqzVzVzVzVzVzVzVzVzVAqzVBczVAqzVzIxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxBxBxBxBxBxBxBBfBtBuBvBwBxByBfBzBABBBBBfBCBDBfBfBfBgBfBexBxBxBxBxBxBxBxBxBxBxBxBxBkwkwlFBhBiBjkwAVAVjNlmlmlmBklmBljNAXAXAXjNkijXjXlmBmAKlmBnlmlmkLjNxBxBxBxBzEzIBoBpBpArBoBoBoBqBrBsAqBqBrBsBoBoBoBoBoBoAqBoBoBoAqBozIxzxzxzxzxzxz -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxBxBxBxBxBxBxBBfBPBQBPByBRByBSBBBBBBBBBTBTBUBfBVBWBXBYBfJqxBxBxBxBxBxBxBxBxBxBlTkwkwkwBEBFBGlFkwAVAVjNlmBHkLlmlmBHjNjNjNjNjNBIjXjXlmjNAKlmBJlmlmlmjNxBxBxBxBzEzHAqBpBpBKAqBLAqBMBNBOAqBMBNBOAqAqAqAqAqAqAqAqAqAqAqAqzHxzxzxzxzxzxz +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxBxBxBxBxBxBxBBfBPBQBPByBRByBSBBBBBBBBBTBTBUBfBVBWBXBYBfJqxBxBxBxBxBxBxBxBxBxBlTkwkwkwBEBFBGlFkwAVAVjNlmBHkLlmlmBHjNjNjNjNjNBIjXjXlmjNAKlmBJlmlmlmjNxBxBxBxBzEzHTGBpBpBKAqBLAqBMBNBOAqBMBNBOAqAqAqAqAqAqAqAqAqAqAqZizHxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxBxBxBxBxBxBxBCdBPBPCeCfCgChBSBBBBBBBBBfCiCjBfBVCkClBYCmBfxBxBxBxBxBxBxBxBxBxBkwBZBZkwlFlFlFlFkwAVCajNjNjNjNCbjNjNjNjNkLjNjNjNjNjNjNjNjNjNjNjNCcjNjNxBxBxBxBzEzIApBpBpArApApApBqBrBsAqBqBrBsApApApApApApApApApApApApzIxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxAxBxBxBxBxBxBxBBfBPBPCCCDByByBfBBBBCECFBfBfBfBfCGBBBBBBBBCHxBxBxBxBxBxBxBxBxBxBkwCnCnlTkwCoCokwkwAVCaCpCqjNlmCrCsCtCulmlmjNjNCvCwCwCxjNkJCykJkJkJkJjNxBxBxBxBzEzIzVzVzVzVzVzVzVzVzVzVAqzVzVzVzVzVCzzGCAzGzGzGCBzGzGzGCzxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxyxyxyxyxyxyxyxyxyxyxyxyxyxyxAxAxAxAxAxBxBxBxBxBxBxBBfCYByByByByCZBfBfDaBfBfBeDbDbBfDcBBBBBVBWBfxBxBxBxBxBxBxBxBxBxBkwlFlFCIlFlFlFlFkwAVCalmlmCJlmCKCLCMCulmlmjNjNCvmpnwCNjNCOCOCOCOCOCPjNxBxBxBxBzEzICQCQCQzPAfAfAfzPCRzVAqzVCRzPzVzVzICSlLlLCTCUCVCWCTCXzIxzxzxzxzxzxz @@ -2558,7 +2654,7 @@ xyxAxAxAxAEMFhFhFhGeFlFkFlFjFlFlFlFlGfEMxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxA xyxAxAxAxAELEMEMGnEMEMEMEMGoEMEMEMGoEMELxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBBfBSGxGyBfBfBfBfBfBfGzBfBfBfBfBfBSBSBSBfGABfBfBfBexBDSxBxBxBxBxBHlxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBGsGtGtGtGtGuGtGvGtGtGwGwxDxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBBfBSGxGyBfGDGDBfGEBBBSBSGDBfBSBSBSBSBSBSBSBSBSGFBfDXGBxBxBxBxBxBHlxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBGsGtGtGtGtGtGtGtGtGtGwGCxDxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBBfBfBfBfBfBSBSBfCGBBGJBSBSBfBSGKBSfMBSBSGKBSBSBSBfxBxBxBpSpTGGpTpTpTpTpTGGpTpTpSxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDGHGHGHxDGtGtGtxDGIGHGIxDxzxzxzxzxz -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBCdGOGPGQGRBSBSMpBSBSBSBSBSGzBSGTGUGVGVGWGVFpGXBSCHxBxBxBpTGMGNGNGNGNGNGNGNGNGNpSpSxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDGtGwGwGtGtGtGtGwGwGwGtxDxzxzxzxzxz +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBCdGOGPGQGRBSBSTwBSBSBSBSBSGzBSGTGUGVGVGWGVFpGXBSCHxBxBxBpTGMGNXnGNGNGNGNGNGNXnpSpSxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDGtGwGwGtGtGtGtGwGwGwGtxDxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBBfGRHbHbGRBSBSBfBXBBBBHcDbBfBSCkHdHdHdHdHdClBBBSBfxBxBxBGGGYGZGZGZGZGYGZGZGZGZGYpTxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzExDxDxDGwGtGtGtGtGwHaxDxDxDxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBBfGRHeHeGRBSBSBfClBYBBHcGyBfBSBBGrBBHfBBBBGrBBBSBfxBxBxBpSGYGZGZGZGZGYGZGZGZGZGYpTxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzExDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBxBxBBeBfHjBfBfHjBfBeBfBfHjBfBfBfBfBfHjBfBfBfBfBfHjBfBexBxBxBpSGYGNGNGNGNHgHhGNGNGNGYGGxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzEzEzEzEzExDxzxzxzxzxzxzxzxzxz @@ -2569,19 +2665,19 @@ xyxAxAxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxA xyxyxAxyxyxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBHkHkxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBHlxBxBxBxBxBxBxBxBxBxBxBxBxBxBZQxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzEzEzEzEzExDxzxzxzxzxzxzxzxzxz xyxAxAxyxyxyxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBtqHmHntqHmtqtqxBxBxBtqHnHnHnHnHnHntqHququqHruquqHsuquqxBxBxBsjUgsjsksjsksksksksksjzEzEzExBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxzxzxz xyxAxyxyxyxyxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBxBHtsrHutqsrHvHnxBxBxBHnJrsrsqsqsqvEHtxBuquqYEuqHBHCHDuqxBxBxBsFvlsFHEsFHFHGHGHHHIsFzEzEzExBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxAxAxyxyxyxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtHJHKHLsrHMHnxBxBxBHnsrsrsqsqJtIkHtxBuqHRbOHCHCHCHCHSxBxBxBsFvlvlHTsFHUHUHUHUHUHVzEzEzExBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxAxAxyxyxyxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtHJHKHLsrHMHnxBxBxBHnsrsrsqsqJtIkHtxBuqHRbOHCHCHCHCHSxBxBxBsFvlOgHTsFHUHUHUHUHUHVzEzEzExBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxAxAxAxyxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtHJHWtqHXsqHmxBxBxBHnJuJvtqIqJwJxtqHYuqHCHCHCHCHCHCuqxBxBxBsjvlvlvlussVsVsVsVHZsjzEzExBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxAxAxAxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtHJIaIbIcsqHnxBxBxBHnsrsrtqJAJBIiHtxBuqHCHCHCHCHCHCuqxBxBxBsFvlsFsFsjsVsVsVsVIfsAzEzExBxBxBxBxBxBxBxBxBxBxBIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxAxAxAxAxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtIhIiIjIktAHnxBxBxBHnJEsrJFHKHJJGHtxBuqHCHCImHCHCHCHSxBxBxBsFvlsjInygHUHUIoHUIpsAzEzExBxBxBxBxBxBxBxBxBxBxBIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxAxAxAxyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtHJIaIbIcsqHnxBxBxBHnsrsrtqJAJBIiHtxBuqHCHCHCHCHCQOuqxBxBxBsFvlsFsFsjsVsVsVsVIfsAzEzExBxBxBxBxBxBxBxBxBxBxBIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxAxAxAxAxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBHtIhIiIjIktAHnxBxBxBHnJEsrJFHKHJJGHtxBuqHCHCImHCHCHCHSxBxBxBsFvlsjXKygHUHUIoHUIpsAzEzExBxBxBxBxBxBxBxBxBxBxBIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBtqIqIqtqIqIqtqxBxBxBtqtqtYtqHnJIHntqxBuqHCIxIyHCHCIzuqxBxBxBsFvlIAInsFHUHUHUHUHUsAzEzExBxBxBxBxBxBxBxBxBxBxBIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBxBIkIkIkIkIkIkIkIkxBuquququququququqxBxBxBsFsFsFInsjsFsFsFsFsFsAzEzExBxBxBxBxBxBxBxBIgIgIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxyxyxAxAxAxAxAxAxAxAxAxAICICICICICICICICICICICICICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBDSxBxBxBxBxBxBxBxBxBxBxBxBsFsFsjInInInInInInInsAzEzExBxBxBxBxBxBxBxBIgIgIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxyxyxAxAxAxAxAxAxAxAxAxAICICICICICICICICICICICICICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBDSxBxBxBxBxBxBxBxBxBxBxBxBsFsFsjInInInXKInInInsAzEzExBxBxBxBxBxBxBxBIgIgIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxyxAxAxAxAxAxAxAxAxAxAIGIHIHIHIHIHIHIHIHIHIHIGIIIIIIxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBDSxBtHuquququququqtHxBxBxBsFsFsFIKILInInInInInsAzEzEzExBxBxBxBxBxBxBIgIgIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxyxyxAxAxAxAxAxAxAxAxAIHIMINIOIPIGIQIRIGISITIHIIxAIIxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBIgIgIgIgIgIgIgIgIgxBuqIWuQuPuqvxuRuqxBxBxBsjsFsjsksksjsksjsjIAsjzEzEzExBxBxBxBxBxBxBIgIgIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBzEzEzEzEzExDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxyxyxyxyxAxAxAxAxAxAxAIXISISISISIYISISIYISIZIHIIIIIIxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBIgIgIgIgIgIgIgIgIgxBuquPuPuPPovvJcurxBxBxBJdJdJdJdJeskvlvmvlvlskxBxBxBxBxBxBxBxBxBxBIgIgIgIgIgIgIgIgIgxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxyxyxyxyxyxyxAxAxAxAxAxAIHISISISISJfJgJgJfISJhIHICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBIgIgIgIgIgIgIgIgIgxBuquPuPvvuqvvvvuqxBxBxBJdJdJdJdJdJivlGZJjvlskxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxyxyxyxyxyxyxAxAxAxAxAxAIHJkJlJmJnJoxAxAJoJpISIHICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBIgIgIgIgIgIgIgIgIgxBuquqPItHtHtHtHuqxBxBxBJdJdJdJdJdskvlGZJjvlskxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz -xyxyxyxyxAxAxAxAxAxAxAxAxAIGIHIHIHIHIHIHIHIHIHJsIGICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBtqHntqHnHnHnHnHntqxBuqvvvvvvvvvvvvuqxBxBxBJdJdJdJdJdsjsksksksksjxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxyxyxyxyxyxyxAxAxAxAxAxAIHISISISISJfJgJgJfISJhIHICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBIgIgIgIgIgIgIgIgIgxBuquPuPvvuqvvvvuqxBxBxBJdJdJdJdJdJivlGZJjvlskxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxBxBxBxBxBxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxyxyxyxyxyxyxAxAxAxAxAxAIHJkJlJmJnJoxAxAJoJpISIHICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBIgIgIgIgIgIgIgIgIgxBuquqPItHtHtHtHuqxBxBxBJdJdJdJdJdskvlGZJjvlskxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxBxBxBxBxBxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz +xyxyxyxyxAxAxAxAxAxAxAxAxAIGIHIHIHIHIHIHIHIHIHJsIGICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBtqHntqHnHnHnHnHntqxBuqvvvvvvvvvvvvuqxBxBxBJdJdJdJdJdsjsksksksksjxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxyxAxAxAxAxAxAxAxAxAxAICICICICICICICICICICICICICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBHnhSpPUhtqsqIkVPIqxBuqJyvvvvtHvvJzuqxBxBxBJdJdJdJdJdJdxBxBxBxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxyxAxAxAxAxAxAxAxAxAxAICICICICICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBHnwtsqsqpEsqzDMsIqxBuqshvvvvvxvvJCurxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz xyxyxAxAxAxAxAxAxAxAxAxAxAJDICICICICICxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxBxBxBxBIgIgIgIgIgIgIgxBxBHnhSsqMotqsqsqsqIqxBuqvWvvvvvvvvJHuqxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxBxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxDxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxzxz @@ -2700,15 +2796,15 @@ xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvKvxAxyxyxyxyxyxyxyxyxyxyxyxyxyKvKvKvxAxA xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvKvxAxAxAxAxAxAxAerererererererererererererererererererererererererererererererererererererererererererererererererererererererererewggeSeSeSeSeSeSeSeSeSeSeSerererererKOIrLjLmLmLmLmLmLmLmLmLmLmLmCzzGzGzGzGzGzGCzJZJZJZJZJTKOetetetetetet xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvKvxAxAxAxAxAxAxAerererBeBfBfBfBeBfBfBfBfBfBfBfBfBgBfBfBeererererererererererererererererererKOKOKOKOKOKOerLnLoLoLoLpLpLpLpLnewewewewggggggggggggggggggggggmYerererererKOIrLjkSkSkSkSkSkSkSkSkSkSkSkSLqLjLjLjJZJZJZJZJZJZJZJTKOetetetetetet xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxAerererBfLtLuBBLvLwLxLyLzBfBSLABSLBLCGDBfBfBfBfBeerererererererererererererKOKOLrKRKRKXKOerLoLoLoLoLpLpLpLpLpeweweweweSeSeSeSeSeSeSeSeSeSggeSerererererKOIrLjkSzLkSkSkSzLkSkSkSzLkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxAerererBfBBLHLHLHLHLHLHBBUHBSBSBSBSBSBSBSLJBfBfBfBeererererererererererKOKOKOLrJZLDLDJTKOerLoLoLoLoLpLpLpLpLpKOKOKOewggggggggggggggggggggggmYerererererKOIrLjkSLEkSkSkSLEkSkSkSLEkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxALFLGLGMpBBLHLHLLLHLHLHBBBfBSBSBSBSBSBSBSBSBfBfBfBfererererererererererKOLrKRJZLDlFlFmEKOerLoLrKRKRKRKRKXLpLpKOKOKOewggeSeSeSeSeSeSeSeSrororoerererererKOIrLjkSkSkSkSkSkSkSkSkSkSkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxAxALKlRlRBfBBBBBBLOLPBBBBBBBfBBBBBBLQLQBBBBBBBfMYLSBfererererererererererKOJYLDLMlFlFlFJTKOerLoJYJZJZJZJZJTLpLpKOLNKOewggggggggggggggggggrororoerererererKOIrLjkSkSkSkSkSkSkSkSkSkSkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyxyxyxyxyKvKvxAxAxAxAxAxAxAxAxALKlRlRBfBfBfBfBeBfBfBfBfBeLXLXLXGyGyLXBBBBOYBSBSCHererererererererererKOJYLDlFlFlFLTJTKOerLoJYJZJZJZJZJTLpLpKOKOKOeweSeSeSeSeSeSeSeSeSroLUroerererererKOIrLjLVLVLVLVLVLVLVLVLVLVLVLVLVLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet -xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyKvKvxAxAxAxAxAxAxAxAxALKlRLWBeMcBeMcMcBeMcBeGyGyGyGyGyGyGyGyMdBBBfGLMeBfererererererererererKOJYewewewKdJVKaKOerLZJYJZJZJZJZJTLpLpLNKOKOewggggggggggggggggggggggeSerererererKOIrLjLsLsLsLsLsLsLsLsLsLsLsLsLsLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxAerererQaBBLHLHLHLHLHLHBBUHBSBSBSBSBSBSBSLJBfBfBfBeererererererererererKOKOKOLrJZLDLDJTKOerLoLoLoLoLpLpLpLpLpKOKOKOewggggggggggggggggggggggmYerererererKOIrLjkSLEkSkSkSLEkSkSkSLEkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxALFLGLGBfBBLHLHLLLLLHLHBBBfBSBSBSBSBSBSBSBSBfBfBfBfererererererererererKOLrKRJZLDlFlFmEKOerLoLrKRKRKRKRKXLpLpKOKOKOewggeSeSeSeSeSeSeSeSrororoerererererKOIrLjkSkSkSkSkSkSkSkSkSkSkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyxyxyxyKvxAxAxAxAxAxAxAxAxALKlRlRUHBBBBUVLOLPNQBBBBBfBBBBBBLQLQBBBBBBBfMYLSBfererererererererererKOJYLDLMlFlFlFJTKOerLoJYJZJZJZJZJTLpLpKOLNKOewggggggggggggggggggrororoerererererKOIrLjkSkSkSkSkSkSkSkSkSkSkSkSLqLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyxyxyxyxyKvKvxAxAxAxAxAxAxAxAxALKMOlRBfBfBfBfBeBfBfBfBfBeLXLXLXGyGyLXBBBBOYBSBSCHererererererererererKOJYLDlFlFlFLTJTKOerLoJYJZJZJZJZJTLpLpKOKOKOeweSeSeSeSeSeSeSeSeSroLUroerererererKOIrLjLVLVLVLVLVLVLVLVLVLVLVLVLVLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet +xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvxyxyxyxyxyxyxyxyxyxyKvKvxAxAxAxAxAxAxAxAxALKlRvuBeMcBeMcMcBeMcBeGyGyGyGyGyGyGyGyMdBBBfGLMeBfererererererererererKOJYewewewKdJVKaKOerLZJYJZJZJZJZJTLpLpLNKOKOewggggggggggggggggggggggeSerererererKOIrLjLsLsLsLsLsLsLsLsLsLsLsLsLsLsLsLjJZJZJZJZJZJZJZJTKOetetetetetet xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyxyxyxyxyxyxyKvKvKvxAxAxAxAxAxAxAxAxAxAMaMbMbBfMeMYBeBeLRKpMcGyGyGyGyGyMkGyGyMdMlBfBfBfBferererererererererKOKOJYllMfllmEKOKOKOerLoJYJZJZJZJZJTLpLpKOKOKOewggeSeSeSeSeSeSeSeSeSeSeSerererererKOIrLjLsLjLjLjMgLjLjLjLjLjLjLjLjLjLjLjJZJZJZJZJZJZJZJTKOetetetetetet xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvxyxyKvKvKvxAxAxAxAxAxAxAxAxAxAxAerererMnBSXaMcMcMtBSCHGyMkGyBfGyGyBfGyMdBBBfLRLSBfererererererKOKOKOKOKOJYDUshewKXKOKOKOerLoKcJVJVJVJVKaLpLpggggLnewggggggggggggggggggggggpperererererKOIrLjLsLjMmMmkUMmMmJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJTKOetetetetetet xyxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAKvKvKvKvKvKvxAxAxAxAxAxAxAxAxAxAxAerererBfKpBSBeBeBSMeBfGyGyGyGyGyGyGyGyMdBBZCBSBSCHererererererKOLrKRKXKOJYewKdJVKaKOKOKOerLoLoLoLoMqLpLpLpLpLoLoLoeweSeSeSeSeSeSeSeSeSeSggeSerererererKOIrLjLsLjMmMrkUkUMmJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJTKOetetetetetet -xyxAxAxAxAJMJMJMJMJMJMJMJMJMJMJMJMJMJMJMxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAerererBeBfMpMcMcNiBfBeMDBfMEMEMEMEMEMEMdBBBfGLMeBfererererererKOJYKPKOKOKcJVKaKOKOKOKOKOerLoLoLoLoLpLpMvLpLpLoLoLoewggggggggggggggggggggggMwerererererKOuGLsLsLjMmkUkUMyMmJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJTKOetetetetetet +xyxAxAxAxAJMJMJMJMJMJMJMJMJMJMJMJMJMJMJMxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAerererBeBfYMMcMcNiBfBeMDBfMEMEMEMEMEMEMdBBBfGLMeBfererererererKOJYKPKOKOKcJVKaKOKOKOKOKOerLoLoLoLoLpLpMvLpLpLoLoLoewggggggggggggggggggggggMwerererererKOuGLsLsLjMmkUkUMyMmJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJTKOetetetetetet xyxAxAxAxAJMMzMAMAMAMAMAMAMAMAMAMAMAMAJMxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxALFLGLGBfBSBSBSBSBSGDGDBSBSBSBSBSBSBSBSBSBSBfBfBfBfererererererKOKcJVKaKOKOKOKOKOKOKOKOKOerLnLoLoLoLpLpLpLpLpggggLneweSeSeSeSeSeSeSeSeSeSeSeSerererererKOIrMFLjLjMmMGkUMHMmJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJTKOetetetetetet xyxAxAxAxAJMMIMJMJMJMJMJMJMJMJMJMJMJJLJMxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxALKlRLWMpBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBfererererererKOKOKOKOMKerererererererererererererererererererererewggggggggggggggggggggggewerererererKOxXMLMLMLMmMmMMMmMmJVJVJVJVJVJVJVJVJVJVJVJVJVJVJVJVKaKOetetetetetet xyxAxAxAxAJMMNJOJOJOJOJOJOJOJOJOJOJOJPJMxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxALKMOlRBfBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBfererererererererererMKerererererererererererererererererererererewewewewewewewewewewewewewerererererKOKOKOKOKOKOMQKOMQKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOeretetetetet diff --git a/code/__DEFINES/callbacks.dm b/code/__DEFINES/callbacks.dm index f25dfdf150..f66fd0775f 100644 --- a/code/__DEFINES/callbacks.dm +++ b/code/__DEFINES/callbacks.dm @@ -2,4 +2,4 @@ /// A shorthand for the callback datum, [documented here](datum/callback.html) #define CALLBACK new /datum/callback #define INVOKE_ASYNC world.ImmediateInvokeAsync -#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, /proc/___callbacknew, typepath, args) +#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbacknew), typepath, args) diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index a65d86efa5..20a11995b7 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -127,5 +127,3 @@ GLOBAL_LIST_INIT(em_mask_matrix, EM_MASK_MATRIX) /// Returns the blue part of a #RRGGBB hex sequence as number #define GETBLUEPART(hexa) hex2num(copytext(hexa, 6, 8)) - -#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X) //BYOND version compatability nonsence that probably dosent work. diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index e423b96e26..de066446e6 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -204,6 +204,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_XENO_IMMUNE "xeno_immune"//prevents xeno huggies implanting skeletons #define TRAIT_NOPAIN "no_pain" #define TRAIT_DRUQK "druqk" +#define TRAIT_BURIED_COIN_GIVEN "buried_coin_given" // prevents a human corpse from being used for a corpse multiple times //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm index 766ea9e5c2..068303ecda 100644 --- a/code/__HELPERS/_string_lists.dm +++ b/code/__HELPERS/_string_lists.dm @@ -12,7 +12,7 @@ GLOBAL_VAR(string_filename_current_key) if((filename in GLOB.string_cache) && (key in GLOB.string_cache[filename])) var/response = pick(GLOB.string_cache[filename][key]) var/regex/r = regex("@pick\\((\\D+?)\\)", "g") - response = r.Replace(response, /proc/strings_subkey_lookup) + response = r.Replace(response, GLOBAL_PROC_REF(strings_subkey_lookup)) return response else CRASH("strings list not found: [directory]/[filename], index=[key]") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index b2ded95886..1717e5c9bf 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -378,7 +378,7 @@ /proc/flick_overlay(image/I, list/show_to, duration) for(var/client/C in show_to) C.images += I - addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_images_from_clients, I, show_to), duration, TIMER_CLIENT_TIME) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(remove_images_from_clients), I, show_to), duration, TIMER_CLIENT_TIME) /proc/flick_overlay_view(image/I, atom/target, duration) //wrapper for the above, flicks to everyone who can see the target atom var/list/viewing = list() diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 244e61f7d0..654da31233 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -43,18 +43,18 @@ for(var/spath in subtypesof(/datum/species)) var/datum/species/S = new spath() GLOB.species_list[S.name] = spath - sortList(GLOB.species_list, /proc/cmp_typepaths_asc) + sortList(GLOB.species_list, GLOBAL_PROC_REF(cmp_typepaths_asc)) //Surgeries for(var/path in subtypesof(/datum/surgery)) GLOB.surgeries_list += new path() - sortList(GLOB.surgeries_list, /proc/cmp_typepaths_asc) + sortList(GLOB.surgeries_list, GLOBAL_PROC_REF(cmp_typepaths_asc)) //Materials for(var/path in subtypesof(/datum/material)) var/datum/material/D = new path() GLOB.materials_list[D.id] = D - sortList(GLOB.materials_list, /proc/cmp_typepaths_asc) + sortList(GLOB.materials_list, GLOBAL_PROC_REF(cmp_typepaths_asc)) // Keybindings init_keybindings() diff --git a/code/__HELPERS/lordcolor.dm b/code/__HELPERS/lordcolor.dm index eadb63163a..33c5853d39 100644 --- a/code/__HELPERS/lordcolor.dm +++ b/code/__HELPERS/lordcolor.dm @@ -18,7 +18,7 @@ GLOBAL_VAR(lordsecondary) /mob/proc/lord_color_choice() if(!client) - addtimer(CALLBACK(src, .proc/lord_color_choice), 50) + addtimer(CALLBACK(src, PROC_REF(lord_color_choice)), 50) return var/list/lordcolors = list( "PURPLE"="#865c9c", diff --git a/code/__HELPERS/qdel.dm b/code/__HELPERS/qdel.dm index 0d2bf89152..ba31b067c4 100644 --- a/code/__HELPERS/qdel.dm +++ b/code/__HELPERS/qdel.dm @@ -1,8 +1,8 @@ -#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) -#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) +#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE) +#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) #define QDEL_NULL(item) qdel(item); item = null #define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } -#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) +#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE) #define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } #define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index e34a17bb9b..def4006fe0 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -357,7 +357,7 @@ var/currrent_category var/datum/antagonist/previous_category - sortTim(all_antagonists, /proc/cmp_antag_category) + sortTim(all_antagonists, GLOBAL_PROC_REF(cmp_antag_category)) for(var/datum/antagonist/A in all_antagonists) if(!A.show_in_roundend) @@ -611,7 +611,7 @@ var/currrent_category var/datum/antagonist/previous_category - sortTim(all_antagonists, /proc/cmp_antag_category) + sortTim(all_antagonists, GLOBAL_PROC_REF(cmp_antag_category)) for(var/datum/antagonist/A in all_antagonists) if(!A.show_in_roundend) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index fef3dfad55..19ce1db79f 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -134,12 +134,12 @@ GLOBAL_VAR_INIT(dayspassed, FALSE) T.maptext_y = -120 playsound_local(src, 'sound/misc/newday.ogg', 100, FALSE) animate(T, alpha = 255, time = 10, easing = EASE_IN) - addtimer(CALLBACK(src, .proc/clear_area_text, T), 35) + addtimer(CALLBACK(src, PROC_REF(clear_area_text), T), 35) var/obj/screen/daynight/D = new() D.alpha = 0 client.screen += D animate(D, alpha = 255, time = 20, easing = EASE_IN) - addtimer(CALLBACK(src, .proc/clear_time_icon, D), 30) + addtimer(CALLBACK(src, PROC_REF(clear_time_icon), D), 30) /proc/station_time_debug(force_set) if(isnum(force_set)) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 8c020104e6..b62e2951d9 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -582,11 +582,11 @@ Turf and target are separate in case you want to teleport some distance from a t for(var/area/A in world) GLOB.sortedAreas.Add(A) - sortTim(GLOB.sortedAreas, /proc/cmp_name_asc) + sortTim(GLOB.sortedAreas, GLOBAL_PROC_REF(cmp_name_asc)) /area/proc/addSorted() GLOB.sortedAreas.Add(src) - sortTim(GLOB.sortedAreas, /proc/cmp_name_asc) + sortTim(GLOB.sortedAreas, GLOBAL_PROC_REF(cmp_name_asc)) //Takes: Area type as a text string from a variable. //Returns: Instance for the area in the world. @@ -1505,9 +1505,9 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) */ #define NAMEOF_STATIC(datum, X) (nameof(type::##X)) -#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##target, ##var_name, ##var_value) +#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value) //dupe code because dm can't handle 3 level deep macros -#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##datum, NAMEOF(##datum, ##var), ##var_value) +#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value) /proc/___callbackvarset(list_or_datum, var_name, var_value) if(length(list_or_datum)) @@ -1519,8 +1519,8 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) else D.vars[var_name] = var_value -#define TRAIT_CALLBACK_ADD(target, trait, source) CALLBACK(GLOBAL_PROC, /proc/___TraitAdd, ##target, ##trait, ##source) -#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, /proc/___TraitRemove, ##target, ##trait, ##source) +#define TRAIT_CALLBACK_ADD(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitAdd), ##target, ##trait, ##source) +#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitRemove), ##target, ##trait, ##source) ///DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback. /proc/___TraitAdd(target,trait,source) diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm new file mode 100644 index 0000000000..80bd71c856 --- /dev/null +++ b/code/__byond_version_compat.dm @@ -0,0 +1,17 @@ +// This file contains defines allowing targeting byond versions newer than the supported +// TODO: Remove the 514 versions once we move completely over to 515 +#if DM_VERSION < 515 +// 514 version +#define PROC_REF(X) (.proc/##X) +#define VERB_REF(X) (.verb/##X) +#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X) +#define TYPE_VERB_REF(TYPE, X) (##TYPE.verb/##X) +#define GLOBAL_PROC_REF(X) (.proc/##X) +#else +// 515 versions +#define PROC_REF(X) (nameof(.proc/##X)) +#define VERB_REF(X) (nameof(.verb/##X)) +#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X)) +#define TYPE_VERB_REF(TYPE, X) (nameof(##TYPE.verb/##X)) +#define GLOBAL_PROC_REF(X) (/proc/##X) +#endif diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index f109640426..ad49a19203 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -38,7 +38,6 @@ GLOBAL_LIST_EMPTY(tdomeadmin) GLOBAL_LIST_EMPTY(prisonwarped) //list of players already warped GLOBAL_LIST_EMPTY(blobstart) //stationloving objects, blobs, santa, respawning devils GLOBAL_LIST_EMPTY(underworldspawn) -GLOBAL_LIST_EMPTY(underworldcoin) GLOBAL_LIST_EMPTY(hauntstart) GLOBAL_LIST_EMPTY(testportals) GLOBAL_LIST_EMPTY(traveltiles) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index b485a28a2e..bcd3d760be 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -64,7 +64,7 @@ thealert.transform = matrix(32, 6, MATRIX_TRANSLATE) animate(thealert, transform = matrix(), time = 2.5, easing = CUBIC_EASING) if(thealert.timeout) - addtimer(CALLBACK(src, .proc/alert_timeout, thealert, category), thealert.timeout) + addtimer(CALLBACK(src, PROC_REF(alert_timeout), thealert, category), thealert.timeout) thealert.timeout = world.time + thealert.timeout - world.tick_lag return thealert diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm index 5750b2d544..f81195fd0a 100644 --- a/code/_onclick/hud/credits.dm +++ b/code/_onclick/hud/credits.dm @@ -80,7 +80,7 @@ M.Translate(-288, 0) animate(src, transform = M, time = 90) animate(src, alpha = 255, time = 10, flags = ANIMATION_PARALLEL) - addtimer(CALLBACK(src, .proc/FadeOut), 80) + addtimer(CALLBACK(src, PROC_REF(FadeOut)), 80) QDEL_IN(src, 90) P.screen += src diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 3a8f0995f4..0b932e4f1d 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -42,7 +42,7 @@ if(animated) animate(screen, alpha = 0, time = animated) - addtimer(CALLBACK(src, .proc/clear_fullscreen_after_animate, screen), animated, TIMER_CLIENT_TIME, flags = ANIMATION_PARALLEL) + addtimer(CALLBACK(src, PROC_REF(clear_fullscreen_after_animate), screen), animated, TIMER_CLIENT_TIME, flags = ANIMATION_PARALLEL) else if(client) client.screen -= screen diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index f87532a1df..cd131ff18f 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -42,7 +42,7 @@ if(istype(G, /mob/dead/observer/rogue/arcaneeye)) return if(alert("Travel with the boatman?", "", "Yes", "No") == "Yes") - for(var/obj/effect/landmark/underworld/A in world) + for(var/obj/effect/landmark/underworld/A in GLOB.landmarks_list) var/mob/living/carbon/spirit/O = new /mob/living/carbon/spirit(A.loc) O.livingname = G.name O.ckey = G.ckey @@ -56,7 +56,7 @@ if(C.skeletons) G.returntolobby() if(alert("Travel with the boatman?", "", "Yes", "No") == "Yes") - for(var/obj/effect/landmark/underworld/A in world) + for(var/obj/effect/landmark/underworld/A in GLOB.landmarks_list) var/mob/living/carbon/spirit/O = new /mob/living/carbon/spirit(A.loc) O.livingname = G.name O.ckey = G.ckey diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 798209a29e..62622d42af 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -147,7 +147,7 @@ C.parallax_movedir = new_parallax_movedir if (C.parallax_animate_timer) deltimer(C.parallax_animate_timer) - var/datum/callback/CB = CALLBACK(src, .proc/update_parallax_motionblur, C, animatedir, new_parallax_movedir, newtransform) + var/datum/callback/CB = CALLBACK(src, PROC_REF(update_parallax_motionblur), C, animatedir, new_parallax_movedir, newtransform) if(skip_windups) CB.Invoke() else diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 67de24e52d..73f5fd2be5 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -770,7 +770,7 @@ /obj/screen/advsetup/New(client/C) //TODO: Make this use INITIALIZE_IMMEDIATE, except its not easy . = ..() - addtimer(CALLBACK(src, .proc/check_mob), 30) + addtimer(CALLBACK(src, PROC_REF(check_mob)), 30) /obj/screen/advsetup/Destroy() hud.static_inventory -= src diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 794042ecdf..b8dd2d3055 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -206,12 +206,11 @@ if(!src.mind.has_antag_datum(/datum/antagonist/werewolf)) if(prob(10)) H.werewolf_infect() - //addtimer(CALLBACK(src, .mob/living/carbon/human/proc/werewolf_infect), 3 MINUTES) + //addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/carbon/human, werewolf_infect)), 3 MINUTES) if(user.mind.has_antag_datum(/datum/antagonist/zombie)) if(!src.mind.has_antag_datum(/datum/antagonist/zombie)) - if(prob(25)) // Delay is handled in zombie_infect anyways - H.zombie_infect() - //addtimer(CALLBACK(src, .mob/living/carbon/human/proc/zombie_infect), 3 MINUTES) + H.zombie_infect_attempt() + //addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/carbon/human, zombie_infect)), 3 MINUTES) var/obj/item/grabbing/bite/B = new() user.equip_to_slot_or_del(B, SLOT_MOUTH) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 67106519d0..3ee4649908 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -421,4 +421,4 @@ Example config: //Message admins when you can. /datum/controller/configuration/proc/DelayedMessageAdmins(text) - addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(message_admins), text), 0) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index b24badfad8..1cc96ce7cb 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -79,7 +79,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new qdel(Master) else var/list/subsytem_types = subtypesof(/datum/controller/subsystem) - sortTim(subsytem_types, /proc/cmp_subsystem_init) + sortTim(subsytem_types, GLOBAL_PROC_REF(cmp_subsystem_init)) for(var/I in subsytem_types) _subsystems += new I Master = src @@ -94,7 +94,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new /datum/controller/master/Shutdown() processing = FALSE - sortTim(subsystems, /proc/cmp_subsystem_init) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) reverseRange(subsystems) for(var/datum/controller/subsystem/ss in subsystems) log_world("Shutting down [ss.name] subsystem...") @@ -225,7 +225,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new to_chat(world, "Initializing subsystems...") #endif // Sort subsystems by init_order, so they initialize in the correct order. - sortTim(subsystems, /proc/cmp_subsystem_init) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) var/start_timeofday = REALTIMEOFDAY // Initialize subsystems. @@ -255,7 +255,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new SetRunLevel(1) // Sort subsystems by display setting for easy access. - sortTim(subsystems, /proc/cmp_subsystem_display) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display)) // Set world options. world.change_fps(CONFIG_GET(number/fps)) var/initialized_tod = REALTIMEOFDAY @@ -337,9 +337,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_tail = null //these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue //(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add) - sortTim(tickersubsystems, /proc/cmp_subsystem_priority) + sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) for(var/I in runlevel_sorted_subsystems) - sortTim(I, /proc/cmp_subsystem_priority) //I is a list, sort it bro + sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority)) //I is a list, sort it bro I += tickersubsystems var/cached_runlevel = current_runlevel diff --git a/code/controllers/subsystem/assets.dm b/code/controllers/subsystem/assets.dm index 7285298283..dfe6438d79 100644 --- a/code/controllers/subsystem/assets.dm +++ b/code/controllers/subsystem/assets.dm @@ -14,5 +14,5 @@ SUBSYSTEM_DEF(assets) preload = cache.Copy() //don't preload assets generated during the round for(var/client/C in GLOB.clients) - addtimer(CALLBACK(GLOBAL_PROC, .proc/getFilesSlow, C, preload, FALSE), 10) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(getFilesSlow), C, preload, FALSE), 10) ..() diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index cf54f21be0..f4fa0a8d63 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -191,9 +191,9 @@ SUBSYSTEM_DEF(dbcore) for (var/thing in querys) var/datum/DBQuery/query = thing if (warn) - INVOKE_ASYNC(query, /datum/DBQuery.proc/warn_execute) + INVOKE_ASYNC(query, TYPE_PROC_REF(/datum/DBQuery, warn_execute)) else - INVOKE_ASYNC(query, /datum/DBQuery.proc/Execute) + INVOKE_ASYNC(query, TYPE_PROC_REF(/datum/DBQuery, Execute)) for (var/thing in querys) var/datum/DBQuery/query = thing diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 5c20859951..4f4b93a6cf 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -815,7 +815,7 @@ SUBSYSTEM_DEF(job) var/oldjobs = SSjob.occupations sleep(20) for (var/datum/job/J in oldjobs) - INVOKE_ASYNC(src, .proc/RecoverJob, J) + INVOKE_ASYNC(src, PROC_REF(RecoverJob), J) /datum/controller/subsystem/job/proc/RecoverJob(datum/job/J) var/datum/job/newjob = GetJob(J.title) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 6fdf5ff046..fc10d236ef 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -122,7 +122,7 @@ SUBSYSTEM_DEF(mapping) message_admins("Shuttles in transit detected. Attempting to fast travel. Timeout is [wipe_safety_delay/10] seconds.") var/list/cleared = list() for(var/i in in_transit) - INVOKE_ASYNC(src, .proc/safety_clear_transit_dock, i, in_transit[i], cleared) + INVOKE_ASYNC(src, PROC_REF(safety_clear_transit_dock), i, in_transit[i], cleared) UNTIL((go_ahead < world.time) || (cleared.len == in_transit.len)) do_wipe_turf_reservations() clearing_reserved_turfs = FALSE @@ -383,7 +383,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) var/list/banned = generateMapList("[global.config.directory]/lavaruinblacklist.txt") banned += generateMapList("[global.config.directory]/spaceruinblacklist.txt") - for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority)) + for(var/item in sortList(subtypesof(/datum/map_template/ruin), GLOBAL_PROC_REF(cmp_ruincost_priority))) var/datum/map_template/ruin/ruin_type = item // screen out the abstract subtypes if(!initial(ruin_type.id)) diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 448e975d13..56539f2b52 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -147,7 +147,7 @@ SUBSYSTEM_DEF(pai) if(!(ROLE_PAI in G.client.prefs.be_special)) continue to_chat(G, "[user] is requesting a pAI personality! Use the pAI button to submit myself as one.") - addtimer(CALLBACK(src, .proc/spam_again), spam_delay) + addtimer(CALLBACK(src, PROC_REF(spam_again)), spam_delay) var/list/available = list() for(var/datum/paiCandidate/c in SSpai.candidates) available.Add(check_ready(c)) diff --git a/code/controllers/subsystem/pathfinder.dm b/code/controllers/subsystem/pathfinder.dm index ccbea79306..21ee7ea60b 100644 --- a/code/controllers/subsystem/pathfinder.dm +++ b/code/controllers/subsystem/pathfinder.dm @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(pathfinder) while(flow[free]) CHECK_TICK free = (free % lcount) + 1 - var/t = addtimer(CALLBACK(src, /datum/flowcache.proc/toolong, free), 150, TIMER_STOPPABLE) + var/t = addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/flowcache, toolong), free), 150, TIMER_STOPPABLE) flow[free] = t flow[t] = M return free diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index b4d29ef759..cd51dcd05d 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -22,7 +22,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) /datum/controller/subsystem/processing/quirks/proc/SetupQuirks() // Sort by Positive, Negative, Neutral; and then by name - var/list/quirk_list = sortList(subtypesof(/datum/quirk), /proc/cmp_quirk_asc) + var/list/quirk_list = sortList(subtypesof(/datum/quirk), GLOBAL_PROC_REF(cmp_quirk_asc)) for(var/V in quirk_list) var/datum/quirk/T = V diff --git a/code/controllers/subsystem/rogue/devotion.dm b/code/controllers/subsystem/rogue/devotion.dm index 9280dd48d5..2696313384 100644 --- a/code/controllers/subsystem/rogue/devotion.dm +++ b/code/controllers/subsystem/rogue/devotion.dm @@ -14,6 +14,7 @@ var/holder_mob = null var/patron = null var/devotion = 0 + var/max_devotion = 1000 var/progression = 0 var/level = CLERIC_T0 @@ -31,6 +32,10 @@ /datum/devotion/cleric_holder/proc/update_devotion(dev_amt, prog_amt) var/datum/patrongods/P = patron devotion += dev_amt + //Max devotion limit + if(devotion > max_devotion) + devotion = max_devotion + to_chat(holder_mob, "I have reached the limit of my devotion...") if(!prog_amt) // no point in the rest if it's just an expenditure return progression += prog_amt @@ -84,6 +89,9 @@ visible_message("[src] kneels their head in prayer to the Gods.", "I kneel my head in prayer to [PATRON]") for(var/i in 1 to 20) if(do_after(src, 30)) + if(C.devotion >= C.max_devotion) + to_chat(src, "I have reached the limit of my devotion...") + break C.update_devotion(2, 2) prayersesh += 2 else diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index e8bf1b70a3..9434c98609 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -161,7 +161,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/block_recall(lockout_timer) emergencyNoRecall = TRUE - addtimer(CALLBACK(src, .proc/unblock_recall), lockout_timer) + addtimer(CALLBACK(src, PROC_REF(unblock_recall)), lockout_timer) /datum/controller/subsystem/shuttle/proc/unblock_recall() emergencyNoRecall = FALSE diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 307bbfd4c8..b1a075faf5 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -616,7 +616,7 @@ SUBSYSTEM_DEF(ticker) S.Fade(TRUE) livings += living if(livings.len) - addtimer(CALLBACK(src, .proc/release_characters, livings), 30, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, PROC_REF(release_characters), livings), 30, TIMER_CLIENT_TIME) /datum/controller/subsystem/ticker/proc/release_characters(list/livings) for(var/I in livings) @@ -684,7 +684,7 @@ SUBSYSTEM_DEF(ticker) //map rotate chance defaults to 75% of the length of the round (in minutes) if (!prob((world.time/600)*CONFIG_GET(number/maprotatechancedelta))) return - INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/.proc/maprotate) + INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, maprotate)) /datum/controller/subsystem/ticker/proc/HasRoundStarted() return current_state >= GAME_STATE_PLAYING @@ -797,7 +797,7 @@ SUBSYSTEM_DEF(ticker) var/mob/dead/new_player/player = i if(player.ready == PLAYER_READY_TO_OBSERVE && player.mind) //Break chain since this has a sleep input in it - addtimer(CALLBACK(player, /mob/dead/new_player.proc/make_me_an_observer), 1) + addtimer(CALLBACK(player, TYPE_PROC_REF(/mob/dead/new_player, make_me_an_observer)), 1) /datum/controller/subsystem/ticker/proc/load_mode() var/mode = trim(file2text("data/mode.txt")) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index d65ba6b888..3e546759d3 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -258,7 +258,7 @@ SUBSYSTEM_DEF(timer) if (!length(alltimers)) return - sortTim(alltimers, .proc/cmp_timer) + sortTim(alltimers, PROC_REF(cmp_timer)) var/datum/timedevent/head = alltimers[1] diff --git a/code/controllers/subsystem/vis_overlays.dm b/code/controllers/subsystem/vis_overlays.dm index d67ce85bce..52be06cc4b 100644 --- a/code/controllers/subsystem/vis_overlays.dm +++ b/code/controllers/subsystem/vis_overlays.dm @@ -55,7 +55,7 @@ SUBSYSTEM_DEF(vis_overlays) if(!thing.managed_vis_overlays) thing.managed_vis_overlays = list(overlay) - RegisterSignal(thing, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_vis_overlay) + RegisterSignal(thing, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate_vis_overlay)) else thing.managed_vis_overlays += overlay diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm index 55a4862330..5510a011cd 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/weather.dm @@ -56,7 +56,7 @@ SUBSYSTEM_DEF(weather) run_weather(W, list(text2num(z))) eligible_zlevels -= z var/randTime = rand(3000, 6000) - addtimer(CALLBACK(src, .proc/make_eligible, z, possible_weather), randTime + initial(W.weather_duration_upper), TIMER_UNIQUE) //Around 5-10 minutes between weathers + addtimer(CALLBACK(src, PROC_REF(make_eligible), z, possible_weather), randTime + initial(W.weather_duration_upper), TIMER_UNIQUE) //Around 5-10 minutes between weathers next_hit_by_zlevel["[z]"] = world.time + randTime + initial(W.telegraph_duration)*/ /datum/controller/subsystem/weather/Initialize(start_timeofday) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index d0b6d791ec..7df6bf244f 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -30,7 +30,7 @@ icon_state = beam_icon_state beam_type = btype if(time < INFINITY) - addtimer(CALLBACK(src,.proc/End), time) + addtimer(CALLBACK(src,PROC_REF(End)), time) /datum/beam/proc/Start() Draw() @@ -61,13 +61,13 @@ /datum/beam/proc/recalculate_in(time) if(timing_id) deltimer(timing_id) - timing_id = addtimer(CALLBACK(src, .proc/recalculate), time, TIMER_STOPPABLE) + timing_id = addtimer(CALLBACK(src, PROC_REF(recalculate)), time, TIMER_STOPPABLE) /datum/beam/proc/after_calculate() if((sleep_time == null) || finished) //Does not automatically recalculate. return if(isnull(timing_id)) - timing_id = addtimer(CALLBACK(src, .proc/recalculate), sleep_time, TIMER_STOPPABLE) + timing_id = addtimer(CALLBACK(src, PROC_REF(recalculate)), sleep_time, TIMER_STOPPABLE) /datum/beam/proc/End(destroy_self = TRUE) finished = TRUE @@ -159,5 +159,5 @@ /atom/proc/Beam(atom/BeamTarget,icon_state="b_beam",icon='icons/effects/beam.dmi',time=50, maxdistance=10,beam_type=/obj/effect/ebeam,beam_sleep_time = 3) var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type,beam_sleep_time) - INVOKE_ASYNC(newbeam, /datum/beam/.proc/Start) + INVOKE_ASYNC(newbeam, TYPE_PROC_REF(/datum/beam, Start)) return newbeam diff --git a/code/datums/brain_damage/brain_trauma.dm b/code/datums/brain_damage/brain_trauma.dm index 8374b43e8a..95f6f68bad 100644 --- a/code/datums/brain_damage/brain_trauma.dm +++ b/code/datums/brain_damage/brain_trauma.dm @@ -40,8 +40,8 @@ //Called when given to a mob /datum/brain_trauma/proc/on_gain() to_chat(owner, gain_text) - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) - RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(owner, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) //Called when removed from a mob /datum/brain_trauma/proc/on_lose(silent) diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index efcf522b07..5b06e743f0 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -23,7 +23,7 @@ qdel(src) return if(!friend.client && friend_initialized) - addtimer(CALLBACK(src, .proc/reroll_friend), 600) + addtimer(CALLBACK(src, PROC_REF(reroll_friend)), 600) /datum/brain_trauma/special/imaginary_friend/on_death() ..() @@ -170,7 +170,7 @@ if(owner.client) var/mutable_appearance/MA = mutable_appearance('icons/mob/talk.dmi', src, "default[say_test(message)]", FLY_LAYER) MA.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, MA, list(owner.client), 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), MA, list(owner.client), 30) for(var/mob/M in GLOB.dead_mob_list) var/link = FOLLOW_LINK(M, owner) diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm index b5347c46d9..9155b60501 100644 --- a/code/datums/brain_damage/mild.dm +++ b/code/datums/brain_damage/mild.dm @@ -178,8 +178,8 @@ to_chat(owner, "[pick("You have a coughing fit!", "You can't stop coughing!")]") owner.Immobilize(20) owner.emote("cough") - addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 6) - addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 12) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, emote), "cough"), 6) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, emote), "cough"), 12) owner.emote("cough") ..() diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index e0105bfa37..88c6aebaf3 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -87,7 +87,7 @@ var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg)) - addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message + addtimer(CALLBACK(src, PROC_REF(freak_out), null, word), 10) //to react AFTER the chat message hearing_args[HEARING_MESSAGE] = reg.Replace(hearing_args[HEARING_MESSAGE], "$1") break diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 60cbddd2ea..0455c798a8 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -191,7 +191,7 @@ to_chat(owner, "I feel sick...") else to_chat(owner, "I feel really sick at the thought of being alone!") - addtimer(CALLBACK(owner, /mob/living/carbon.proc/vomit, high_stress), 50) //blood vomit if high stress + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living/carbon, vomit), high_stress), 50) //blood vomit if high stress if(2) if(!high_stress) to_chat(owner, "I can't stop shaking...") diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 1294b3d3a7..562c0e5701 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -182,7 +182,7 @@ /datum/brain_trauma/special/death_whispers/proc/whispering() ADD_TRAIT(owner, TRAIT_SIXTHSENSE, TRAUMA_TRAIT) active = TRUE - addtimer(CALLBACK(src, .proc/cease_whispering), rand(50, 300)) + addtimer(CALLBACK(src, PROC_REF(cease_whispering)), rand(50, 300)) /datum/brain_trauma/special/death_whispers/proc/cease_whispering() REMOVE_TRAIT(owner, TRAIT_SIXTHSENSE, TRAUMA_TRAIT) @@ -226,7 +226,7 @@ var/atom/movable/AM = thing SEND_SIGNAL(AM, COMSIG_MOVABLE_SECLUDED_LOCATION) next_crisis = world.time + 600 - addtimer(CALLBACK(src, .proc/fade_in), duration) + addtimer(CALLBACK(src, PROC_REF(fade_in)), duration) /datum/brain_trauma/special/existential_crisis/proc/fade_in() QDEL_NULL(veil) diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 4194c54364..4fcbf970b8 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -207,7 +207,7 @@ var/message = hearing_args[HEARING_MESSAGE] if(findtext(message, codeword)) hearing_args[HEARING_MESSAGE] = replacetext(message, codeword, "[codeword]") - addtimer(CALLBACK(src, /datum/brain_trauma/severe/split_personality.proc/switch_personalities), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/brain_trauma/severe/split_personality, switch_personalities)), 10) /datum/brain_trauma/severe/split_personality/brainwashing/handle_speech(datum/source, list/speech_args) if(findtext(speech_args[SPEECH_MESSAGE], codeword)) diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 7ad1f75b2d..1424dae799 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -233,7 +233,7 @@ winset(user, "mapwindow", "focus=true") break if (timeout) - addtimer(CALLBACK(src, .proc/close), timeout) + addtimer(CALLBACK(src, PROC_REF(close)), timeout) /datum/browser/modal/proc/wait() while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout > world.time)) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 706c8ac963..7ef4b53637 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -1,53 +1,45 @@ /** - *# Callback Datums - *A datum that holds a proc to be called on another object, used to track proccalls to other objects - * - * ## USAGE - * - * ``` - * var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn) - * var/timerid = addtimer(C, time, timertype) - * you can also use the compiler define shorthand - * var/timerid = addtimer(CALLBACK(object|null, /proc/type/path|procstring, arg1, arg2, ... argn), time, timertype) - * ``` - * - * Note: proc strings can only be given for datum proc calls, global procs must be proc paths - * - * Also proc strings are strongly advised against because they don't compile error if the proc stops existing - * - * In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below - * - * ## INVOKING THE CALLBACK - *`var/result = C.Invoke(args, to, add)` additional args are added after the ones given when the callback was created - * - * `var/result = C.InvokeAsync(args, to, add)` Asyncronous - returns . on the first sleep then continues on in the background - * after the sleep/block ends, otherwise operates normally. - * - * ## PROC TYPEPATH SHORTCUTS - * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) - * - * ### global proc while in another global proc: - * .procname - * - * `CALLBACK(GLOBAL_PROC, .some_proc_here)` - * - * ### proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents: - * .procname - * - * `CALLBACK(src, .some_proc_here)` - * - * ### when the above doesn't apply: - *.proc/procname - * - * `CALLBACK(src, .proc/some_proc_here)` - * - * - * proc defined on a parent of a some type - * - * `/some/type/.proc/some_proc_here` - * - * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) - */ + *# Callback Datums + *A datum that holds a proc to be called on another object, used to track proccalls to other objects + * + * ## USAGE + * + * ``` + * var/datum/callback/C = new(object|null, PROC_REF(procname), arg1, arg2, ... argn) + * var/timerid = addtimer(C, time, timertype) + * you can also use the compiler define shorthand + * var/timerid = addtimer(CALLBACK(object|null, PROC_REF(procname), arg1, arg2, ... argn), time, timertype) + * ``` + * + * Note: proc strings can only be given for datum proc calls, global procs must be proc paths + * + * Also proc strings are strongly advised against because they don't compile error if the proc stops existing + * + * In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below + * + * ## INVOKING THE CALLBACK + *`var/result = C.Invoke(args, to, add)` additional args are added after the ones given when the callback was created + * + * `var/result = C.InvokeAsync(args, to, add)` Asyncronous - returns . on the first sleep then continues on in the background + * after the sleep/block ends, otherwise operates normally. + * + * ## PROC TYPEPATH SHORTCUTS + * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) + * + * ### proc defined on current(src) object OR overridden at src or any of it's parents: + * PROC_REF(procname) + * + * `CALLBACK(src, PROC_REF(some_proc_here))` + * + * ### global proc + * GLOBAL_PROC_REF(procname) + * + * `CALLBACK(src, GLOBAL_PROC_REF(some_proc_here))` + * + * + * ### proc defined on some type + * TYPE_PROC_REF(/some/type/, some_proc_here) + */ /datum/callback ///The object we will be calling the proc on diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 85f8da1b7e..4bd9ad2e07 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -49,7 +49,7 @@ stack_trace("/datum/chatmessage created with [isnull(owner) ? "null" : "invalid"] mob owner") qdel(src) return - INVOKE_ASYNC(src, .proc/generate_image, text, target, owner, extra_classes, lifespan) + INVOKE_ASYNC(src, PROC_REF(generate_image), text, target, owner, extra_classes, lifespan) /datum/chatmessage/Destroy() if (owned_by) @@ -74,7 +74,7 @@ /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) // Register client who owns this message owned_by = owner.client - RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel, src) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(qdel), src) // Clip message var/maxlen = owned_by.prefs.max_chat_length @@ -129,7 +129,7 @@ WXH_TO_HEIGHT(owned_by.MeasureText(complete_text, null, CHAT_MESSAGE_WIDTH), mheight) if(!VERB_SHOULD_YIELD) return finish_image_generation(mheight, target, owner, complete_text, lifespan) - var/datum/callback/our_callback = CALLBACK(src, .proc/finish_image_generation, mheight, target, owner, complete_text, lifespan) + var/datum/callback/our_callback = CALLBACK(src, PROC_REF(finish_image_generation), mheight, target, owner, complete_text, lifespan) SSrunechat.message_queue += our_callback @@ -153,7 +153,7 @@ // if (sched_remaining > CHAT_MESSAGE_SPAWN_TIME) // var/remaining_time = (sched_remaining) * (CHAT_MESSAGE_EXP_DECAY ** idx++) * (CHAT_MESSAGE_HEIGHT_DECAY ** combined_height) // m.scheduled_destruction = world.time + remaining_time -// addtimer(CALLBACK(m, .proc/end_of_life), remaining_time, TIMER_UNIQUE|TIMER_OVERRIDE) +// addtimer(CALLBACK(m, PROC_REF(end_of_life)), remaining_time, TIMER_UNIQUE|TIMER_OVERRIDE) qdel(m) // Build message image @@ -174,7 +174,7 @@ // Prepare for destruction scheduled_destruction = world.time + (lifespan - CHAT_MESSAGE_EOL_FADE) - addtimer(CALLBACK(src, .proc/end_of_life), lifespan - CHAT_MESSAGE_EOL_FADE, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(end_of_life)), lifespan - CHAT_MESSAGE_EOL_FADE, TIMER_UNIQUE|TIMER_OVERRIDE) diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index c573b38837..3cc7202680 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -10,10 +10,10 @@ /datum/component/anti_magic/Initialize(_magic = FALSE, _holy = FALSE, _psychic = FALSE, _allowed_slots, _charges, _blocks_self = TRUE, datum/callback/_reaction, datum/callback/_expire) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) else if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_RECEIVE_MAGIC, .proc/protect) + RegisterSignal(parent, COMSIG_MOB_RECEIVE_MAGIC, PROC_REF(protect)) else return COMPONENT_INCOMPATIBLE @@ -32,7 +32,7 @@ if(!CHECK_BITFIELD(allowed_slots, slotdefine2slotbit(slot))) //Check that the slot is valid for antimagic UnregisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC) return - RegisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC, .proc/protect, TRUE) + RegisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC, PROC_REF(protect), TRUE) /datum/component/anti_magic/proc/on_drop(datum/source, mob/user) UnregisterSignal(user, COMSIG_MOB_RECEIVE_MAGIC) diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm index 449c3560f0..35e0bf74c0 100644 --- a/code/datums/components/archaeology.dm +++ b/code/datums/components/archaeology.dm @@ -15,9 +15,9 @@ archdrops[i][ARCH_PROB] = 100 stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null probability value in [i].") callback = _callback - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig) - RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/SingDig) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,PROC_REF(Dig)) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(BombDig)) + RegisterSignal(parent, COMSIG_ATOM_SING_PULL, PROC_REF(SingDig)) /datum/component/archaeology/InheritComponent(datum/component/archaeology/A, i_am_original) var/list/other_archdrops = A.archdrops diff --git a/code/datums/components/armor_plate.dm b/code/datums/components/armor_plate.dm index e7946e2129..d3e7641e48 100644 --- a/code/datums/components/armor_plate.dm +++ b/code/datums/components/armor_plate.dm @@ -9,9 +9,9 @@ if(!isobj(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/applyplate) - RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, .proc/dropplates) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(applyplate)) + RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, PROC_REF(dropplates)) if(_maxamount) maxamount = _maxamount diff --git a/code/datums/components/art.dm b/code/datums/components/art.dm index 693de5ee6d..e6f5e8ca47 100644 --- a/code/datums/components/art.dm +++ b/code/datums/components/art.dm @@ -4,13 +4,13 @@ /datum/component/art/Initialize(impress) impressiveness = impress if(isobj(parent)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_obj_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_obj_examine)) else - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_other_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_other_examine)) if(isstructure(parent)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/apply_moodlet) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(apply_moodlet)) /datum/component/art/proc/apply_moodlet(mob/M, impress) M.visible_message("[M] stops and looks intently at [parent].", \ diff --git a/code/datums/components/bane.dm b/code/datums/components/bane.dm index fa4292e37e..79e2937723 100644 --- a/code/datums/components/bane.dm +++ b/code/datums/components/bane.dm @@ -20,9 +20,9 @@ /datum/component/bane/RegisterWithParent() if(speciestype) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/speciesCheck) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(speciesCheck)) else - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/mobCheck) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(mobCheck)) /datum/component/bane/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ITEM_AFTERATTACK) diff --git a/code/datums/components/beauty.dm b/code/datums/components/beauty.dm index 1be21cf0cb..f5bffb4235 100644 --- a/code/datums/components/beauty.dm +++ b/code/datums/components/beauty.dm @@ -5,8 +5,8 @@ if(!ismovableatom(parent)) return COMPONENT_INCOMPATIBLE beauty = beautyamount - RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/enter_area) - RegisterSignal(parent, COMSIG_EXIT_AREA, .proc/exit_area) + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(enter_area)) + RegisterSignal(parent, COMSIG_EXIT_AREA, PROC_REF(exit_area)) var/area/A = get_area(parent) if(A) enter_area(null, A) diff --git a/code/datums/components/beetlejuice.dm b/code/datums/components/beetlejuice.dm index 2ae78ad3ac..92c404cb52 100644 --- a/code/datums/components/beetlejuice.dm +++ b/code/datums/components/beetlejuice.dm @@ -23,7 +23,7 @@ keyword = M.real_name update_regex() - RegisterSignal(SSdcs, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/say_react) + RegisterSignal(SSdcs, COMSIG_GLOB_LIVING_SAY_SPECIAL, PROC_REF(say_react)) /datum/component/beetlejuice/proc/update_regex() R = regex("[REGEX_QUOTE(keyword)]","g[case_sensitive ? "" : "i"]") diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm index b1212ce58a..9519870aaa 100644 --- a/code/datums/components/butchering.dm +++ b/code/datums/components/butchering.dm @@ -20,7 +20,7 @@ if(_can_be_blunt) can_be_blunt = _can_be_blunt if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/onItemAttack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(onItemAttack)) /datum/component/butchering/proc/onItemAttack(obj/item/source, mob/living/M, mob/living/user) return @@ -28,7 +28,7 @@ return if(M.stat == DEAD && (M.butcher_results || M.guaranteed_butcher_results)) //can we butcher it? if(butchering_enabled && (can_be_blunt || source.get_sharpness())) - INVOKE_ASYNC(src, .proc/startButcher, source, M, user) + INVOKE_ASYNC(src, PROC_REF(startButcher), source, M, user) return COMPONENT_ITEM_NO_ATTACK if(ishuman(M) && source.force && source.get_sharpness()) @@ -38,7 +38,7 @@ user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", MSG_VISUAL, \ "Their neck has already been already cut, you can't make the bleeding any worse!") return COMPONENT_ITEM_NO_ATTACK - INVOKE_ASYNC(src, .proc/startNeckSlice, source, H, user) + INVOKE_ASYNC(src, PROC_REF(startNeckSlice), source, H, user) return COMPONENT_ITEM_NO_ATTACK /datum/component/butchering/proc/startButcher(obj/item/source, mob/living/M, mob/living/user) @@ -113,7 +113,7 @@ . = ..() if(. == COMPONENT_INCOMPATIBLE) return - RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/onCrossed) + RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, PROC_REF(onCrossed)) /datum/component/butchering/recycler/proc/onCrossed(datum/source, mob/living/L) if(!istype(L)) diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm index e5eeeaadc2..5cda6e1e8b 100644 --- a/code/datums/components/caltrop.dm +++ b/code/datums/components/caltrop.dm @@ -12,7 +12,7 @@ probability = _probability flags = _flags - RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), .proc/Crossed) + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), PROC_REF(Crossed)) /datum/component/caltrop/proc/Crossed(datum/source, atom/movable/AM) var/atom/A = parent diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index b6cd321f93..fb4f137d89 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -24,7 +24,7 @@ )) /datum/component/chasm/Initialize(turf/target) - RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), .proc/Entered) + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), PROC_REF(Entered)) target_turf = target START_PROCESSING(SSobj, src) // process on create, in case stuff is still there @@ -57,7 +57,7 @@ for (var/thing in to_check) if (droppable(thing)) . = 1 - INVOKE_ASYNC(src, .proc/drop, thing) + INVOKE_ASYNC(src, PROC_REF(drop), thing) /datum/component/chasm/proc/droppable(atom/movable/AM) // avoid an infinite loop, but allow falling a large distance diff --git a/code/datums/components/construction.dm b/code/datums/components/construction.dm index 01df44752c..45ef560297 100644 --- a/code/datums/components/construction.dm +++ b/code/datums/components/construction.dm @@ -15,8 +15,8 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/action) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,PROC_REF(action)) update_parent(index) /datum/component/construction/proc/examine(datum/source, mob/user, list/examine_list) diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 87b2367765..59614e9f40 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -3,7 +3,7 @@ return COMPONENT_INCOMPATIBLE var/mob/living/L = parent L.craftingthing = src -// RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) +// RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) /* /datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL) var/datum/hud/H = user.hud_used @@ -11,7 +11,7 @@ C.icon = H.ui_style H.static_inventory += C CL.screen += C - RegisterSignal(C, COMSIG_CLICK, .proc/roguecraft) + RegisterSignal(C, COMSIG_CLICK, PROC_REF(roguecraft)) */ /datum/component/personal_crafting var/busy @@ -144,7 +144,7 @@ return FALSE return TRUE -/atom/proc/OnCrafted(dirin) +/atom/proc/OnCrafted(dirin, user) return /obj/item/OnCrafted(dirin) @@ -261,16 +261,16 @@ for(var/IT in L) var/atom/movable/I = new IT(T) I.CheckParts(parts, R) - I.OnCrafted(user.dir) + I.OnCrafted(user.dir, user) else if(ispath(R.result, /turf)) var/turf/X = T.PlaceOnTop(R.result) if(X) - X.OnCrafted(user.dir) + X.OnCrafted(user.dir, user) else var/atom/movable/I = new R.result (T) I.CheckParts(parts, R) - I.OnCrafted(user.dir) + I.OnCrafted(user.dir, user) user.visible_message("[user] [R.verbage] \a [R.name]!", \ "I [R.verbage] \a [R.name]!") if(user.mind && R.skillcraft) diff --git a/code/datums/components/creamed.dm b/code/datums/components/creamed.dm index 278bb3c9b1..b895c2a0bd 100644 --- a/code/datums/components/creamed.dm +++ b/code/datums/components/creamed.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list( RegisterSignal(parent, list( COMSIG_COMPONENT_CLEAN_ACT, COMSIG_COMPONENT_CLEAN_FACE_ACT), - .proc/clean_up) + PROC_REF(clean_up)) /datum/component/creamed/UnregisterFromParent() UnregisterSignal(parent, list( diff --git a/code/datums/components/deadchat_control.dm b/code/datums/components/deadchat_control.dm index 7c6398e51a..8304557286 100644 --- a/code/datums/components/deadchat_control.dm +++ b/code/datums/components/deadchat_control.dm @@ -14,13 +14,13 @@ /datum/component/deadchat_control/Initialize(_deadchat_mode, _inputs, _input_cooldown = 12 SECONDS) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, .proc/orbit_begin) - RegisterSignal(parent, COMSIG_ATOM_ORBIT_STOP, .proc/orbit_stop) + RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, PROC_REF(orbit_begin)) + RegisterSignal(parent, COMSIG_ATOM_ORBIT_STOP, PROC_REF(orbit_stop)) deadchat_mode = _deadchat_mode inputs = _inputs input_cooldown = _input_cooldown if(deadchat_mode == DEMOCRACY_MODE) - timerid = addtimer(CALLBACK(src, .proc/democracy_loop), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, PROC_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) notify_ghosts("[parent] is now deadchat controllable!", source = parent, action = NOTIFY_ORBIT, header="Something Interesting!") @@ -40,7 +40,7 @@ return MOB_DEADSAY_SIGNAL_INTERCEPT inputs[message].Invoke() ckey_to_cooldown[source.ckey] = TRUE - addtimer(CALLBACK(src, .proc/remove_cooldown, source.ckey), input_cooldown) + addtimer(CALLBACK(src, PROC_REF(remove_cooldown), source.ckey), input_cooldown) else if(deadchat_mode == DEMOCRACY_MODE) ckey_to_cooldown[source.ckey] = message return MOB_DEADSAY_SIGNAL_INTERCEPT @@ -92,12 +92,12 @@ return ckey_to_cooldown = list() if(var_value == DEMOCRACY_MODE) - timerid = addtimer(CALLBACK(src, .proc/democracy_loop), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, PROC_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) else deltimer(timerid) /datum/component/deadchat_control/proc/orbit_begin(atom/source, atom/orbiter) - RegisterSignal(orbiter, COMSIG_MOB_DEADSAY, .proc/deadchat_react) + RegisterSignal(orbiter, COMSIG_MOB_DEADSAY, PROC_REF(deadchat_react)) orbiters |= orbiter /datum/component/deadchat_control/proc/orbit_stop(atom/source, atom/orbiter) diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm index ac129fca8e..214bc3a037 100644 --- a/code/datums/components/decal.dm +++ b/code/datums/components/decal.dm @@ -18,11 +18,11 @@ /datum/component/decal/RegisterWithParent() if(first_dir) - RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react) + RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate_react)) if(cleanable) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react)) if(description) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) /datum/component/decal/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE)) @@ -54,7 +54,7 @@ if(isitem(master)) var/obj/item/I = master I.update_slot_icon() -// addtimer(CALLBACK(master, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) +// addtimer(CALLBACK(master, TYPE_PROC_REF(/obj/item, update_slot_icon)), 0, TIMER_UNIQUE) /datum/component/decal/proc/remove(atom/thing) var/atom/master = thing || parent @@ -62,7 +62,7 @@ if(isitem(master)) var/obj/item/I = master I.update_slot_icon() -// addtimer(CALLBACK(master, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) +// addtimer(CALLBACK(master, TYPE_PROC_REF(/obj/item, update_slot_icon)), 0, TIMER_UNIQUE) /datum/component/decal/proc/rotate_react(datum/source, old_dir, new_dir) if(old_dir == new_dir) diff --git a/code/datums/components/decals/blood.dm b/code/datums/components/decals/blood.dm index 6c4ff12fca..90da19f24d 100644 --- a/code/datums/components/decals/blood.dm +++ b/code/datums/components/decals/blood.dm @@ -5,7 +5,7 @@ if(!isitem(parent)) return COMPONENT_INCOMPATIBLE . = ..() - RegisterSignal(parent, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name) + RegisterSignal(parent, COMSIG_ATOM_GET_EXAMINE_NAME, PROC_REF(get_examine_name)) /datum/component/decal/blood/generate_appearance(_icon, _icon_state, _dir, _layer, _color) testing("genappearance") diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index 6f3cd34bc3..495edef7a6 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -42,22 +42,22 @@ tox_loss = L.getToxLoss() oxy_loss = L.getOxyLoss() brain_loss = L.getOrganLoss(ORGAN_SLOT_BRAIN) - rewind_type = .proc/rewind_living + rewind_type = PROC_REF(rewind_living) if(iscarbon(parent)) var/mob/living/carbon/C = parent saved_bodyparts = C.save_bodyparts() - rewind_type = .proc/rewind_carbon + rewind_type = PROC_REF(rewind_carbon) else if(isanimal(parent)) var/mob/living/simple_animal/M = parent brute_loss = M.bruteloss - rewind_type = .proc/rewind_animal + rewind_type = PROC_REF(rewind_animal) else if(isobj(parent)) var/obj/O = parent integrity = O.obj_integrity - rewind_type = .proc/rewind_obj + rewind_type = PROC_REF(rewind_obj) addtimer(CALLBACK(src, rewind_type), rewind_interval) diff --git a/code/datums/components/earprotection.dm b/code/datums/components/earprotection.dm index 9256c4310a..6439e49b83 100644 --- a/code/datums/components/earprotection.dm +++ b/code/datums/components/earprotection.dm @@ -1,7 +1,7 @@ /datum/component/wearertargeting/earprotection signals = list(COMSIG_CARBON_SOUNDBANG) mobtype = /mob/living/carbon - proctype = .proc/reducebang + proctype = PROC_REF(reducebang) /datum/component/wearertargeting/earprotection/Initialize(_valid_slots) . = ..() diff --git a/code/datums/components/edit_complainer.dm b/code/datums/components/edit_complainer.dm index bf52296e2c..144a37a1fa 100644 --- a/code/datums/components/edit_complainer.dm +++ b/code/datums/components/edit_complainer.dm @@ -16,7 +16,7 @@ ) say_lines = text || default_lines - RegisterSignal(SSdcs, COMSIG_GLOB_VAR_EDIT, .proc/var_edit_react) + RegisterSignal(SSdcs, COMSIG_GLOB_VAR_EDIT, PROC_REF(var_edit_react)) /datum/component/edit_complainer/proc/var_edit_react(datum/source, list/arguments) var/atom/movable/master = parent diff --git a/code/datums/components/empprotection.dm b/code/datums/components/empprotection.dm index c85cdf31c7..25ab6ce97f 100644 --- a/code/datums/components/empprotection.dm +++ b/code/datums/components/empprotection.dm @@ -5,7 +5,7 @@ if(!istype(parent, /atom)) return COMPONENT_INCOMPATIBLE flags = _flags - RegisterSignal(parent, list(COMSIG_ATOM_EMP_ACT), .proc/getEmpFlags) + RegisterSignal(parent, list(COMSIG_ATOM_EMP_ACT), PROC_REF(getEmpFlags)) /datum/component/empprotection/proc/getEmpFlags(datum/source, severity) return flags diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm index 77065af1ac..baf384ad94 100644 --- a/code/datums/components/explodable.dm +++ b/code/datums/components/explodable.dm @@ -10,16 +10,16 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/explodable_attack) - RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/explodable_insert_item) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/detonate) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(explodable_attack)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, PROC_REF(explodable_insert_item)) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(detonate)) if(ismovableatom(parent)) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact) - RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(explodable_impact)) + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(explodable_bump)) if(isitem(parent)) - RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/explodable_attack) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), PROC_REF(explodable_attack)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) @@ -56,7 +56,7 @@ detonate() /datum/component/explodable/proc/on_equip(datum/source, mob/equipper, slot) - RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, .proc/explodable_attack_zone, TRUE) + RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, PROC_REF(explodable_attack_zone), TRUE) /datum/component/explodable/proc/on_drop(datum/source, mob/user) UnregisterSignal(user, COMSIG_MOB_APPLY_DAMGE) diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index a9084feb8e..a38c44374a 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -22,7 +22,7 @@ if(FOOTSTEP_MOB_HUMAN) if(!ishuman(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_humanstep) + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(play_humanstep)) return if(FOOTSTEP_MOB_CLAW) footstep_sounds = GLOB.clawfootstep @@ -34,7 +34,7 @@ footstep_sounds = GLOB.footstep if(FOOTSTEP_MOB_SLIME) footstep_sounds = 'sound/blank.ogg' - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_simplestep) //Note that this doesn't get called for humans. + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(play_simplestep)) //Note that this doesn't get called for humans. ///Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open /datum/component/footstep/proc/prepare_step() diff --git a/code/datums/components/forced_gravity.dm b/code/datums/components/forced_gravity.dm index fe9cfc861b..90051af551 100644 --- a/code/datums/components/forced_gravity.dm +++ b/code/datums/components/forced_gravity.dm @@ -5,9 +5,9 @@ /datum/component/forced_gravity/Initialize(forced_value = 1) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ATOM_HAS_GRAVITY, .proc/gravity_check) + RegisterSignal(parent, COMSIG_ATOM_HAS_GRAVITY, PROC_REF(gravity_check)) if(isturf(parent)) - RegisterSignal(parent, COMSIG_TURF_HAS_GRAVITY, .proc/turf_gravity_check) + RegisterSignal(parent, COMSIG_TURF_HAS_GRAVITY, PROC_REF(turf_gravity_check)) gravity = forced_value diff --git a/code/datums/components/forensics.dm b/code/datums/components/forensics.dm index 17f1628ecd..925b22c2a3 100644 --- a/code/datums/components/forensics.dm +++ b/code/datums/components/forensics.dm @@ -25,7 +25,7 @@ /datum/component/forensics/RegisterWithParent() check_blood() - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_act) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_act)) /datum/component/forensics/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_COMPONENT_CLEAN_ACT)) diff --git a/code/datums/components/gps.dm b/code/datums/components/gps.dm index 3118deb6c2..46bc4f69bc 100644 --- a/code/datums/components/gps.dm +++ b/code/datums/components/gps.dm @@ -28,11 +28,11 @@ GLOBAL_LIST_EMPTY(GPS_list) var/atom/A = parent A.add_overlay("working") A.name = "[initial(A.name)] ([gpstag])" - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(interact)) if(!emp_proof) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp_act) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) - RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/on_AltClick) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_AltClick)) ///Called on COMSIG_ITEM_ATTACK_SELF /datum/component/gps/item/proc/interact(datum/source, mob/user) @@ -49,7 +49,7 @@ GLOBAL_LIST_EMPTY(GPS_list) var/atom/A = parent A.cut_overlay("working") A.add_overlay("emp") - addtimer(CALLBACK(src, .proc/reboot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early + addtimer(CALLBACK(src, PROC_REF(reboot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early SStgui.close_uis(src) //Close the UI control if it is open. ///Restarts the GPS after getting turned off by an EMP. diff --git a/code/datums/components/heirloom.dm b/code/datums/components/heirloom.dm index 72b28b125d..3c3f38d1d0 100644 --- a/code/datums/components/heirloom.dm +++ b/code/datums/components/heirloom.dm @@ -9,7 +9,7 @@ owner = new_owner family_name = new_family_name - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) /datum/component/heirloom/proc/examine(datum/source, mob/user, list/examine_list) if(user.mind == owner) diff --git a/code/datums/components/igniter.dm b/code/datums/components/igniter.dm index 175e826601..f45c9397b8 100644 --- a/code/datums/components/igniter.dm +++ b/code/datums/components/igniter.dm @@ -9,11 +9,11 @@ /datum/component/igniter/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/igniter/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/infective.dm b/code/datums/components/infective.dm index bf39c32f7d..9ac66037b1 100644 --- a/code/datums/components/infective.dm +++ b/code/datums/components/infective.dm @@ -15,19 +15,19 @@ if(!ismovableatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean) - RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/try_infect_buckle) - RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/try_infect_collide) - RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/try_infect_crossed) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT_ZONE, .proc/try_infect_impact_zone) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean)) + RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, PROC_REF(try_infect_buckle)) + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(try_infect_collide)) + RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, PROC_REF(try_infect_crossed)) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT_ZONE, PROC_REF(try_infect_impact_zone)) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_ZONE, .proc/try_infect_attack_zone) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/try_infect_attack) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/try_infect_equipped) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_ZONE, PROC_REF(try_infect_attack_zone)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(try_infect_attack)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(try_infect_equipped)) if(istype(parent, /obj/item/reagent_containers/food/snacks)) - RegisterSignal(parent, COMSIG_FOOD_EATEN, .proc/try_infect_eat) + RegisterSignal(parent, COMSIG_FOOD_EATEN, PROC_REF(try_infect_eat)) else if(istype(parent, /obj/effect/decal/cleanable/blood/gibs)) - RegisterSignal(parent, COMSIG_GIBS_STREAK, .proc/try_infect_streak) + RegisterSignal(parent, COMSIG_GIBS_STREAK, PROC_REF(try_infect_streak)) /datum/component/infective/proc/try_infect_eat(datum/source, mob/living/eater, mob/living/feeder) for(var/V in diseases) diff --git a/code/datums/components/jousting.dm b/code/datums/components/jousting.dm index deef128494..cbb61b7832 100644 --- a/code/datums/components/jousting.dm +++ b/code/datums/components/jousting.dm @@ -18,12 +18,12 @@ /datum/component/jousting/Initialize() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/on_attack) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(on_attack)) /datum/component/jousting/proc/on_equip(datum/source, mob/user, slot) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/mob_move, TRUE) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(mob_move), TRUE) current_holder = user /datum/component/jousting/proc/on_drop(datum/source, mob/user) @@ -68,7 +68,7 @@ current_tile_charge++ if(current_timerid) deltimer(current_timerid) - current_timerid = addtimer(CALLBACK(src, .proc/reset_charge), movement_reset_tolerance, TIMER_STOPPABLE) + current_timerid = addtimer(CALLBACK(src, PROC_REF(reset_charge)), movement_reset_tolerance, TIMER_STOPPABLE) /datum/component/jousting/proc/reset_charge() current_tile_charge = 0 diff --git a/code/datums/components/knockback.dm b/code/datums/components/knockback.dm index 110c82ad06..48a6dc6dd3 100644 --- a/code/datums/components/knockback.dm +++ b/code/datums/components/knockback.dm @@ -11,11 +11,11 @@ /datum/component/knockback/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/knockback/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/knockoff.dm b/code/datums/components/knockoff.dm index 7626e28bd1..6ea3170af3 100644 --- a/code/datums/components/knockoff.dm +++ b/code/datums/components/knockoff.dm @@ -7,8 +7,8 @@ /datum/component/knockoff/Initialize(knockoff_chance,zone_override,slots_knockoffable) if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED,.proc/OnEquipped) - RegisterSignal(parent, COMSIG_ITEM_DROPPED,.proc/OnDropped) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED,PROC_REF(OnEquipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED,PROC_REF(OnDropped)) src.knockoff_chance = knockoff_chance @@ -38,7 +38,7 @@ if(slots_knockoffable && !(slot in slots_knockoffable)) UnregisterSignal(H, COMSIG_HUMAN_DISARM_HIT) return - RegisterSignal(H, COMSIG_HUMAN_DISARM_HIT, .proc/Knockoff, TRUE) + RegisterSignal(H, COMSIG_HUMAN_DISARM_HIT, PROC_REF(Knockoff), TRUE) /datum/component/knockoff/proc/OnDropped(datum/source, mob/living/M) UnregisterSignal(M, COMSIG_HUMAN_DISARM_HIT) diff --git a/code/datums/components/lifesteal.dm b/code/datums/components/lifesteal.dm index 499816f177..ae4b22b533 100644 --- a/code/datums/components/lifesteal.dm +++ b/code/datums/components/lifesteal.dm @@ -10,11 +10,11 @@ /datum/component/lifesteal/RegisterWithParent() if(isgun(parent)) - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/lifesteal/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/lockon_aiming.dm b/code/datums/components/lockon_aiming.dm index af15ffe992..c9a5345db1 100644 --- a/code/datums/components/lockon_aiming.dm +++ b/code/datums/components/lockon_aiming.dm @@ -26,7 +26,7 @@ if(target_callback) can_target_callback = target_callback else - can_target_callback = CALLBACK(src, .proc/can_target) + can_target_callback = CALLBACK(src, PROC_REF(can_target)) if(range) lock_cursor_range = range if(typecache) diff --git a/code/datums/components/magnetic_catch.dm b/code/datums/components/magnetic_catch.dm index 4defe936e5..08c4350c5a 100644 --- a/code/datums/components/magnetic_catch.dm +++ b/code/datums/components/magnetic_catch.dm @@ -1,31 +1,31 @@ /datum/component/magnetic_catch/Initialize() if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) if(ismovableatom(parent)) - RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/crossed_react) - RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/uncrossed_react) + RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, PROC_REF(crossed_react)) + RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, PROC_REF(uncrossed_react)) for(var/i in get_turf(parent)) if(i == parent) continue - RegisterSignal(i, COMSIG_MOVABLE_PRE_THROW, .proc/throw_react) + RegisterSignal(i, COMSIG_MOVABLE_PRE_THROW, PROC_REF(throw_react)) else - RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/entered_react) - RegisterSignal(parent, COMSIG_ATOM_EXITED, .proc/exited_react) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(entered_react)) + RegisterSignal(parent, COMSIG_ATOM_EXITED, PROC_REF(exited_react)) for(var/i in parent) - RegisterSignal(i, COMSIG_MOVABLE_PRE_THROW, .proc/throw_react) + RegisterSignal(i, COMSIG_MOVABLE_PRE_THROW, PROC_REF(throw_react)) /datum/component/magnetic_catch/proc/examine(datum/source, mob/user, list/examine_list) examine_list += "It has been installed with inertia dampening to prevent coffee spills." /datum/component/magnetic_catch/proc/crossed_react(datum/source, atom/movable/thing) - RegisterSignal(thing, COMSIG_MOVABLE_PRE_THROW, .proc/throw_react, TRUE) + RegisterSignal(thing, COMSIG_MOVABLE_PRE_THROW, PROC_REF(throw_react), TRUE) /datum/component/magnetic_catch/proc/uncrossed_react(datum/source, atom/movable/thing) UnregisterSignal(thing, COMSIG_MOVABLE_PRE_THROW) /datum/component/magnetic_catch/proc/entered_react(datum/source, atom/movable/thing, atom/oldloc) - RegisterSignal(thing, COMSIG_MOVABLE_PRE_THROW, .proc/throw_react, TRUE) + RegisterSignal(thing, COMSIG_MOVABLE_PRE_THROW, PROC_REF(throw_react), TRUE) /datum/component/magnetic_catch/proc/exited_react(datum/source, atom/movable/thing, atom/newloc) UnregisterSignal(thing, COMSIG_MOVABLE_PRE_THROW) diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 4127ea2932..5469daa9fa 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -38,8 +38,8 @@ precondition = _precondition after_insert = _after_insert - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(OnExamine)) for(var/mat in mat_list) //Make the assoc list ref | amount var/datum/material/M = getmaterialref(mat) || mat diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 998e051e0e..42531cc332 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -18,13 +18,13 @@ START_PROCESSING(SSmood, src) - RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) - RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) - RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/check_area_mood) - RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, PROC_REF(add_event)) + RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, PROC_REF(clear_event)) + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(check_area_mood)) + RegisterSignal(parent, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) - RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) - RegisterSignal(parent, COMSIG_JOB_RECEIVED, .proc/register_job_signals) + RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, PROC_REF(modify_hud)) + RegisterSignal(parent, COMSIG_JOB_RECEIVED, PROC_REF(register_job_signals)) var/mob/living/owner = parent if(owner.hud_used) @@ -39,7 +39,7 @@ /datum/component/mood/proc/register_job_signals(datum/source, job) if(job in list("Research Director", "Scientist", "Roboticist")) - RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/add_event) //Mood events that are only for RnD members + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, PROC_REF(add_event)) //Mood events that are only for RnD members /datum/component/mood/proc/print_mood(mob/user) var/msg = "*---------*\nMy current mood\n" @@ -249,7 +249,7 @@ clear_event(null, category) else if(the_event.timeout) - addtimer(CALLBACK(src, .proc/clear_event, null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) return 0 //Don't have to update the event. var/list/params = args.Copy(4) params.Insert(1, parent) @@ -260,7 +260,7 @@ update_mood() if(the_event.timeout) - addtimer(CALLBACK(src, .proc/clear_event, null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) /datum/component/mood/proc/clear_event(datum/source, category) if(!istext(category)) @@ -289,8 +289,8 @@ screen_obj = new screen_obj.color = "#4b96c4" hud.infodisplay += screen_obj - RegisterSignal(hud, COMSIG_PARENT_QDELETING, .proc/unmodify_hud) - RegisterSignal(screen_obj, COMSIG_CLICK, .proc/hud_click) + RegisterSignal(hud, COMSIG_PARENT_QDELETING, PROC_REF(unmodify_hud)) + RegisterSignal(screen_obj, COMSIG_CLICK, PROC_REF(hud_click)) /datum/component/mood/proc/unmodify_hud(datum/source) if(!screen_obj) diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 9c0c65991e..1c9dc7f082 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -36,31 +36,31 @@ cloud_sync() /datum/component/nanites/RegisterWithParent() - RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites) - RegisterSignal(parent, COMSIG_NANITE_IS_STEALTHY, .proc/check_stealth) - RegisterSignal(parent, COMSIG_NANITE_DELETE, .proc/delete_nanites) - RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data) - RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs) - RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, .proc/set_volume) - RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, .proc/adjust_nanites) - RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, .proc/set_max_volume) - RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, .proc/set_cloud) - RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD_SYNC, .proc/set_cloud_sync) - RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, .proc/set_safety) - RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, .proc/set_regen) - RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program) - RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan) - RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync) + RegisterSignal(parent, COMSIG_HAS_NANITES, PROC_REF(confirm_nanites)) + RegisterSignal(parent, COMSIG_NANITE_IS_STEALTHY, PROC_REF(check_stealth)) + RegisterSignal(parent, COMSIG_NANITE_DELETE, PROC_REF(delete_nanites)) + RegisterSignal(parent, COMSIG_NANITE_UI_DATA, PROC_REF(nanite_ui_data)) + RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, PROC_REF(get_programs)) + RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, PROC_REF(set_volume)) + RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, PROC_REF(adjust_nanites)) + RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, PROC_REF(set_max_volume)) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, PROC_REF(set_cloud)) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD_SYNC, PROC_REF(set_cloud_sync)) + RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, PROC_REF(set_safety)) + RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, PROC_REF(set_regen)) + RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, PROC_REF(add_program)) + RegisterSignal(parent, COMSIG_NANITE_SCAN, PROC_REF(nanite_scan)) + RegisterSignal(parent, COMSIG_NANITE_SYNC, PROC_REF(sync)) if(isliving(parent)) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) - RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/on_death) - RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access) - RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock) - RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, .proc/on_minor_shock) - RegisterSignal(parent, COMSIG_SPECIES_GAIN, .proc/check_viable_biotype) - RegisterSignal(parent, COMSIG_NANITE_SIGNAL, .proc/receive_signal) - RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, .proc/receive_comm_signal) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) + RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(on_death)) + RegisterSignal(parent, COMSIG_MOB_ALLOWED, PROC_REF(check_access)) + RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_shock)) + RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, PROC_REF(on_minor_shock)) + RegisterSignal(parent, COMSIG_SPECIES_GAIN, PROC_REF(check_viable_biotype)) + RegisterSignal(parent, COMSIG_NANITE_SIGNAL, PROC_REF(receive_signal)) + RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, PROC_REF(receive_comm_signal)) /datum/component/nanites/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_HAS_NANITES, diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 525e8c2590..f1eb91778c 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -26,8 +26,8 @@ target.orbiters = src if(ismovableatom(target)) - tracker = new(target, CALLBACK(src, .proc/move_react)) - RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, .proc/orbiter_glide_size_update) + tracker = new(target, CALLBACK(src, PROC_REF(move_react))) + RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(orbiter_glide_size_update)) /datum/component/orbiter/UnregisterFromParent() @@ -65,7 +65,7 @@ orbiter.orbiting.end_orbit(orbiter) orbiters[orbiter] = TRUE orbiter.orbiting = src - RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, .proc/orbiter_move_react) + RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, PROC_REF(orbiter_move_react)) SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_BEGIN, orbiter) var/matrix/initial_transform = matrix(orbiter.transform) diff --git a/code/datums/components/paintable.dm b/code/datums/components/paintable.dm index 22956d63d2..7ef9de44e6 100644 --- a/code/datums/components/paintable.dm +++ b/code/datums/components/paintable.dm @@ -2,7 +2,7 @@ var/current_paint /datum/component/spraycan_paintable/Initialize() - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/Repaint) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(Repaint)) /datum/component/spraycan_paintable/Destroy() RemoveCurrentCoat() diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index 0ce410854a..3b2af400da 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -25,8 +25,8 @@ reagents = AM.reagents turn_connects = _turn_connects - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED,COMSIG_PARENT_PREQDELETED), .proc/disable) - RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), .proc/toggle_active) + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED,COMSIG_PARENT_PREQDELETED), PROC_REF(disable)) + RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), PROC_REF(toggle_active)) if(start) enable() diff --git a/code/datums/components/punchcooldown.dm b/code/datums/components/punchcooldown.dm index 7724aae947..1019b00347 100644 --- a/code/datums/components/punchcooldown.dm +++ b/code/datums/components/punchcooldown.dm @@ -2,7 +2,7 @@ /datum/component/wearertargeting/punchcooldown signals = list(COMSIG_HUMAN_MELEE_UNARMED_ATTACK) mobtype = /mob/living/carbon - proctype = .proc/reducecooldown + proctype = PROC_REF(reducecooldown) valid_slots = list(SLOT_GLOVES) ///The warcry this generates var/warcry = "AT" @@ -11,7 +11,7 @@ . = ..() if(. == COMPONENT_INCOMPATIBLE) return - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/changewarcry) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(changewarcry)) ///Called on COMSIG_HUMAN_MELEE_UNARMED_ATTACK. Yells the warcry and and reduces punch cooldown. /datum/component/wearertargeting/punchcooldown/proc/reducecooldown(mob/living/carbon/M, atom/target) diff --git a/code/datums/components/rad_insulation.dm b/code/datums/components/rad_insulation.dm index 73d8c29440..546cfe8dc4 100644 --- a/code/datums/components/rad_insulation.dm +++ b/code/datums/components/rad_insulation.dm @@ -6,11 +6,11 @@ return COMPONENT_INCOMPATIBLE if(protects) // Does this protect things in its contents from being affected? - RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, .proc/rad_probe_react) + RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, PROC_REF(rad_probe_react)) if(contamination_proof) // Can this object be contaminated? - RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, .proc/rad_contaminating) + RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, PROC_REF(rad_contaminating)) if(_amount != 1) // If it's 1 it wont have any impact on radiation passing through anyway - RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, .proc/rad_pass) + RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, PROC_REF(rad_pass)) amount = _amount diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index 37f38ffcc1..3b4f5a98fd 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -19,10 +19,10 @@ can_contaminate = _can_contaminate if(istype(parent, /atom)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/rad_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(rad_examine)) if(istype(parent, /obj/item)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/rad_attack) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, .proc/rad_attack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(rad_attack)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(rad_attack)) else return COMPONENT_INCOMPATIBLE diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm index 3111a0adef..480f9f188f 100644 --- a/code/datums/components/remote_materials.dm +++ b/code/datums/components/remote_materials.dm @@ -23,12 +23,12 @@ handles linking back and forth. src.category = category src.allow_standalone = allow_standalone - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_ATOM_MULTITOOL_ACT, .proc/OnMultitool) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_ATOM_MULTITOOL_ACT, PROC_REF(OnMultitool)) var/turf/T = get_turf(parent) if (force_connect || (mapload && is_station_level(T.z))) - addtimer(CALLBACK(src, .proc/LateInitialize)) + addtimer(CALLBACK(src, PROC_REF(LateInitialize))) else if (allow_standalone) _MakeLocal() diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index bafaea96eb..89c3cce3f4 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -24,9 +24,9 @@ /datum/component/riding/Initialize() if(!ismovableatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle) - RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/vehicle_moved) + RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, PROC_REF(vehicle_mob_buckle)) + RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(vehicle_mob_unbuckle)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(vehicle_moved)) /datum/component/riding/proc/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) var/atom/movable/AM = parent @@ -189,7 +189,7 @@ return TRUE /datum/component/riding/proc/Unbuckle(atom/movable/M) - addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE) + addtimer(CALLBACK(parent, TYPE_PROC_REF(/atom/movable, unbuckle_mob), M), 0, TIMER_UNIQUE) /datum/component/riding/proc/Process_Spacemove(direction) var/atom/movable/AM = parent @@ -209,7 +209,7 @@ /datum/component/riding/human/Initialize() . = ..() - RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee) + RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, PROC_REF(on_host_unarmed_melee)) /datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) var/mob/living/carbon/human/H = parent diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index e7cd72352a..dad4abe489 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -24,17 +24,17 @@ if(can_user_rotate) src.can_user_rotate = can_user_rotate else - src.can_user_rotate = CALLBACK(src,.proc/default_can_user_rotate) + src.can_user_rotate = CALLBACK(src,PROC_REF(default_can_user_rotate)) if(can_be_rotated) src.can_be_rotated = can_be_rotated else - src.can_be_rotated = CALLBACK(src,.proc/default_can_be_rotated) + src.can_be_rotated = CALLBACK(src,PROC_REF(default_can_be_rotated)) if(after_rotation) src.after_rotation = after_rotation else - src.after_rotation = CALLBACK(src,.proc/default_after_rotation) + src.after_rotation = CALLBACK(src,PROC_REF(default_after_rotation)) //Try Clockwise,counter,flip in order if(src.rotation_flags & ROTATION_FLIP) @@ -46,10 +46,10 @@ /datum/component/simple_rotation/proc/add_signals() // if(rotation_flags & ROTATION_ALTCLICK) -// RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/HandRot) -// RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/ExamineMessage) +// RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(HandRot)) +// RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(ExamineMessage)) if(rotation_flags & ROTATION_WRENCH) - RegisterSignal(parent, COMSIG_ATOM_WRENCH_ACT, .proc/WrenchRot) + RegisterSignal(parent, COMSIG_ATOM_WRENCH_ACT, PROC_REF(WrenchRot)) /datum/component/simple_rotation/proc/add_verbs() if(rotation_flags & ROTATION_VERBS) diff --git a/code/datums/components/shrapnel.dm b/code/datums/components/shrapnel.dm index f549fbbb34..225cba7238 100644 --- a/code/datums/components/shrapnel.dm +++ b/code/datums/components/shrapnel.dm @@ -13,7 +13,7 @@ /datum/component/shrapnel/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) /datum/component/shrapnel/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index eafac255a8..3e0ea9a1d2 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -11,8 +11,8 @@ force_drop_items = _force_drop lube_flags = _lube_flags callback = _callback - RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), .proc/Slip) - RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, .proc/Slip_on_wearer) + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), PROC_REF(Slip)) + RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, PROC_REF(Slip_on_wearer)) /datum/component/slippery/proc/Slip(datum/source, atom/movable/AM) var/mob/victim = AM diff --git a/code/datums/components/soulstoned.dm b/code/datums/components/soulstoned.dm index 6e87e7f9fe..485a0c2754 100644 --- a/code/datums/components/soulstoned.dm +++ b/code/datums/components/soulstoned.dm @@ -16,7 +16,7 @@ S.health = S.maxHealth S.bruteloss = 0 - RegisterSignal(S, COMSIG_MOVABLE_MOVED, .proc/free_prisoner) + RegisterSignal(S, COMSIG_MOVABLE_MOVED, PROC_REF(free_prisoner)) /datum/component/soulstoned/proc/free_prisoner() var/mob/living/simple_animal/S = parent diff --git a/code/datums/components/spawner.dm b/code/datums/components/spawner.dm index 8f5ca86cec..7044c11357 100644 --- a/code/datums/components/spawner.dm +++ b/code/datums/components/spawner.dm @@ -21,7 +21,7 @@ if(_max_mobs) max_mobs=_max_mobs - RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), .proc/stop_spawning) + RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), PROC_REF(stop_spawning)) START_PROCESSING(SSprocessing, src) /datum/component/spawner/process() diff --git a/code/datums/components/spill.dm b/code/datums/components/spill.dm index 1a9a526ec3..b5fde3de11 100644 --- a/code/datums/components/spill.dm +++ b/code/datums/components/spill.dm @@ -27,8 +27,8 @@ return COMPONENT_INCOMPATIBLE /datum/component/spill/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip_react) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/drop_react) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(equip_react)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(drop_react)) var/obj/item/master = parent preexisting_item_flags = master.item_flags master.item_flags |= ITEM_SLOT_POCKET @@ -41,7 +41,7 @@ /datum/component/spill/proc/equip_react(obj/item/source, mob/equipper, slot) if(slot == SLOT_L_STORE || slot == SLOT_R_STORE) - RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/knockdown_react, TRUE) + RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, PROC_REF(knockdown_react), TRUE) else UnregisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN) diff --git a/code/datums/components/spooky.dm b/code/datums/components/spooky.dm index 0c3679ffbd..d33a76f27e 100644 --- a/code/datums/components/spooky.dm +++ b/code/datums/components/spooky.dm @@ -2,7 +2,7 @@ var/too_spooky = TRUE //will it spawn a new instrument? /datum/component/spooky/Initialize() - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/spectral_attack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(spectral_attack)) /datum/component/spooky/proc/spectral_attack(datum/source, mob/living/carbon/C, mob/user) if(ishuman(user)) //this weapon wasn't meant for mortals. diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index 4c0d26c3e2..89315c57fb 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -16,19 +16,19 @@ /datum/component/squeak/Initialize(custom_sounds, volume_override, chance_override, step_delay_override, use_delay_override) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak) + RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), PROC_REF(play_squeak)) if(ismovableatom(parent)) - RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak) - RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/play_squeak_crossed) - RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, .proc/play_squeak_crossed) - RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react) + RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), PROC_REF(play_squeak)) + RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, PROC_REF(play_squeak_crossed)) + RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, PROC_REF(play_squeak_crossed)) + RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, PROC_REF(disposing_react)) if(isitem(parent)) - RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/use_squeak) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), PROC_REF(play_squeak)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(use_squeak)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) if(istype(parent, /obj/item/clothing)) - RegisterSignal(parent, COMSIG_CLOTHING_STEP_ACTION, .proc/step_squeak) + RegisterSignal(parent, COMSIG_CLOTHING_STEP_ACTION, PROC_REF(step_squeak)) override_squeak_sounds = custom_sounds if(chance_override) @@ -79,7 +79,7 @@ play_squeak() /datum/component/squeak/proc/on_equip(datum/source, mob/equipper, slot) - RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react, TRUE) + RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, PROC_REF(disposing_react), TRUE) /datum/component/squeak/proc/on_drop(datum/source, mob/user) UnregisterSignal(user, COMSIG_MOVABLE_DISPOSING) @@ -87,7 +87,7 @@ // Disposal pipes related shit /datum/component/squeak/proc/disposing_react(datum/source, obj/structure/disposalholder/holder, obj/machinery/disposal/source) //We don't need to worry about unregistering this signal as it will happen for us automaticaly when the holder is qdeleted - RegisterSignal(holder, COMSIG_ATOM_DIR_CHANGE, .proc/holder_dir_change) + RegisterSignal(holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(holder_dir_change)) /datum/component/squeak/proc/holder_dir_change(datum/source, old_dir, new_dir) //If the dir changes it means we're going through a bend in the pipes, let's pretend we bumped the wall diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm index 61ee41ad4a..bf8378c7fc 100644 --- a/code/datums/components/stationloving.dm +++ b/code/datums/components/stationloving.dm @@ -7,11 +7,11 @@ /datum/component/stationloving/Initialize(inform_admins = FALSE, allow_death = FALSE) if(!ismovableatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, list(COMSIG_MOVABLE_Z_CHANGED), .proc/check_in_bounds) - RegisterSignal(parent, list(COMSIG_MOVABLE_SECLUDED_LOCATION), .proc/relocate) - RegisterSignal(parent, list(COMSIG_PARENT_PREQDELETED), .proc/check_deletion) - RegisterSignal(parent, list(COMSIG_ITEM_IMBUE_SOUL), .proc/check_soul_imbue) - RegisterSignal(parent, list(COMSIG_ITEM_MARK_RETRIEVAL), .proc/check_mark_retrieval) + RegisterSignal(parent, list(COMSIG_MOVABLE_Z_CHANGED), PROC_REF(check_in_bounds)) + RegisterSignal(parent, list(COMSIG_MOVABLE_SECLUDED_LOCATION), PROC_REF(relocate)) + RegisterSignal(parent, list(COMSIG_PARENT_PREQDELETED), PROC_REF(check_deletion)) + RegisterSignal(parent, list(COMSIG_ITEM_IMBUE_SOUL), PROC_REF(check_soul_imbue)) + RegisterSignal(parent, list(COMSIG_ITEM_MARK_RETRIEVAL), PROC_REF(check_mark_retrieval)) src.inform_admins = inform_admins src.allow_death = allow_death check_in_bounds() // Just in case something is being created outside of station/centcom diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index d1cfb0f399..150a7c00a3 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -15,8 +15,8 @@ /datum/component/storage/concrete/Initialize() . = ..() - RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del) - RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, .proc/on_deconstruct) + RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, PROC_REF(on_contents_del)) + RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, PROC_REF(on_deconstruct)) /datum/component/storage/concrete/Destroy() var/atom/real_location = real_location() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index dd8ea01119..4e125c8512 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -78,42 +78,42 @@ closer = new(null, src) orient2hud() - RegisterSignal(parent, COMSIG_CONTAINS_STORAGE, .proc/on_check) - RegisterSignal(parent, COMSIG_IS_STORAGE_LOCKED, .proc/check_locked) - RegisterSignal(parent, COMSIG_TRY_STORAGE_SHOW, .proc/signal_show_attempt) - RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/signal_insertion_attempt) - RegisterSignal(parent, COMSIG_TRY_STORAGE_CAN_INSERT, .proc/signal_can_insert) - RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE_TYPE, .proc/signal_take_type) - RegisterSignal(parent, COMSIG_TRY_STORAGE_FILL_TYPE, .proc/signal_fill_type) - RegisterSignal(parent, COMSIG_TRY_STORAGE_SET_LOCKSTATE, .proc/set_locked) - RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE, .proc/signal_take_obj) - RegisterSignal(parent, COMSIG_TRY_STORAGE_QUICK_EMPTY, .proc/signal_quick_empty) - RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_FROM, .proc/signal_hide_attempt) - RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_ALL, .proc/close_all) - RegisterSignal(parent, COMSIG_TRY_STORAGE_RETURN_INVENTORY, .proc/signal_return_inv) - - RegisterSignal(parent, COMSIG_TOPIC, .proc/topic_handle) - - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby) - - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_PAW, .proc/on_attack_hand) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/emp_act) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, .proc/show_to_ghost) - RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/refresh_mob_views) - RegisterSignal(parent, COMSIG_ATOM_EXITED, .proc/_remove_and_refresh) - RegisterSignal(parent, COMSIG_ATOM_CANREACH, .proc/canreach_react) - - RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, .proc/preattack_intercept) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/attack_self) - RegisterSignal(parent, COMSIG_ITEM_PICKUP, .proc/signal_on_pickup) - - RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, .proc/close_all) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_move) - - RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/on_alt_click) - RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, .proc/mousedrop_onto) - RegisterSignal(parent, COMSIG_MOUSEDROPPED_ONTO, .proc/mousedrop_receive) + RegisterSignal(parent, COMSIG_CONTAINS_STORAGE, PROC_REF(on_check)) + RegisterSignal(parent, COMSIG_IS_STORAGE_LOCKED, PROC_REF(check_locked)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_SHOW, PROC_REF(signal_show_attempt)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, PROC_REF(signal_insertion_attempt)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_CAN_INSERT, PROC_REF(signal_can_insert)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE_TYPE, PROC_REF(signal_take_type)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_FILL_TYPE, PROC_REF(signal_fill_type)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_SET_LOCKSTATE, PROC_REF(set_locked)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE, PROC_REF(signal_take_obj)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_QUICK_EMPTY, PROC_REF(signal_quick_empty)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_FROM, PROC_REF(signal_hide_attempt)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_ALL, PROC_REF(close_all)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_RETURN_INVENTORY, PROC_REF(signal_return_inv)) + + RegisterSignal(parent, COMSIG_TOPIC, PROC_REF(topic_handle)) + + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(attackby)) + + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_PAW, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(emp_act)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, PROC_REF(show_to_ghost)) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(refresh_mob_views)) + RegisterSignal(parent, COMSIG_ATOM_EXITED, PROC_REF(_remove_and_refresh)) + RegisterSignal(parent, COMSIG_ATOM_CANREACH, PROC_REF(canreach_react)) + + RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, PROC_REF(preattack_intercept)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(attack_self)) + RegisterSignal(parent, COMSIG_ITEM_PICKUP, PROC_REF(signal_on_pickup)) + + RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, PROC_REF(close_all)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_alt_click)) + RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, PROC_REF(mousedrop_onto)) + RegisterSignal(parent, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(mousedrop_receive)) update_actions() @@ -152,7 +152,7 @@ return var/obj/item/I = parent modeswitch_action = new(I) - RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, .proc/action_trigger) + RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, PROC_REF(action_trigger)) if(I.obj_flags & IN_INVENTORY) var/mob/M = I.loc if(!istype(M)) @@ -227,7 +227,7 @@ return // var/datum/progressbar/progress = new(M, len, I.loc) // var/list/rejections = list() -// while(do_after(M, 0, TRUE, parent, FALSE, CALLBACK(src, .proc/handle_mass_pickup, things, I.loc, rejections, progress))) +// while(do_after(M, 0, TRUE, parent, FALSE, CALLBACK(src, PROC_REF(handle_mass_pickup), things, I.loc, rejections, progress))) // stoplag(1) if(ismob(M)) var/mob/user = M @@ -303,7 +303,7 @@ var/list/things = contents() playsound(A, "rustle", 50, FALSE, -5) // var/datum/progressbar/progress = new(M, length(things), T) -// while (do_after(M, dump_time, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) +// while (do_after(M, dump_time, TRUE, T, FALSE, CALLBACK(src, PROC_REF(mass_remove_from_storage), T, things, progress))) // stoplag(1) // qdel(progress) var/turf/target = get_turf(A) diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm index e49bed8299..f973097beb 100644 --- a/code/datums/components/summoning.dm +++ b/code/datums/components/summoning.dm @@ -24,11 +24,11 @@ /datum/component/summoning/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/summoning/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) @@ -60,7 +60,7 @@ spawned_mobs += L if(faction != null) L.faction = faction - RegisterSignal(L, COMSIG_MOB_DEATH, .proc/on_spawned_death) // so we can remove them from the list, etc (for mobs with corpses) + RegisterSignal(L, COMSIG_MOB_DEATH, PROC_REF(on_spawned_death)) // so we can remove them from the list, etc (for mobs with corpses) playsound(spawn_location,spawn_sound, 50, TRUE) spawn_location.visible_message("[L] [spawn_text].") diff --git a/code/datums/components/swarming.dm b/code/datums/components/swarming.dm index c9d20f1f70..1c2d2a5176 100644 --- a/code/datums/components/swarming.dm +++ b/code/datums/components/swarming.dm @@ -10,8 +10,8 @@ offset_x = rand(-max_x, max_x) offset_y = rand(-max_y, max_y) - RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/join_swarm) - RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/leave_swarm) + RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, PROC_REF(join_swarm)) + RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, PROC_REF(leave_swarm)) /datum/component/swarming/Destroy() for(var/other in swarm_members) diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm index 7c742a769b..74a4eebb5d 100644 --- a/code/datums/components/tactical.dm +++ b/code/datums/components/tactical.dm @@ -8,8 +8,8 @@ src.allowed_slot = allowed_slot /datum/component/tactical/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/modify) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unmodify) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(modify)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(unmodify)) /datum/component/tactical/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index ae7ada6f56..69df76c6e9 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -14,7 +14,7 @@ src.tether_name = initial(tmp.name) else src.tether_name = tether_name - RegisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE), .proc/checkTether) + RegisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE), PROC_REF(checkTether)) /datum/component/tether/proc/checkTether(mob/mover, newloc) if (get_dist(mover,newloc) > max_dist) diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm index cbee4c58ac..75ed9ad587 100644 --- a/code/datums/components/thermite.dm +++ b/code/datums/components/thermite.dm @@ -38,9 +38,9 @@ overlay = mutable_appearance('icons/effects/effects.dmi', "thermite") master.add_overlay(overlay) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby_react) - RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, .proc/flame_react) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(attackby_react)) + RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) /datum/component/thermite/UnregisterFromParent() UnregisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT) @@ -65,7 +65,7 @@ master.cut_overlay(overlay) playsound(master, 'sound/blank.ogg', 100, TRUE) var/obj/effect/overlay/thermite/fakefire = new(master) - addtimer(CALLBACK(src, .proc/burn_parent, fakefire, user), min(amount * 0.35 SECONDS, 20 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(burn_parent), fakefire, user), min(amount * 0.35 SECONDS, 20 SECONDS)) UnregisterFromParent() /datum/component/thermite/proc/burn_parent(datum/fakefire, mob/user) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 9212b0f1f4..f407b631a6 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -35,20 +35,20 @@ GLOBAL_LIST_EMPTY(uplinks) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(interact)) if(istype(parent, /obj/item/implant)) - RegisterSignal(parent, COMSIG_IMPLANT_ACTIVATED, .proc/implant_activation) - RegisterSignal(parent, COMSIG_IMPLANT_IMPLANTING, .proc/implanting) - RegisterSignal(parent, COMSIG_IMPLANT_OTHER, .proc/old_implant) - RegisterSignal(parent, COMSIG_IMPLANT_EXISTING_UPLINK, .proc/new_implant) + RegisterSignal(parent, COMSIG_IMPLANT_ACTIVATED, PROC_REF(implant_activation)) + RegisterSignal(parent, COMSIG_IMPLANT_IMPLANTING, PROC_REF(implanting)) + RegisterSignal(parent, COMSIG_IMPLANT_OTHER, PROC_REF(old_implant)) + RegisterSignal(parent, COMSIG_IMPLANT_EXISTING_UPLINK, PROC_REF(new_implant)) else if(istype(parent, /obj/item/pda)) - RegisterSignal(parent, COMSIG_PDA_CHANGE_RINGTONE, .proc/new_ringtone) - RegisterSignal(parent, COMSIG_PDA_CHECK_DETONATE, .proc/check_detonate) + RegisterSignal(parent, COMSIG_PDA_CHANGE_RINGTONE, PROC_REF(new_ringtone)) + RegisterSignal(parent, COMSIG_PDA_CHECK_DETONATE, PROC_REF(check_detonate)) else if(istype(parent, /obj/item/radio)) - RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, .proc/new_frequency) + RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, PROC_REF(new_frequency)) else if(istype(parent, /obj/item/pen)) - RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) + RegisterSignal(parent, COMSIG_PEN_ROTATED, PROC_REF(pen_rotation)) GLOB.uplinks += src uplink_items = get_uplink_items(_gamemode, TRUE, allow_restricted) diff --git a/code/datums/components/waddling.dm b/code/datums/components/waddling.dm index 47ca60c8a1..5e07a287ef 100644 --- a/code/datums/components/waddling.dm +++ b/code/datums/components/waddling.dm @@ -6,9 +6,9 @@ if(!ismovableatom(parent)) return COMPONENT_INCOMPATIBLE if(isliving(parent)) - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/LivingWaddle) + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(LivingWaddle)) else - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/Waddle) + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(Waddle)) /datum/component/waddling/proc/LivingWaddle() var/mob/living/L = parent diff --git a/code/datums/components/wearertargeting.dm b/code/datums/components/wearertargeting.dm index 4760757701..dbf06ea22f 100644 --- a/code/datums/components/wearertargeting.dm +++ b/code/datums/components/wearertargeting.dm @@ -3,14 +3,14 @@ /datum/component/wearertargeting var/list/valid_slots = list() var/list/signals = list() - var/proctype = .proc/pass + var/proctype = PROC_REF(pass) var/mobtype = /mob/living /datum/component/wearertargeting/Initialize() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) /datum/component/wearertargeting/proc/on_equip(datum/source, mob/equipper, slot) if((slot in valid_slots) && istype(equipper, mobtype)) diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index a64e9735db..857b3d17ae 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -30,12 +30,12 @@ permanent = _permanent if(!permanent) START_PROCESSING(SSwet_floors, src) - addtimer(CALLBACK(src, .proc/gc, TRUE), 1) //GC after initialization. + addtimer(CALLBACK(src, PROC_REF(gc), TRUE), 1) //GC after initialization. last_process = world.time /datum/component/wet_floor/RegisterWithParent() - RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet) - RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry) + RegisterSignal(parent, COMSIG_TURF_IS_WET, PROC_REF(is_wet)) + RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, PROC_REF(dry)) /datum/component/wet_floor/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_TURF_IS_WET, COMSIG_TURF_MAKE_DRY)) @@ -96,7 +96,7 @@ qdel(parent.GetComponent(/datum/component/slippery)) return - parent.LoadComponent(/datum/component/slippery, intensity, lube_flags, CALLBACK(src, .proc/AfterSlip)) + parent.LoadComponent(/datum/component/slippery, intensity, lube_flags, CALLBACK(src, PROC_REF(AfterSlip))) /datum/component/wet_floor/proc/dry(datum/source, strength = TURF_WET_WATER, immediate = FALSE, duration_decrease = INFINITY) for(var/i in time_left_list) diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 3656a11740..80e4d09d9e 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -40,7 +40,7 @@ spot1.Beam(spot2,beam_effect,time=20) current_charges-- holder.update_action_buttons_icon() - addtimer(CALLBACK(src, .proc/charge), charge_rate) + addtimer(CALLBACK(src, PROC_REF(charge)), charge_rate) /datum/action/innate/dash/proc/charge() current_charges = CLAMP(current_charges + 1, 0, max_charges) diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 9c41550027..6a8a7f616b 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -93,7 +93,7 @@ advance_diseases += P var/replace_num = advance_diseases.len + 1 - DISEASE_LIMIT //amount of diseases that need to be removed to fit this one if(replace_num > 0) - sortTim(advance_diseases, /proc/cmp_advdisease_resistance_asc) + sortTim(advance_diseases, GLOBAL_PROC_REF(cmp_advdisease_resistance_asc)) for(var/i in 1 to replace_num) var/datum/disease/advance/competition = advance_diseases[i] if(totalTransmittable() > competition.totalResistance()) @@ -447,7 +447,7 @@ symptoms += SSdisease.list_symptoms.Copy() do if(user) - var/symptom = input(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom") in sortList(symptoms, /proc/cmp_typepaths_asc) + var/symptom = input(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom") in sortList(symptoms, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(isnull(symptom)) return else if(istext(symptom)) diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index deec93f829..3852b2044f 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -71,6 +71,6 @@ BONUS if(power >= 2 && prob(30)) to_chat(M, "[pick("You have a coughing fit!", "You can't stop coughing!")]") M.Immobilize(20) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, emote), "cough"), 6) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, emote), "cough"), 12) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, emote), "cough"), 18) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 3bd4fbff37..a1591a16e8 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -262,13 +262,13 @@ else if(M.getBruteLoss() + M.getFireLoss() >= 70 && !active_coma) to_chat(M, "I feel myself slip into a regenerative coma...") active_coma = TRUE - addtimer(CALLBACK(src, .proc/coma, M), 60) + addtimer(CALLBACK(src, PROC_REF(coma), M), 60) /datum/symptom/heal/coma/proc/coma(mob/living/M) M.fakedeath("regenerative_coma", !deathgasp) M.update_stat() M.update_mobility() - addtimer(CALLBACK(src, .proc/uncoma, M), 300) + addtimer(CALLBACK(src, PROC_REF(uncoma), M), 300) /datum/symptom/heal/coma/proc/uncoma(mob/living/M) if(!active_coma) diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index 0a5d11401c..b481477dec 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -40,11 +40,11 @@ BONUS if(3, 4) if(!(H.hairstyle == "Bald") && !(H.hairstyle == "Balding Hair")) to_chat(H, "My hair starts to fall out in clumps...") - addtimer(CALLBACK(src, .proc/Shed, H, FALSE), 50) + addtimer(CALLBACK(src, PROC_REF(Shed), H, FALSE), 50) if(5) if(!(H.facial_hairstyle == "Shaved") || !(H.hairstyle == "Bald")) to_chat(H, "My hair starts to fall out in clumps...") - addtimer(CALLBACK(src, .proc/Shed, H, TRUE), 50) + addtimer(CALLBACK(src, PROC_REF(Shed), H, TRUE), 50) /datum/symptom/shedding/proc/Shed(mob/living/carbon/human/H, fullbald) if(fullbald) diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index b2b0e2df49..43e8cd9444 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -28,7 +28,7 @@ affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) , forced = "pierrot's throat") /datum/disease/pierrot_throat/after_add() - RegisterSignal(affected_mob, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(affected_mob, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/disease/pierrot_throat/proc/handle_speech(datum/source, list/speech_args) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 591f186723..7e263ff942 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -635,12 +635,12 @@ spawn_gibs() set_species(/datum/species/skeleton) if(prob(90)) - addtimer(CALLBACK(src, .proc/death), 30) + addtimer(CALLBACK(src, PROC_REF(death)), 30) if(mind) mind.hasSoul = FALSE if(5) to_chat(src, "LOOK UP!") - addtimer(CALLBACK(src, .proc/something_horrible_mindmelt), 30) + addtimer(CALLBACK(src, PROC_REF(something_horrible_mindmelt)), 30) /mob/living/carbon/human/proc/something_horrible_mindmelt() @@ -651,4 +651,4 @@ eyes.Remove(src) qdel(eyes) visible_message("[src] looks up and their eyes melt away!", "='danger'>I understand now.") - addtimer(CALLBACK(src, .proc/adjustOrganLoss, ORGAN_SLOT_BRAIN, 200), 20) + addtimer(CALLBACK(src, PROC_REF(adjustOrganLoss), ORGAN_SLOT_BRAIN, 200), 20) diff --git a/code/datums/ductnet.dm b/code/datums/ductnet.dm index 744d9a919b..cb5a833add 100644 --- a/code/datums/ductnet.dm +++ b/code/datums/ductnet.dm @@ -15,8 +15,8 @@ /datum/ductnet/proc/remove_duct(obj/machinery/duct/ducting) destroy_network(FALSE) for(var/obj/machinery/duct/D in ducting.neighbours) - addtimer(CALLBACK(D, /obj/machinery/duct/proc/reconnect), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself - addtimer(CALLBACK(D, /obj/machinery/duct/proc/generate_connects), 0) + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct, reconnect)), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct, generate_connects)), 0) qdel(src) ///add a plumbing object to either demanders or suppliers /datum/ductnet/proc/add_plumber(datum/component/plumbing/P, dir) diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 5a421c970d..07d76074b8 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -14,7 +14,7 @@ if(type == /datum/element) return ELEMENT_INCOMPATIBLE if(element_flags & ELEMENT_DETACH) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(Detach), override = TRUE) /// Deactivates the functionality defines by the element on the given datum /datum/element/proc/Detach(datum/source, force) diff --git a/code/datums/elements/bsa_blocker.dm b/code/datums/elements/bsa_blocker.dm index 61140ad0ed..e33338650b 100644 --- a/code/datums/elements/bsa_blocker.dm +++ b/code/datums/elements/bsa_blocker.dm @@ -3,7 +3,7 @@ /datum/element/bsa_blocker/Attach(datum/target) if(!isatom(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, .proc/block_bsa) + RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, PROC_REF(block_bsa)) return ..() /datum/element/bsa_blocker/proc/block_bsa() diff --git a/code/datums/elements/cleaning.dm b/code/datums/elements/cleaning.dm index 8599c20111..37b1f4672a 100644 --- a/code/datums/elements/cleaning.dm +++ b/code/datums/elements/cleaning.dm @@ -2,7 +2,7 @@ . = ..() if(!ismovableatom(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Clean) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(Clean)) /datum/element/cleaning/Detach(datum/target) . = ..() diff --git a/code/datums/elements/digitalcamo.dm b/code/datums/elements/digitalcamo.dm index e3a97002cc..198e523de3 100644 --- a/code/datums/elements/digitalcamo.dm +++ b/code/datums/elements/digitalcamo.dm @@ -10,8 +10,8 @@ . = ..() if(!isliving(target) || target in attached_mobs) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine) - RegisterSignal(target, COMSIG_LIVING_CAN_TRACK, .proc/can_track) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(target, COMSIG_LIVING_CAN_TRACK, PROC_REF(can_track)) var/image/img = image(loc = target) img.override = TRUE attached_mobs[target] = img diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index 45b33ec36f..935d43334b 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -10,7 +10,7 @@ if(!isitem(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), .proc/equippedChanged) + RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(equippedChanged)) /datum/element/earhealing/Detach(datum/target) . = ..() diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index df491d32f3..7809c088d1 100644 --- a/code/datums/elements/firestacker.dm +++ b/code/datums/elements/firestacker.dm @@ -11,10 +11,10 @@ . = ..() if(!ismovableatom(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/impact, override = TRUE) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(impact), override = TRUE) if(isitem(target)) - RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/item_attack, override = TRUE) - RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, .proc/item_attack_self, override = TRUE) + RegisterSignal(target, COMSIG_ITEM_ATTACK, PROC_REF(item_attack), override = TRUE) + RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, PROC_REF(item_attack_self), override = TRUE) if(amount) // If amount is not given we default to 1 and don't need to save it here amount_by_owner[target] = amount diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index a3ce821338..786d832916 100644 --- a/code/datums/elements/snail_crawl.dm +++ b/code/datums/elements/snail_crawl.dm @@ -7,9 +7,9 @@ return ELEMENT_INCOMPATIBLE var/P if(iscarbon(target)) - P = .proc/snail_crawl + P = PROC_REF(snail_crawl) else - P = .proc/lubricate + P = PROC_REF(lubricate) RegisterSignal(target, COMSIG_MOVABLE_MOVED, P) /datum/element/snailcrawl/Detach(mob/living/carbon/target) diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 8a63e914fa..6c2ef98ea4 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -397,7 +397,7 @@ GLOBAL_LIST_EMPTY(explosions) else continue - addtimer(CALLBACK(GLOBAL_PROC, .proc/wipe_color_and_text, wipe_colours), 100) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(wipe_color_and_text), wipe_colours), 100) /proc/wipe_color_and_text(list/atom/wiping) for(var/i in wiping) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 0a7e14270a..cc9cd629aa 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -84,7 +84,7 @@ GLOBAL_LIST_INIT(huds, list( hudusers[M] = 1 if(next_time_allowed[M] > world.time) if(!queued_to_see[M]) - addtimer(CALLBACK(src, .proc/show_hud_images_after_cooldown, M), next_time_allowed[M] - world.time) + addtimer(CALLBACK(src, PROC_REF(show_hud_images_after_cooldown), M), next_time_allowed[M] - world.time) queued_to_see[M] = TRUE else next_time_allowed[M] = world.time + ADD_HUD_TO_COOLDOWN diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 0a4bcf06e7..4b6e85e4cd 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -84,7 +84,7 @@ if(!chance || prob(chance)) play(cursound) // if(!timerid) -// timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), mid_length, TIMER_CLIENT_TIME | TIMER_STOPPABLE | TIMER_LOOP) +// timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), mid_length, TIMER_CLIENT_TIME | TIMER_STOPPABLE | TIMER_LOOP) /datum/looping_sound/proc/play(soundfile) var/list/atoms_cache = output_atoms @@ -136,7 +136,7 @@ if(start_sound) play(start_sound) start_wait = start_length - addtimer(CALLBACK(src, .proc/begin_loop), start_wait, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, PROC_REF(begin_loop)), start_wait, TIMER_CLIENT_TIME) /datum/looping_sound/proc/begin_loop() sound_loop() diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm index b8ea0055ce..fdf3296953 100644 --- a/code/datums/martial/plasma_fist.dm +++ b/code/datums/martial/plasma_fist.dm @@ -25,7 +25,7 @@ /datum/martial_art/plasma_fist/proc/Tornado(mob/living/carbon/human/A, mob/living/carbon/human/D) A.say("TORNADO SWEEP!", forced="plasma fist") - dance_rotate(A, CALLBACK(GLOBAL_PROC, .proc/playsound, A.loc, 'sound/blank.ogg', 15, TRUE, -1)) + dance_rotate(A, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), A.loc, 'sound/blank.ogg', 15, TRUE, -1)) var/obj/effect/proc_holder/spell/aoe_turf/repulse/R = new(null) var/list/turfs = list() for(var/turf/T in range(1,A)) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 25c16b7d25..f7d53db35d 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -196,7 +196,7 @@ if (T && isturf(T)) if (!D.stat) D.emote("scream") - D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, /mob/living/carbon/human.proc/Paralyze, 20)) + D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, TYPE_PROC_REF(/mob/living/carbon/human, Paralyze), 20)) log_combat(A, D, "has thrown with wrestling") return 0 @@ -333,7 +333,7 @@ A.setDir(turn(A.dir, 90)) A.forceMove(D.loc) - addtimer(CALLBACK(src, .proc/CheckStrikeTurf, A, T), 4) + addtimer(CALLBACK(src, PROC_REF(CheckStrikeTurf), A, T), 4) D.visible_message("[A] headbutts [D]!", \ "You're headbutted by [A]!", "I hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index eb9e6240ce..d065c5a8ae 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -41,7 +41,7 @@ Simple datum which is instanced once per type and is used for every object of sa source.name = "[name] [source.name]" if(beauty_modifier) - addtimer(CALLBACK(source, /datum.proc/AddComponent, /datum/component/beauty, beauty_modifier * amount), 0) + addtimer(CALLBACK(source, TYPE_PROC_REF(/datum, AddComponent), /datum/component/beauty, beauty_modifier * amount), 0) if(istype(source, /obj)) //objs on_applied_obj(source, amount, material_flags) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 1c49400136..747f11aac0 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -248,7 +248,7 @@ transfer_antag_huds(hud_to_transfer) //inherit the antag HUD transfer_actions(new_character) transfer_martial_arts(new_character) - RegisterSignal(new_character, COMSIG_MOB_DEATH, .proc/set_death_time) + RegisterSignal(new_character, COMSIG_MOB_DEATH, PROC_REF(set_death_time)) if(active || force_key_move) testing("dotransfer to [new_character]") new_character.key = key //now transfer the key to link the client to our new body @@ -905,7 +905,7 @@ continue S.charge_counter = delay S.updateButtonIcon() - INVOKE_ASYNC(S, /obj/effect/proc_holder/spell.proc/start_recharge) + INVOKE_ASYNC(S, TYPE_PROC_REF(/obj/effect/proc_holder/spell, start_recharge)) /datum/mind/proc/get_ghost(even_if_they_cant_reenter, ghosts_with_clients) for(var/mob/dead/observer/G in (ghosts_with_clients ? GLOB.player_list : GLOB.dead_mob_list)) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index f09310e368..47ee8950a5 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -80,7 +80,7 @@ if(isfelinid(owner)) var/mob/living/carbon/human/H = owner H.dna.species.start_wagging_tail(H) - addtimer(CALLBACK(H.dna.species, /datum/species.proc/stop_wagging_tail, H), 30) + addtimer(CALLBACK(H.dna.species, TYPE_PROC_REF(/datum/species, stop_wagging_tail), H), 30) description = "They want to play on the table!\n" mood_change = 2 diff --git a/code/datums/movement_detector.dm b/code/datums/movement_detector.dm index ff40d6bb1d..067d98a530 100644 --- a/code/datums/movement_detector.dm +++ b/code/datums/movement_detector.dm @@ -20,7 +20,7 @@ src.listener = listener while(ismovableatom(target)) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) target = target.loc /// Stops tracking @@ -47,7 +47,7 @@ if(tracked.loc != newturf) var/atom/target = mover.loc while(ismovableatom(target)) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react, TRUE) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_react), TRUE) target = target.loc listener.Invoke(tracked, mover, oldloc, direction) diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 0f170bc9b2..418e156f54 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -49,7 +49,7 @@ . = ..() class = class_ if(timer) - addtimer(CALLBACK(src, .proc/remove), timer) + addtimer(CALLBACK(src, PROC_REF(remove)), timer) timed = TRUE if(copymut && istype(copymut, /datum/mutation/human)) copy_mutation(copymut) @@ -84,7 +84,7 @@ owner.apply_overlay(layer_used) grant_spell() //we do checks here so nothing about hulk getting magic if(!modified) - addtimer(CALLBACK(src, .proc/modify, 5)) //gonna want children calling ..() to run first + addtimer(CALLBACK(src, PROC_REF(modify), 5)) //gonna want children calling ..() to run first /datum/mutation/human/proc/get_visual_indicator() return diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index ebc2863436..9abc3881ac 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -15,7 +15,7 @@ owner.Unconscious(200 * GET_MUTATION_POWER(src)) owner.Jitter(1000 * GET_MUTATION_POWER(src)) SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "epilepsy", /datum/mood_event/epilepsy) - addtimer(CALLBACK(src, .proc/jitter_less), 90) + addtimer(CALLBACK(src, PROC_REF(jitter_less)), 90) /datum/mutation/human/epilepsy/proc/jitter_less() if(owner) diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index c4b5d23e67..3e13bbf18b 100644 --- a/code/datums/mutations/chameleon.dm +++ b/code/datums/mutations/chameleon.dm @@ -13,8 +13,8 @@ if(..()) return owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) - RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) /datum/mutation/human/chameleon/on_life() owner.alpha = max(0, owner.alpha - 25) diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index e75bac36a4..13f6ff5539 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -22,8 +22,8 @@ ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_HULK) owner.update_body_parts() SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk) - RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand) - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/hulk/proc/on_attack_hand(mob/living/source, atom/target, proximity) if(!proximity) diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index e62ffc6161..c04e688ff1 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -86,7 +86,7 @@ . = ..() if(.) return - RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, .proc/on_ranged_attack) + RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) /datum/mutation/human/laser_eyes/on_losing(mob/living/carbon/human/H) . = ..() diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index 6346cf6f5e..87a85343a0 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -22,7 +22,7 @@ /datum/mutation/human/wacky/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/wacky/on_losing(mob/living/carbon/human/owner) if(..()) @@ -60,7 +60,7 @@ /datum/mutation/human/smile/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/smile/on_losing(mob/living/carbon/human/owner) if(..()) @@ -146,7 +146,7 @@ /datum/mutation/human/swedish/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/swedish/on_losing(mob/living/carbon/human/owner) if(..()) @@ -175,7 +175,7 @@ /datum/mutation/human/chav/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/chav/on_losing(mob/living/carbon/human/owner) if(..()) @@ -232,7 +232,7 @@ /datum/mutation/human/elvis/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/elvis/on_losing(mob/living/carbon/human/owner) if(..()) diff --git a/code/datums/mutations/telekinesis.dm b/code/datums/mutations/telekinesis.dm index be67d0c178..ddda13fcf3 100644 --- a/code/datums/mutations/telekinesis.dm +++ b/code/datums/mutations/telekinesis.dm @@ -17,7 +17,7 @@ . = ..() if(.) return - RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, .proc/on_ranged_attack) + RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) /datum/mutation/human/telekinesis/on_losing(mob/living/carbon/human/H) . = ..() diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index 6fe0cc0db0..e9a2e40257 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -59,7 +59,7 @@ LAZYREMOVE(user.progressbars, bar.loc) animate(bar, alpha = 0, time = PROGRESSBAR_ANIMATION_TIME) - addtimer(CALLBACK(src, .proc/remove_from_client), PROGRESSBAR_ANIMATION_TIME, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, PROC_REF(remove_from_client)), PROGRESSBAR_ANIMATION_TIME, TIMER_CLIENT_TIME) QDEL_IN(bar, PROGRESSBAR_ANIMATION_TIME * 2) //for garbage collection safety . = ..() diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 26ca8de28a..0830ff0d5d 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -304,7 +304,7 @@ owner.add_stun_absorption("bloody bastard sword", duration, 2, "doesn't even flinch as the sword's power courses through them!", "You shrug off the stun!", " glowing with a blazing red aura!") owner.spin(duration,1) animate(owner, color = oldcolor, time = duration, easing = EASE_IN) - addtimer(CALLBACK(owner, /atom/proc/update_atom_colour), duration) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, update_atom_colour)), duration) playsound(owner, 'sound/blank.ogg', 75, FALSE) return ..() diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 0f78b874d1..f27585f194 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -475,7 +475,7 @@ /datum/status_effect/trance/on_apply() if(!iscarbon(owner)) return FALSE - RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/hypnotize) + RegisterSignal(owner, COMSIG_MOVABLE_HEAR, PROC_REF(hypnotize)) ADD_TRAIT(owner, TRAIT_MUTE, "trance") owner.add_client_colour(/datum/client_colour/monochrome/trance) owner.visible_message("[stun ? "[owner] stands still as [owner.p_their()] eyes seem to focus on a distant point." : ""]", \ @@ -501,8 +501,8 @@ return var/mob/living/carbon/C = owner C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis - addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hearing_args[HEARING_RAW_MESSAGE]), 10) - addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, gain_trauma), /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hearing_args[HEARING_RAW_MESSAGE]), 10) + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living, Stun), 60, TRUE, TRUE), 15) //Take some time to think about it qdel(src) /datum/status_effect/spasms diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm index 293dc0806a..a3d59c1eeb 100644 --- a/code/datums/status_effects/gas.dm +++ b/code/datums/status_effects/gas.dm @@ -12,7 +12,7 @@ icon_state = "frozen" /datum/status_effect/freon/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/owner_resist) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(owner_resist)) if(!owner.stat) to_chat(owner, "I become frozen in a cube!") cube = icon('icons/effects/freeze.dmi', "ice_cube") diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 35dc11d6b0..ae7d41ae92 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -144,7 +144,7 @@ /datum/status_effect/bugged/on_apply(mob/living/new_owner, mob/living/tracker) . = ..() if (.) - RegisterSignal(new_owner, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) + RegisterSignal(new_owner, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) /datum/status_effect/bugged/on_remove() . = ..() diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 90f8f9ff94..25ab106851 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -26,7 +26,7 @@ add() if(spawn_effects) on_spawn() - addtimer(CALLBACK(src, .proc/post_add), 30) + addtimer(CALLBACK(src, PROC_REF(post_add)), 30) /datum/quirk/Destroy() STOP_PROCESSING(SSquirks, src) diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index bf141dc433..00ecb9edbd 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -95,7 +95,7 @@ to_chat(M, telegraph_message) if(telegraph_sound) SEND_SOUND(M, sound(telegraph_sound)) - addtimer(CALLBACK(src, .proc/start), telegraph_duration) + addtimer(CALLBACK(src, PROC_REF(start)), telegraph_duration) /datum/weather/proc/starteffected() return @@ -128,7 +128,7 @@ to_chat(M, weather_message) if(weather_sound) SEND_SOUND(M, sound(weather_sound)) - addtimer(CALLBACK(src, .proc/wind_down), weather_duration) + addtimer(CALLBACK(src, PROC_REF(wind_down)), weather_duration) /datum/weather/proc/wind_down() if(stage >= WIND_DOWN_STAGE) @@ -145,7 +145,7 @@ to_chat(M, end_message) if(end_sound) SEND_SOUND(M, sound(end_sound)) - addtimer(CALLBACK(src, .proc/end), end_duration) + addtimer(CALLBACK(src, PROC_REF(end)), end_duration) /datum/weather/proc/end() if(stage == END_STAGE) diff --git a/code/datums/weather/weather_types/roguetown/rain.dm b/code/datums/weather/weather_types/roguetown/rain.dm index dcb261c607..25d5e65f07 100644 --- a/code/datums/weather/weather_types/roguetown/rain.dm +++ b/code/datums/weather/weather_types/roguetown/rain.dm @@ -100,7 +100,7 @@ M.playsound_local(M, pick('sound/ambience/noises/thunout (1).ogg','sound/ambience/noises/thunout (2).ogg','sound/ambience/noises/thunout (3).ogg','sound/ambience/noises/thunout (4).ogg'), 100, FALSE) M.lightning_flashing = TRUE M.update_sight() - addtimer(CALLBACK(M, /mob/living/carbon.proc/reset_lightning), 1) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living/carbon, reset_lightning)), 1) continue if(istype(A, /area/rogue/indoors)) M.playsound_local(M, pick('sound/ambience/noises/thunin (1).ogg','sound/ambience/noises/thunin (2).ogg','sound/ambience/noises/thunin (3).ogg','sound/ambience/noises/thunin (4).ogg'), 100, FALSE) diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm index c46e06a4ad..f6c166c596 100644 --- a/code/datums/wires/airalarm.dm +++ b/code/datums/wires/airalarm.dm @@ -31,13 +31,13 @@ if(!A.shorted) A.shorted = TRUE A.update_icon() - addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/reset, wire), 1200) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/airalarm, reset), wire), 1200) if(WIRE_IDSCAN) // Toggle lock. A.locked = !A.locked if(WIRE_AI) // Disable AI control for a while. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/reset, wire), 100) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/airalarm, reset), wire), 100) if(WIRE_PANIC) // Toggle panic siphon. if(!A.shorted) if(A.mode == 1) // AALARM_MODE_SCRUB diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index f06bba6486..cf5fb18a32 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -48,9 +48,9 @@ return if(!A.requiresID() || A.check_access(null)) if(A.density) - INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/open) + INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock, open)) else - INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/close) + INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock, close)) if(WIRE_BOLTS) // Pulse to toggle bolts (but only raise if power is on). if(!A.locked) A.bolt() diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index e97c1f3654..271472b35d 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -29,14 +29,14 @@ if(WIRE_POWER1, WIRE_POWER2) // Short for a long while. if(!A.shorted) A.shorted = TRUE - addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 1200) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 1200) if(WIRE_IDSCAN) // Unlock for a little while. A.locked = FALSE - addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 300) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 300) if(WIRE_AI) // Disable AI control for a very short time. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 10) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 10) /datum/wires/apc/on_cut(index, mend) var/obj/machinery/power/apc/A = holder diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index 7f3519f394..c70a20ca8e 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -27,13 +27,13 @@ switch(wire) if(WIRE_HACK) A.adjust_hacked(!A.hacked) - addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) if(WIRE_SHOCK) A.shocked = !A.shocked - addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) if(WIRE_DISABLE) A.disabled = !A.disabled - addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) /datum/wires/autolathe/on_cut(wire, mend) var/obj/machinery/autolathe/A = holder diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 3d524cb5c4..de64431592 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -141,7 +141,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if (picked && is_station_level(picked.z)) GLOB.teleportlocs[AR.name] = AR - sortTim(GLOB.teleportlocs, /proc/cmp_text_asc) + sortTim(GLOB.teleportlocs, GLOBAL_PROC_REF(cmp_text_asc)) /** * Called when an area loads @@ -345,7 +345,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(D.operating) D.nextstate = opening ? FIREDOOR_OPEN : FIREDOOR_CLOSED else if(!(D.density ^ opening)) - INVOKE_ASYNC(D, (opening ? /obj/machinery/door/firedoor.proc/open : /obj/machinery/door/firedoor.proc/close)) + INVOKE_ASYNC(D, (opening ? TYPE_PROC_REF(/obj/machinery/door/firedoor, open) : TYPE_PROC_REF(/obj/machinery/door/firedoor, close))) /** * Generate an firealarm alert for this area @@ -450,7 +450,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) var/mob/living/silicon/SILICON = i if(SILICON.triggerAlarm("Burglar", src, cameras, trigger)) //Cancel silicon alert after 1 minute - addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600) + addtimer(CALLBACK(SILICON, TYPE_PROC_REF(/mob/living/silicon, cancelAlarm),"Burglar",src,trigger), 600) /** * Trigger the fire alarm visual affects in an area @@ -655,7 +655,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) T.maptext_y = 64 playsound_local(src, 'sound/misc/area.ogg', 100, FALSE) animate(T, alpha = 255, time = 10, easing = EASE_IN) - addtimer(CALLBACK(src, .proc/clear_area_text, T), 35) + addtimer(CALLBACK(src, PROC_REF(clear_area_text), T), 35) /mob/living/proc/clear_area_text(obj/screen/A) if(!A) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 8b1179fe07..25537d59bf 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -603,7 +603,7 @@ */ /atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). - addtimer(CALLBACK(src, .proc/hitby_react, AM), 2) + addtimer(CALLBACK(src, PROC_REF(hitby_react), AM), 2) /** * We have have actually hit the passed in atom @@ -760,7 +760,7 @@ var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) var/datum/component/storage/STR = GetComponent(/datum/component/storage) - while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress))) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, TYPE_PROC_REF(/datum/component/storage, handle_mass_item_insertion), things, src_object, user, progress))) stoplag(1) qdel(progress) to_chat(user, "I dump as much of [src_object.parent]'s contents [STR.insert_preposition]to [src] as I can.") @@ -947,7 +947,7 @@ if(!valid_id) to_chat(usr, "A reagent with that ID doesn't exist!") if("Choose from a list") - chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") as null|anything in sortList(subtypesof(/datum/reagent), /proc/cmp_typepaths_asc) + chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") as null|anything in sortList(subtypesof(/datum/reagent), GLOBAL_PROC_REF(cmp_typepaths_asc)) if("I'm feeling lucky") chosen_id = pick(subtypesof(/datum/reagent)) if(chosen_id) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 7c613153e2..9d1f180459 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -75,7 +75,7 @@ if(isobj(A) || ismob(A)) if(A.layer > highest.layer) highest = A -// INVOKE_ASYNC(src, .proc/SpinAnimation, 5, 2) +// INVOKE_ASYNC(src, PROC_REF(SpinAnimation), 5, 2) throw_impact(highest) return TRUE diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 4a9f7b907e..ef932ccf4b 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -221,7 +221,7 @@ /obj/item/clothing/mask/fakemoustache/sticky/Initialize() . = ..() ADD_TRAIT(src, TRAIT_NODROP, STICKY_MOUSTACHE_TRAIT) - addtimer(CALLBACK(src, .proc/unstick), unstick_time) + addtimer(CALLBACK(src, PROC_REF(unstick)), unstick_time) /obj/item/clothing/mask/fakemoustache/sticky/proc/unstick() REMOVE_TRAIT(src, TRAIT_NODROP, STICKY_MOUSTACHE_TRAIT) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index d68670947e..5aba5e3420 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -361,7 +361,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) for(var/datum/dynamic_ruleset/roundstart/rule in executed_rules) rule.candidates.Cut() // The rule should not use candidates at this point as they all are null. - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_roundstart_rule, rule), rule.delay) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/game_mode/dynamic, execute_roundstart_rule), rule), rule.delay) ..() /// A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it. @@ -534,7 +534,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) else if(rule.ruletype == "Midround") midround_rules = remove_from_list(midround_rules, rule.type) - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_midround_latejoin_rule, rule), rule.delay) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/game_mode/dynamic, execute_midround_latejoin_rule), rule), rule.delay) return TRUE /// An experimental proc to allow admins to call rules on the fly or have rules call other rules. diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 0d9de86b6a..817e61f7ae 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -84,7 +84,7 @@ /datum/game_mode/proc/post_setup(report) //Gamemodes can override the intercept report. Passing TRUE as the argument will force a report. if(!report) report = !CONFIG_GET(flag/no_intercept_report) -// addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME) +// addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(display_roundstart_logout_report)), ROUNDSTART_LOGOUT_REPORT_TIME) if(CONFIG_GET(flag/reopen_roundstart_suicide_roles)) var/delay = CONFIG_GET(number/reopen_roundstart_suicide_roles_delay) @@ -92,7 +92,7 @@ delay = (delay SECONDS) else delay = (4 MINUTES) //default to 4 minutes if the delay isn't defined. - addtimer(CALLBACK(GLOBAL_PROC, .proc/reopen_roundstart_suicide_roles), delay) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reopen_roundstart_suicide_roles)), delay) if(SSdbcore.Connect()) var/sql @@ -107,7 +107,7 @@ query_round_game_mode.Execute() qdel(query_round_game_mode) if(report) - addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h)) + addtimer(CALLBACK(src, PROC_REF(send_intercept), 0), rand(waittime_l, waittime_h)) generate_station_goals() gamemode_ready = TRUE return 1 diff --git a/code/game/gamemodes/roguetown/chaosmode.dm b/code/game/gamemodes/roguetown/chaosmode.dm index a12c1bf5b4..6db8c0ecd4 100644 --- a/code/game/gamemodes/roguetown/chaosmode.dm +++ b/code/game/gamemodes/roguetown/chaosmode.dm @@ -328,21 +328,21 @@ ///////////////// VILLAINS for(var/datum/mind/traitor in pre_villains) var/datum/antagonist/new_antag = new /datum/antagonist/villain() - addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(traitor, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= traitor villains += traitor ///////////////// WWOLF for(var/datum/mind/werewolf in pre_werewolves) var/datum/antagonist/new_antag = new /datum/antagonist/werewolf() - addtimer(CALLBACK(werewolf, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(werewolf, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= werewolf werewolves += werewolf ///////////////// VAMPIRES for(var/datum/mind/vampire in pre_vampires) var/datum/antagonist/new_antag = new /datum/antagonist/vampire() - addtimer(CALLBACK(vampire, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(vampire, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= vampire vampires += vampire diff --git a/code/game/gamemodes/roguetown/roguetown.dm b/code/game/gamemodes/roguetown/roguetown.dm index 5329070587..ff88e9deb2 100644 --- a/code/game/gamemodes/roguetown/roguetown.dm +++ b/code/game/gamemodes/roguetown/roguetown.dm @@ -404,14 +404,14 @@ var/global/list/roguegamemodes = list("Rebellion", "Vampire Lord", "Extended", " ///////////////// VILLAINS for(var/datum/mind/traitor in pre_villains) var/datum/antagonist/new_antag = new /datum/antagonist/villain() - addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(traitor, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= traitor villains += traitor ///////////////// WWOLF for(var/datum/mind/werewolf in pre_werewolves) var/datum/antagonist/new_antag = new /datum/antagonist/werewolf() - addtimer(CALLBACK(werewolf, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(werewolf, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= werewolf werewolves += werewolf @@ -421,13 +421,13 @@ var/global/list/roguegamemodes = list("Rebellion", "Vampire Lord", "Extended", " for(var/datum/mind/vampire in pre_vampires) if(!vamplordpicked) var/datum/antagonist/new_antag = new /datum/antagonist/vampirelord() - addtimer(CALLBACK(vampire, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(vampire, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= vampire vampires += vampire vamplordpicked = TRUE else var/datum/antagonist/new_antag = new /datum/antagonist/vampirelord/lesser() - addtimer(CALLBACK(vampire, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(vampire, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= vampire vampires += vampire ///////////////// BANDIT diff --git a/code/game/gamemodes/roguetown/roguewar.dm b/code/game/gamemodes/roguetown/roguewar.dm index 041bd2b024..a2a3ee61d4 100644 --- a/code/game/gamemodes/roguetown/roguewar.dm +++ b/code/game/gamemodes/roguetown/roguewar.dm @@ -336,19 +336,19 @@ ///////////////// VILLAINS for(var/datum/mind/traitor in pre_villains) var/datum/antagonist/new_antag = new /datum/antagonist/villain() - addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(traitor, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= traitor ///////////////// WWOLF for(var/datum/mind/werewolf in pre_werewolves) var/datum/antagonist/new_antag = new /datum/antagonist/werewolf() - addtimer(CALLBACK(werewolf, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(werewolf, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= werewolf ///////////////// VAMPIRES for(var/datum/mind/vampire in pre_vampires) var/datum/antagonist/new_antag = new /datum/antagonist/vampire() - addtimer(CALLBACK(vampire, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(vampire, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= vampire ///////////////// BANDIT diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 5dd33fd032..446bdb7340 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -71,7 +71,7 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) var/datum/antagonist/traitor/new_antag = new antag_datum() - addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(traitor, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= traitor if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 39ce64599b..bf765dee34 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -157,7 +157,7 @@ Class Procs: /obj/machinery/LateInitialize() . = ..() power_change() - RegisterSignal(src, COMSIG_ENTER_AREA, .proc/power_change) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(power_change)) /obj/machinery/Destroy() GLOB.machines.Remove(src) @@ -441,7 +441,7 @@ Class Procs: I.play_tool_sound(src, 50) var/prev_anchored = anchored //as long as we're the same anchored state and we're either on a floor or are anchored, toggle our anchored state - if(I.use_tool(src, user, time, extra_checks = CALLBACK(src, .proc/unfasten_wrench_check, prev_anchored, user))) + if(I.use_tool(src, user, time, extra_checks = CALLBACK(src, PROC_REF(unfasten_wrench_check), prev_anchored, user))) to_chat(user, "I [anchored ? "un" : ""]secure [src].") setAnchored(!anchored) playsound(src, 'sound/blank.ogg', 50, TRUE) diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index b0104c91ea..53f043e395 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -40,4 +40,4 @@ to_chat(user, "I activate [src]. It now has [uses] uses of foam remaining.") cooldown = world.time + cooldown_time power_change() - addtimer(CALLBACK(src, .proc/power_change), cooldown_time) + addtimer(CALLBACK(src, PROC_REF(power_change)), cooldown_time) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 28a3a5e36d..c93d363814 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -63,7 +63,7 @@ /datum/material/plastic, /datum/material/adamantine, /datum/material/mythril - ), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) + ), 0, TRUE, null, null, CALLBACK(src, PROC_REF(AfterMaterialInsert))) . = ..() wires = new /datum/wires/autolathe(src) @@ -198,7 +198,7 @@ if(materials.materials[i] > 0) list_to_show += i - used_material = input("Choose [used_material]", "Custom Material") as null|anything in sortList(list_to_show, /proc/cmp_typepaths_asc) + used_material = input("Choose [used_material]", "Custom Material") as null|anything in sortList(list_to_show, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!used_material) return //Didn't pick any material, so you can't build shit either. custom_materials[used_material] += amount_needed @@ -210,7 +210,7 @@ use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 - addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) + addtimer(CALLBACK(src, PROC_REF(make_item), power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) else to_chat(usr, "Not enough materials for this operation.") diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 67206e2a25..f85d9ef8c1 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -177,7 +177,7 @@ if(device) device.pulsed() - addtimer(CALLBACK(src, /atom/.proc/update_icon), 15) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 15) /obj/machinery/button/door name = "door button" diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 33f10eaf41..4a9d54654a 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -144,7 +144,7 @@ set_light(0) emped = emped+1 //Increase the number of consecutive EMP's update_icon() - addtimer(CALLBACK(src, .proc/post_emp_reset, emped, network), 90 SECONDS) + addtimer(CALLBACK(src, PROC_REF(post_emp_reset), emped, network), 90 SECONDS) for(var/i in GLOB.player_list) var/mob/M = i if (M.client.eye == src) @@ -164,7 +164,7 @@ if(can_use()) GLOB.cameranet.addCamera(src) emped = 0 //Resets the consecutive EMP count - addtimer(CALLBACK(src, .proc/cancelCameraAlarm), 100) + addtimer(CALLBACK(src, PROC_REF(cancelCameraAlarm)), 100) /obj/machinery/camera/ex_act(severity, target) if(invuln) @@ -406,7 +406,7 @@ if(status) change_msg = "reactivates" triggerCameraAlarm() - addtimer(CALLBACK(src, .proc/cancelCameraAlarm), 100) + addtimer(CALLBACK(src, PROC_REF(cancelCameraAlarm)), 100) if(displaymessage) if(user) visible_message("[user] [change_msg] [src]!") diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 1b4b01f204..04a4b18894 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -86,7 +86,7 @@ to_chat(U, "Now tracking [target.get_visible_name()] on camera.") - INVOKE_ASYNC(src, .proc/do_track, target, U) + INVOKE_ASYNC(src, PROC_REF(do_track), target, U) /mob/living/silicon/ai/proc/do_track(mob/living/target, mob/living/silicon/ai/U) var/cameraticks = 0 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 55d10e2ffa..0ffb64963e 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -174,7 +174,7 @@ if(G.suiciding) // The ghost came from a body that is suiciding. return NONE if(clonemind.damnation_type) //Can't clone the damned. - INVOKE_ASYNC(src, .proc/horrifyingsound) + INVOKE_ASYNC(src, PROC_REF(horrifyingsound)) mess = TRUE icon_state = "pod_g" update_icon() diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm index 69a5af9b9c..edb625f026 100644 --- a/code/game/machinery/computer/arena.dm +++ b/code/game/machinery/computer/arena.dm @@ -234,7 +234,7 @@ for(var/mob/M in all_contestants()) to_chat(M,"The gates will open in [timetext]!") start_time = world.time + start_delay - addtimer(CALLBACK(src,.proc/begin),start_delay) + addtimer(CALLBACK(src,PROC_REF(begin)),start_delay) for(var/team in teams) var/obj/machinery/arena_spawn/team_spawn = get_spawn(team) var/obj/effect/countdown/arena/A = new(team_spawn) @@ -261,9 +261,9 @@ if(D.id != arena_id) continue if(closed) - INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/close) + INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) else - INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/open) + INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) /obj/machinery/computer/arena/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 35ba1a21e4..478d69a8cd 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -128,7 +128,7 @@ user.clear_fullscreen("flash", 5) watchers[user] = C use_power(50) - addtimer(CALLBACK(src, .proc/use_camera_console, user), 5) + addtimer(CALLBACK(src, PROC_REF(use_camera_console), user), 5) else user.unset_machine() @@ -231,7 +231,7 @@ /obj/machinery/computer/security/telescreen/entertainment/Initialize() . = ..() - RegisterSignal(src, COMSIG_CLICK, .proc/BigClick) + RegisterSignal(src, COMSIG_CLICK, PROC_REF(BigClick)) // Bypass clickchain to allow humans to use the telescreen from a distance /obj/machinery/computer/security/telescreen/entertainment/proc/BigClick() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index d7fb302790..d6564a57f9 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -357,7 +357,7 @@ playsound(src, 'sound/blank.ogg', 50, FALSE) say("Initiating scan...") - addtimer(CALLBACK(src, .proc/do_scan, usr, body_only), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_scan), usr, body_only), 2 SECONDS) //No locking an open scanner. else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index 1b8227195e..de34d2dff4 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -104,7 +104,7 @@ if("teleport") if(!teleporter || !beacon) return - addtimer(CALLBACK(src, .proc/teleport, usr), 5) + addtimer(CALLBACK(src, PROC_REF(teleport), usr), 5) /obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/scan_machinery() teleporter = findteleporter() diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 6ab3755c47..9586dc80e6 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -47,7 +47,7 @@ dat += "
No cyborg units detected within access parameters.


" else if(robo_list.len > 1) - sortTim(robo_list, /proc/cmp_text_asc) + sortTim(robo_list, GLOBAL_PROC_REF(cmp_text_asc)) for(var/ai_unit in robo_list) dat += "

[ai_unit]

" var/spacer diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 2800f0cc4d..af1032e818 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -206,7 +206,7 @@ for(var/obj/item/co in replacer) part_list += co //Sort the parts. This ensures that higher tier items are applied first. - part_list = sortTim(part_list, /proc/cmp_rped_sort) + part_list = sortTim(part_list, GLOBAL_PROC_REF(cmp_rped_sort)) for(var/path in req_components) while(req_components[path] > 0 && (locate(path) in part_list)) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 7aeffead96..4023156c18 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -280,7 +280,7 @@ glow.set_light_color(LIGHT_COLOR_RED) glow.even_cycle = !glow.even_cycle if(prob(2)) // Unique effects for the dance floor that show up randomly to mix things up - INVOKE_ASYNC(src, .proc/hierofunk) + INVOKE_ASYNC(src, PROC_REF(hierofunk)) sleep(selection.song_beat) if(QDELETED(src)) return @@ -301,7 +301,7 @@ /obj/machinery/jukebox/disco/proc/dance2(mob/living/M) for(var/i in 0 to 9) - dance_rotate(M, CALLBACK(M, /mob.proc/dance_flip)) + dance_rotate(M, CALLBACK(M, TYPE_PROC_REF(/mob, dance_flip))) sleep(20) /mob/proc/dance_flip() diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 8768702a82..a97721e3af 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -129,7 +129,7 @@ /obj/structure/barricade/security/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/deploy), deploy_time) + addtimer(CALLBACK(src, PROC_REF(deploy)), deploy_time) /obj/structure/barricade/security/proc/deploy() icon_state = "barrier1" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 9703418a37..cb30959c56 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -102,7 +102,7 @@ set_frequency(frequency) if(closeOtherId != null) - addtimer(CALLBACK(.proc/update_other_id), 5) + addtimer(CALLBACK(PROC_REF(update_other_id)), 5) if(glass) airlock_material = "glass" if(security_level > AIRLOCK_SECURITY_METAL) @@ -118,7 +118,7 @@ diag_hud.add_to_hud(src) diag_hud_set_electrified() - RegisterSignal(src, COMSIG_MACHINERY_BROKEN, .proc/on_break) + RegisterSignal(src, COMSIG_MACHINERY_BROKEN, PROC_REF(on_break)) return INITIALIZE_HINT_LATELOAD @@ -215,9 +215,9 @@ return if(density) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) else - INVOKE_ASYNC(src, .proc/close) + INVOKE_ASYNC(src, PROC_REF(close)) if("bolt") if(command_value == "on" && locked) @@ -325,7 +325,7 @@ if(cyclelinkedairlock.operating) cyclelinkedairlock.delayed_close_requested = TRUE else - addtimer(CALLBACK(cyclelinkedairlock, .proc/close), 2) + addtimer(CALLBACK(cyclelinkedairlock, PROC_REF(close)), 2) ..() /obj/machinery/door/airlock/proc/isElectrified() @@ -382,7 +382,7 @@ secondsBackupPowerLost = 10 if(!spawnPowerRestoreRunning) spawnPowerRestoreRunning = TRUE - INVOKE_ASYNC(src, .proc/handlePowerRestore) + INVOKE_ASYNC(src, PROC_REF(handlePowerRestore)) update_icon() /obj/machinery/door/airlock/proc/loseBackupPower() @@ -390,7 +390,7 @@ secondsBackupPowerLost = 60 if(!spawnPowerRestoreRunning) spawnPowerRestoreRunning = TRUE - INVOKE_ASYNC(src, .proc/handlePowerRestore) + INVOKE_ASYNC(src, PROC_REF(handlePowerRestore)) update_icon() /obj/machinery/door/airlock/proc/regainBackupPower() @@ -956,7 +956,7 @@ user.visible_message("[user] is [welded ? "unwelding":"welding"] the airlock.", \ "I begin [welded ? "unwelding":"welding"] the airlock...", \ "I hear welding.") - if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) + if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, PROC_REF(weld_checks), W, user))) welded = !welded user.visible_message("[user.name] has [welded? "welded shut":"unwelded"] [src].", \ "I [welded ? "weld the airlock shut":"unweld the airlock"].") @@ -968,7 +968,7 @@ user.visible_message("[user] is welding the airlock.", \ "I begin repairing the airlock...", \ "I hear welding.") - if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) + if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, PROC_REF(weld_checks), W, user))) obj_integrity = max_integrity stat &= ~BROKEN user.visible_message("[user.name] has repaired [src].", \ @@ -1023,7 +1023,7 @@ if(!F.wielded) to_chat(user, "I need to be wielding the fire axe to do that!") return - INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) + INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) /obj/machinery/door/airlock/open(forced=0) @@ -1062,7 +1062,7 @@ operating = FALSE if(delayed_close_requested) delayed_close_requested = FALSE - addtimer(CALLBACK(src, .proc/close), 1) + addtimer(CALLBACK(src, PROC_REF(close)), 1) return TRUE @@ -1276,7 +1276,7 @@ secondsElectrified = seconds diag_hud_set_electrified() if(secondsElectrified > MACHINE_NOT_ELECTRIFIED) - INVOKE_ASYNC(src, .proc/electrified_loop) + INVOKE_ASYNC(src, PROC_REF(electrified_loop)) if(user) var/message diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index b9a405fe24..a777ca997c 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -90,7 +90,7 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, close)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) @@ -119,7 +119,7 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(!door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, open)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 0726795b45..37353f6c97 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -244,12 +244,12 @@ if (. & EMP_PROTECT_SELF) return if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) ) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) if(prob(severity*10 - 20)) if(secondsElectrified == MACHINE_NOT_ELECTRIFIED) secondsElectrified = MACHINE_ELECTRIFIED_PERMANENT LAZYADD(shockedby, "\[[time_stamp()]\]EM Pulse") - addtimer(CALLBACK(src, .proc/unelectrify), 300) + addtimer(CALLBACK(src, PROC_REF(unelectrify)), 300) /obj/machinery/door/proc/unelectrify() secondsElectrified = MACHINE_NOT_ELECTRIFIED @@ -296,7 +296,7 @@ air_update_turf(1) update_freelook_sight() if(autoclose) - addtimer(CALLBACK(src, .proc/close), autoclose) + addtimer(CALLBACK(src, PROC_REF(close)), autoclose) return 1 /obj/machinery/door/proc/close() @@ -364,7 +364,7 @@ close() /obj/machinery/door/proc/autoclose_in(wait) - addtimer(CALLBACK(src, .proc/autoclose), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(autoclose)), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE) /obj/machinery/door/proc/requiresID() return 1 diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 74d6e634d7..70f194bd2f 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -37,9 +37,9 @@ /obj/machinery/door/poddoor/shuttledock/proc/check() var/turf/T = get_step(src, checkdir) if(!istype(T, turftype)) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) else - INVOKE_ASYNC(src, .proc/close) + INVOKE_ASYNC(src, PROC_REF(close)) /obj/machinery/door/poddoor/incinerator_toxmix name = "combustion chamber vent" diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index bb4f477862..999dbf89b3 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -319,11 +319,11 @@ return if(density) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) else - INVOKE_ASYNC(src, .proc/close) + INVOKE_ASYNC(src, PROC_REF(close)) if("touch") - INVOKE_ASYNC(src, .proc/open_and_close) + INVOKE_ASYNC(src, PROC_REF(open_and_close)) /obj/machinery/door/window/brigdoor name = "secure door" diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index bbf03126df..d5feada9b2 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -19,7 +19,7 @@ GLOBAL_LIST_EMPTY(doppler_arrays) /obj/machinery/doppler_array/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src,.proc/rot_message)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src,PROC_REF(rot_message))) /obj/machinery/doppler_array/Destroy() GLOB.doppler_arrays -= src diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 05d9062ebe..63c879ef0e 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -205,7 +205,7 @@ goIdle(TRUE) return A.unbolt() - INVOKE_ASYNC(src, .proc/do_openDoor, A) + INVOKE_ASYNC(src, PROC_REF(do_openDoor), A) /obj/machinery/doorButtons/airlock_controller/proc/do_openDoor(obj/machinery/door/airlock/A) if(A && A.open()) diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 6fd351bcff..5f677ad62c 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -48,10 +48,10 @@ if(program) program.receive_user_command(href_list["command"]) - addtimer(CALLBACK(program, /datum/computer/file/embedded_program.proc/process), 5) + addtimer(CALLBACK(program, TYPE_PROC_REF(/datum/computer/file/embedded_program, process)), 5) usr.set_machine(src) - addtimer(CALLBACK(src, .proc/updateDialog), 5) + addtimer(CALLBACK(src, PROC_REF(updateDialog)), 5) /obj/machinery/embedded_controller/process() if(program) diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm index 26f79ec8d0..051e1bdcfe 100644 --- a/code/game/machinery/exp_cloner.dm +++ b/code/game/machinery/exp_cloner.dm @@ -234,7 +234,7 @@ playsound(src, 'sound/blank.ogg', 50, FALSE) say("Initiating scan...") - addtimer(CALLBACK(src, .proc/do_clone), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_clone)), 2 SECONDS) //No locking an open scanner. else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) diff --git a/code/game/machinery/fat_sucker.dm b/code/game/machinery/fat_sucker.dm index 198e5fb695..5c2815e1e3 100644 --- a/code/game/machinery/fat_sucker.dm +++ b/code/game/machinery/fat_sucker.dm @@ -58,7 +58,7 @@ occupant = null return to_chat(occupant, "I enter [src].") - addtimer(CALLBACK(src, .proc/start_extracting), 20, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(start_extracting)), 20, TIMER_OVERRIDE|TIMER_UNIQUE) update_icon() /obj/machinery/fat_sucker/open_machine(mob/user) diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index caf640d3c3..52a71304de 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -88,7 +88,7 @@ visible_message("The [name] begins warming up!") say("Initializing harvest protocol.") update_icon(TRUE) - addtimer(CALLBACK(src, .proc/harvest), interval) + addtimer(CALLBACK(src, PROC_REF(harvest)), interval) /obj/machinery/harvester/proc/harvest() update_icon() @@ -122,7 +122,7 @@ operation_order.Remove(BP) break use_power(5000) - addtimer(CALLBACK(src, .proc/harvest), interval) + addtimer(CALLBACK(src, PROC_REF(harvest)), interval) /obj/machinery/harvester/proc/end_harvesting() harvesting = FALSE diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 87df3e78e5..fb5b0f9978 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -640,7 +640,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ if(HOLORECORD_SOUND) playsound(src,entry[2],50,TRUE) if(HOLORECORD_DELAY) - addtimer(CALLBACK(src,.proc/replay_entry,entry_number+1),entry[2]) + addtimer(CALLBACK(src,PROC_REF(replay_entry),entry_number+1),entry[2]) return if(HOLORECORD_LANGUAGE) var/datum/language_holder/holder = replay_holo.get_language_holder() diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 265085ddd6..dc818f9f1b 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -106,7 +106,7 @@ use_power(power) flick("limbgrower_fill",src) icon_state = "limbgrower_idleon" - addtimer(CALLBACK(src, .proc/build_item),32*prod_coeff) + addtimer(CALLBACK(src, PROC_REF(build_item)),32*prod_coeff) else to_chat(usr, "The limb grower is busy. Please wait for completion of previous operation.") diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index b774ee6ae7..c62bccbba1 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -129,7 +129,7 @@ on = !on if(on) - INVOKE_ASYNC(src, .proc/magnetic_process) + INVOKE_ASYNC(src, PROC_REF(magnetic_process)) @@ -315,7 +315,7 @@ if("togglemoving") moving = !moving if(moving) - INVOKE_ASYNC(src, .proc/MagnetMove) + INVOKE_ASYNC(src, PROC_REF(MagnetMove)) updateUsrDialog() @@ -352,7 +352,7 @@ pathpos++ // increase iterator // Broadcast the signal - INVOKE_ASYNC(CALLBACK(radio_connection, /datum/radio_frequency.proc/post_signal, src, signal, RADIO_MAGNETS)) + INVOKE_ASYNC(CALLBACK(radio_connection, TYPE_PROC_REF(/datum/radio_frequency, post_signal), src, signal, RADIO_MAGNETS)) if(speed == 10) sleep(1) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 05543057d9..ed890f1c82 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -849,7 +849,7 @@ GLOBAL_LIST_EMPTY(allCasters) say("Breaking news from [channel]!") alert = TRUE update_icon() - addtimer(CALLBACK(src,.proc/remove_alert),alert_delay,TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src,PROC_REF(remove_alert)),alert_delay,TIMER_UNIQUE|TIMER_OVERRIDE) playsound(loc, 'sound/blank.ogg', 75, TRUE) else say("Attention! Wanted issue distributed!") diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 8c5734b14f..76cf22e60b 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -97,7 +97,7 @@ base.layer = NOT_HIGH_OBJ_LAYER underlays += base if(!has_cover) - INVOKE_ASYNC(src, .proc/popUp) + INVOKE_ASYNC(src, PROC_REF(popUp)) /obj/machinery/porta_turret/update_icon_state() if(!anchored) @@ -323,7 +323,7 @@ spark_system.start() if(on && !(turret_flags & TURRET_FLAG_SHOOT_ALL_REACT) && !(obj_flags & EMAGGED)) turret_flags |= TURRET_FLAG_SHOOT_ALL_REACT - addtimer(CALLBACK(src, .proc/reset_attacked), 60) + addtimer(CALLBACK(src, PROC_REF(reset_attacked)), 60) /obj/machinery/porta_turret/proc/reset_attacked() turret_flags &= ~TURRET_FLAG_SHOOT_ALL_REACT @@ -707,9 +707,9 @@ if(target) setDir(get_dir(base, target))//even if you can't shoot, follow the target shootAt(target) - addtimer(CALLBACK(src, .proc/shootAt, target), 5) - addtimer(CALLBACK(src, .proc/shootAt, target), 10) - addtimer(CALLBACK(src, .proc/shootAt, target), 15) + addtimer(CALLBACK(src, PROC_REF(shootAt), target), 5) + addtimer(CALLBACK(src, PROC_REF(shootAt), target), 10) + addtimer(CALLBACK(src, PROC_REF(shootAt), target), 15) return TRUE /obj/machinery/porta_turret/ai diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index cf2680154a..5daad5d64a 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -150,7 +150,7 @@ safety_mode = TRUE update_icon() L.forceMove(loc) - addtimer(CALLBACK(src, .proc/reboot), SAFETY_COOLDOWN) + addtimer(CALLBACK(src, PROC_REF(reboot)), SAFETY_COOLDOWN) /obj/machinery/recycler/proc/reboot() playsound(src, 'sound/blank.ogg', 50, FALSE) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 0364794358..8ca03d67f4 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -289,7 +289,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) Radio.set_frequency(radio_freq) Radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq) update_icon() - addtimer(CALLBACK(src, .proc/clear_emergency), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(clear_emergency)), 5 MINUTES) if(href_list["send"] && message && to_department && priority) diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index 869579a15c..d3f07ce878 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -141,7 +141,7 @@ playsound(src, 'sound/blank.ogg', 70) playsound(src, 'sound/blank.ogg', 50) - addtimer(CALLBACK(src, .proc/play, user, player_card, chosen_bet_type, chosen_bet_amount, potential_payout), 4) //Animation first + addtimer(CALLBACK(src, PROC_REF(play), user, player_card, chosen_bet_type, chosen_bet_amount, potential_payout), 4) //Animation first return TRUE else var/obj/item/card/id/new_card = W @@ -171,8 +171,8 @@ var/rolled_number = rand(0, 36) playsound(src, 'sound/blank.ogg', 50) - addtimer(CALLBACK(src, .proc/finish_play, player_id, bet_type, bet_amount, payout, rolled_number), 34) //4 deciseconds more so the animation can play - addtimer(CALLBACK(src, .proc/finish_play_animation), 30) + addtimer(CALLBACK(src, PROC_REF(finish_play), player_id, bet_type, bet_amount, payout, rolled_number), 34) //4 deciseconds more so the animation can play + addtimer(CALLBACK(src, PROC_REF(finish_play_animation)), 30) /obj/machinery/roulette/proc/finish_play_animation() icon_state = "idle" @@ -244,7 +244,7 @@ var/obj/item/cash = new coin_to_drop(drop_loc) playsound(cash, pick(list('sound/blank.ogg')), 40, TRUE) - addtimer(CALLBACK(src, .proc/drop_coin), 3) //Recursion time + addtimer(CALLBACK(src, PROC_REF(drop_coin)), 3) //Recursion time ///Fills a list of coins that should be dropped. @@ -366,7 +366,7 @@ return loc.visible_message("\The [src] begins to beep loudly!") used = TRUE - addtimer(CALLBACK(src, .proc/launch_payload), 40) + addtimer(CALLBACK(src, PROC_REF(launch_payload)), 40) /obj/item/roulette_wheel_beacon/proc/launch_payload() var/obj/structure/closet/supplypod/centcompod/toLaunch = new() diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm index 68f742f28c..a55ac2f5a2 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -49,7 +49,7 @@ deltimer(scanline_timer) add_overlay(type) if(duration) - scanline_timer = addtimer(CALLBACK(src, .proc/set_scanline, "passive"), duration, TIMER_STOPPABLE) + scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) /obj/machinery/scanner_gate/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/card = W.GetID() diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index e12acdeb8c..24bf5abfc3 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -209,9 +209,9 @@ update_icon() updateDialog() - var/spin_loop = addtimer(CALLBACK(src, .proc/do_spin), 2, TIMER_LOOP|TIMER_STOPPABLE) + var/spin_loop = addtimer(CALLBACK(src, PROC_REF(do_spin)), 2, TIMER_LOOP|TIMER_STOPPABLE) - addtimer(CALLBACK(src, .proc/finish_spinning, spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) + addtimer(CALLBACK(src, PROC_REF(finish_spinning), spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code. /obj/machinery/computer/slot_machine/proc/do_spin() diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index e86adc5a6e..639561a190 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -251,7 +251,7 @@ else mob_occupant.adjustFireLoss(rand(10, 16)) mob_occupant.emote("scream") - addtimer(CALLBACK(src, .proc/cook), 50) + addtimer(CALLBACK(src, PROC_REF(cook)), 50) else uv_cycles = initial(uv_cycles) uv = FALSE @@ -340,7 +340,7 @@ if(locked) visible_message("I see [user] kicking against the doors of [src]!", \ "I start kicking against the doors...") - addtimer(CALLBACK(src, .proc/resist_open, user), 300) + addtimer(CALLBACK(src, PROC_REF(resist_open), user), 300) else open_machine() dump_contents() diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 71416011ee..a37e3778c4 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -399,7 +399,7 @@ chem_splash(get_turf(src), spread_range, list(reactants), temp_boost) // Detonate it again in one second, until it's out of juice. - addtimer(CALLBACK(src, .proc/detonate), 10) + addtimer(CALLBACK(src, PROC_REF(detonate)), 10) // If it's not a time release bomb, do normal explosion diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 156f7da37d..1607776775 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -59,7 +59,7 @@ // Will help make emagging the console not so easy to get away with. MK.info += "

£%@%(*$%&(£&?*(%&£/{}" var/time = 100 * length(linkedServer.decryptkey) - addtimer(CALLBACK(src, .proc/UnmagConsole), time) + addtimer(CALLBACK(src, PROC_REF(UnmagConsole)), time) message = rebootmsg else to_chat(user, "A no server error appears on the screen.") diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index d37c42a349..656db981c0 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -48,7 +48,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages if(!GLOB.message_delay) GLOB.message_delay = TRUE - addtimer(CALLBACK(GLOBAL_PROC, .proc/end_message_delay), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(end_message_delay)), 1 SECONDS) /* --- Do a snazzy animation! --- */ flick("broadcaster_send", src) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 38007b2d19..2a297ee2d1 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -148,7 +148,7 @@ GLOBAL_LIST_EMPTY(telecomms_list) if(prob(100/severity) && !(stat & EMPED)) stat |= EMPED var/duration = (300 * 10)/severity - addtimer(CALLBACK(src, .proc/de_emp), rand(duration - 20, duration + 20)) + addtimer(CALLBACK(src, PROC_REF(de_emp)), rand(duration - 20, duration + 20)) /obj/machinery/telecomms/proc/de_emp() stat &= ~EMPED diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index d43d3450a5..09ecd72b30 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -99,7 +99,7 @@ R.connected_ai = masterAI R.lawsync() R.lawupdate = 1 - addtimer(CALLBACK(src, .proc/unlock_new_robot, R), 50) + addtimer(CALLBACK(src, PROC_REF(unlock_new_robot), R), 50) /obj/machinery/transformer/proc/unlock_new_robot(mob/living/silicon/robot/R) playsound(src.loc, 'sound/blank.ogg', 50, FALSE) diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index fb09415141..d1be4baacb 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -124,7 +124,7 @@ GLOBAL_LIST_INIT(dye_registry, list( /obj/machinery/washing_machine/ComponentInitialize() . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_blood)) /obj/machinery/washing_machine/examine(mob/user) . = ..() @@ -144,7 +144,7 @@ GLOBAL_LIST_INIT(dye_registry, list( return busy = TRUE update_icon() - addtimer(CALLBACK(src, .proc/wash_cycle), 200) + addtimer(CALLBACK(src, PROC_REF(wash_cycle)), 200) START_PROCESSING(SSfastprocess, src) diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 56fd4a3755..49a7120657 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -17,8 +17,8 @@ shield = new/obj/durand_shield shield.chassis = src shield.layer = layer - RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, .proc/relay) - RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, .proc/prehit) + RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, PROC_REF(relay)) + RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, PROC_REF(prehit)) . = ..() /obj/mecha/combat/durand/Destroy() @@ -144,7 +144,7 @@ own integrity back to max. Shield is automatically dropped if we run out of powe /obj/durand_shield/Initialize() . = ..() - RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, .proc/activate) + RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, PROC_REF(activate)) /obj/durand_shield/Destroy() if(chassis) diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index 27cb34b6f1..603b77b4bf 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -98,7 +98,7 @@ /obj/item/mecha_parts/mecha_equipment/proc/start_cooldown() set_ready_state(0) chassis.use_power(energy_drain) - addtimer(CALLBACK(src, .proc/set_ready_state, 1), equip_cooldown) + addtimer(CALLBACK(src, PROC_REF(set_ready_state), 1), equip_cooldown) /obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target) if(!chassis) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 5fe7cca7df..ac70f8fb63 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -121,7 +121,7 @@ var/mob/M = A if(M.mob_negates_gravity()) continue - INVOKE_ASYNC(src, .proc/do_scatter, A, target) + INVOKE_ASYNC(src, PROC_REF(do_scatter), A, target) var/turf/T = get_turf(target) log_game("[key_name(chassis.occupant)] used a Gravitational Catapult repulse wave on [AREACOORD(T)]") diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 7fd75f322c..3076bb1c09 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -72,7 +72,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/start_cooldown() set_ready_state(0) chassis.use_power(energy_drain*get_shot_amount()) - addtimer(CALLBACK(src, .proc/set_ready_state, 1), equip_cooldown) + addtimer(CALLBACK(src, PROC_REF(set_ready_state), 1), equip_cooldown) /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser equip_cooldown = 8 @@ -396,7 +396,7 @@ var/turf/T = get_turf(src) message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] fired a [src] in [ADMIN_VERBOSEJMP(T)]") log_game("[key_name(chassis.occupant)] fired a [src] in [AREACOORD(T)]") - addtimer(CALLBACK(F, /obj/item/grenade/flashbang.proc/prime), det_time) + addtimer(CALLBACK(F, TYPE_PROC_REF(/obj/item/grenade/flashbang, prime)), det_time) /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze name = "\improper SOB-3 grenade launcher" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index a827c9920b..6d478567db 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -362,7 +362,7 @@ add_part_set_to_queue(href_list["partset_to_queue"]) return update_queue_on_page() if(href_list["process_queue"]) - INVOKE_ASYNC(src, .proc/do_process_queue) + INVOKE_ASYNC(src, PROC_REF(do_process_queue)) if(href_list["clear_temp"]) temp = null if(href_list["screen"]) @@ -423,7 +423,7 @@ /obj/machinery/mecha_part_fabricator/proc/AfterMaterialInsert(item_inserted, id_inserted, amount_inserted) var/datum/material/M = id_inserted add_overlay("fab-load-[M.name]") - addtimer(CALLBACK(src, /atom/proc/cut_overlay, "fab-load-[M.name]"), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "fab-load-[M.name]"), 10) updateUsrDialog() /obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 938d124f6f..6844a454f2 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -459,7 +459,7 @@ for(var/mob/M in get_hearers_in_view(7,src)) if(M.client) speech_bubble_recipients.Add(M.client) - INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) //////////////////////////// ///// Action processing //// diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index c3686e0519..56c43ecad1 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -103,7 +103,7 @@ var/obj/mecha/M = in_mecha() if(M) M.emp_act(EMP_HEAVY) - addtimer(CALLBACK(src, /obj/item/mecha_parts/mecha_tracking/proc/recharge), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/mecha_parts/mecha_tracking, recharge)), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) recharging = 1 /obj/item/mecha_parts/mecha_tracking/proc/recharge() diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 9bf8236597..2035f3eb6d 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -155,7 +155,7 @@ occupant?.update_mouse_pointer() if(!equipment_disabled && occupant) //prevent spamming this message with back-to-back EMPs to_chat(occupant, "Error -- Connection to equipment control unit has been lost.") - addtimer(CALLBACK(src, /obj/mecha/proc/restore_equipment), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/mecha, restore_equipment)), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) equipment_disabled = 1 /obj/mecha/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 77a7151897..0b234d23b7 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -406,7 +406,7 @@ if(href_list["repair_int_control_lost"]) occupant_message("Recalibrating coordination system...") log_message("Recalibration of coordination system started.", LOG_MECHA) - addtimer(CALLBACK(src, .proc/stationary_repair, loc), 100, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(stationary_repair), loc), 100, TIMER_UNIQUE) ///Repairs internal damage if the mech hasn't moved. /obj/mecha/proc/stationary_repair(location) diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 32eb173355..4f2baaac1d 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -228,7 +228,7 @@ if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect var/mob/M = A if(M.client) - INVOKE_ASYNC(src, .proc/blue_effect, M) + INVOKE_ASYNC(src, PROC_REF(blue_effect), M) /obj/effect/anomaly/bluespace/proc/blue_effect(mob/M) var/obj/blueeffect = new /obj(src) @@ -262,7 +262,7 @@ T.atmos_spawn_air("o2=5;plasma=5;TEMP=1000") /obj/effect/anomaly/pyro/detonate() - INVOKE_ASYNC(src, .proc/makepyroslime) + INVOKE_ASYNC(src, PROC_REF(makepyroslime)) /obj/effect/anomaly/pyro/proc/makepyroslime() var/turf/open/T = get_turf(src) diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm index ba9849bfa2..5f96d399a1 100644 --- a/code/game/objects/effects/blessing.dm +++ b/code/game/objects/effects/blessing.dm @@ -16,7 +16,7 @@ I.alpha = 64 I.appearance_flags = RESET_ALPHA add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I) - RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, .proc/block_cult_teleport) + RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, PROC_REF(block_cult_teleport)) /obj/effect/blessing/Destroy() UnregisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 06d3fca9c7..1de95a146b 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -67,7 +67,7 @@ name = "poster - [name]" desc = "" - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 300), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, AddComponent), /datum/component/beauty, 300), 0) /obj/structure/sign/poster/proc/randomise(base_type) var/list/poster_types = subtypesof(base_type) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 2f4634c6e3..8543da9ec2 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -27,7 +27,7 @@ if(LAZYLEN(diseases_to_add)) AddComponent(/datum/component/infective, diseases_to_add) -// addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, beauty), 0) +// addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, AddComponent), /datum/component/beauty, beauty), 0) var/turf/T = get_turf(src) if(T && is_station_level(T.z)) diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 2000a0b072..54566a8886 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -18,7 +18,7 @@ return . pixel_x = rand(-5,5) pixel_y = rand(5,5) - blood_timer = addtimer(CALLBACK(src, .proc/become_dry), rand(5 MINUTES,8 MINUTES), TIMER_STOPPABLE) + blood_timer = addtimer(CALLBACK(src, PROC_REF(become_dry)), rand(5 MINUTES,8 MINUTES), TIMER_STOPPABLE) /obj/effect/decal/cleanable/blood/proc/become_dry() @@ -89,7 +89,7 @@ . = ..() if(. == INITIALIZE_HINT_QDEL) return . - blood_timer = addtimer(CALLBACK(src, .proc/become_dry), rand(5 MINUTES,8 MINUTES), TIMER_STOPPABLE) + blood_timer = addtimer(CALLBACK(src, PROC_REF(become_dry)), rand(5 MINUTES,8 MINUTES), TIMER_STOPPABLE) /obj/effect/decal/cleanable/trail_holder/Destroy() deltimer(blood_timer) diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index e2bc6f54ec..e9e86bbe8f 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -54,7 +54,7 @@ would spawn and follow the beaker, even if it is carried or thrown. for(var/i in 1 to number) if(total_effects > 20) return - INVOKE_ASYNC(src, .proc/generate_effect) + INVOKE_ASYNC(src, PROC_REF(generate_effect)) /datum/effect_system/proc/generate_effect() if(holder) @@ -70,7 +70,7 @@ would spawn and follow the beaker, even if it is carried or thrown. for(var/j in 1 to steps_amt) sleep(5) step(E,direction) - addtimer(CALLBACK(src, .proc/decrement_total_effect), 20) + addtimer(CALLBACK(src, PROC_REF(decrement_total_effect)), 20) /datum/effect_system/proc/decrement_total_effect() total_effects-- diff --git a/code/game/objects/effects/effect_system/effects_explosion.dm b/code/game/objects/effects/effect_system/effects_explosion.dm index c91df696e6..8169b0a2c8 100644 --- a/code/game/objects/effects/effect_system/effects_explosion.dm +++ b/code/game/objects/effects/effect_system/effects_explosion.dm @@ -59,4 +59,4 @@ S.start() /datum/effect_system/explosion/smoke/start() ..() - addtimer(CALLBACK(src, .proc/create_smoke), 5) + addtimer(CALLBACK(src, PROC_REF(create_smoke)), 5) diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 843645fe6a..1cc203184b 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -43,7 +43,7 @@ /obj/effect/particle_effect/smoke/proc/kill_smoke() STOP_PROCESSING(SSobj, src) - INVOKE_ASYNC(src, .proc/fade_out) + INVOKE_ASYNC(src, PROC_REF(fade_out)) QDEL_IN(src, 10) /obj/effect/particle_effect/smoke/process() @@ -65,7 +65,7 @@ if(C.smoke_delay) return 0 C.smoke_delay++ - addtimer(CALLBACK(src, .proc/remove_smoke_delay, C), 10) + addtimer(CALLBACK(src, PROC_REF(remove_smoke_delay), C), 10) return 1 /obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C) @@ -96,7 +96,7 @@ //the smoke spreads rapidly but not instantly for(var/obj/effect/particle_effect/smoke/SM in newsmokes) - addtimer(CALLBACK(SM, /obj/effect/particle_effect/smoke.proc/spread_smoke), 1) + addtimer(CALLBACK(SM, TYPE_PROC_REF(/obj/effect/particle_effect/smoke, spread_smoke)), 1) /datum/effect_system/smoke_spread diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 9371643adc..26ad88b45e 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -129,7 +129,7 @@ else //if on the floor, glowshroom on-floor sprite icon_state = base_icon_state */ -// addtimer(CALLBACK(src, .proc/Spread), delay) +// addtimer(CALLBACK(src, PROC_REF(Spread)), delay) /obj/structure/glowshroom/proc/Spread() var/turf/ownturf = get_turf(src) @@ -176,7 +176,7 @@ shrooms_planted++ //if we failed due to generation, don't try to plant one later if(shrooms_planted < myseed.yield) //if we didn't get all possible shrooms planted, try again later myseed.yield -= shrooms_planted - addtimer(CALLBACK(src, .proc/Spread), delay) + addtimer(CALLBACK(src, PROC_REF(Spread)), delay) /obj/structure/glowshroom/proc/CalcDir(turf/location = loc) var/direction = 16 diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 839b5c6e36..3d64b0aa05 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -722,9 +722,3 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) /obj/effect/landmark/underworldsafe // To prevent demons spawn camping will save a lot of ear rape. name = "safe zone" - -/obj/effect/landmark/underworldcoin/Initialize(mapload) - GLOB.underworldcoin += loc - return - - diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index bca4492ae6..8f8ad54872 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -125,7 +125,7 @@ var/static/list/red_splash = list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0) var/static/list/pure_red = list(0,0,0,0,0,0,0,0,0,1,0,0) - INVOKE_ASYNC(src, .proc/blood_delusion, victim) + INVOKE_ASYNC(src, PROC_REF(blood_delusion), victim) var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) victim.log_message("entered a blood frenzy", LOG_ATTACK) diff --git a/code/game/objects/effects/proximity.dm b/code/game/objects/effects/proximity.dm index 607921d562..b28e0c13d9 100644 --- a/code/game/objects/effects/proximity.dm +++ b/code/game/objects/effects/proximity.dm @@ -24,7 +24,7 @@ else if(hasprox_receiver == host) //Default case hasprox_receiver = H host = H - RegisterSignal(host, COMSIG_MOVABLE_MOVED, .proc/HandleMove) + RegisterSignal(host, COMSIG_MOVABLE_MOVED, PROC_REF(HandleMove)) last_host_loc = host.loc SetRange(current_range,TRUE) diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm index a6e0cf5906..111fcc4204 100644 --- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm +++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm @@ -15,5 +15,5 @@ message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].") log_game("An alien egg has been delivered to [AREACOORD(T)]") var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen." - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time)) return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 2167ded83f..fbc488ce8a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -808,7 +808,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force) thrownby = thrower - callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own + callback = CALLBACK(src, PROC_REF(after_throw), callback) //replace their callback with our own . = ..(target, range, speed, thrower, spin, diagonals_first, callback, force) @@ -1018,7 +1018,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if((item_flags & IN_INVENTORY || item_flags & IN_STORAGE) && usr.client.prefs.enable_tips && !QDELETED(src)) var/timedelay = usr.client.prefs.tip_delay/100 var/user = usr - tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. + tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. /obj/item/MouseExited() . = ..() @@ -1047,7 +1047,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay) // Create a callback with checks that would be called every tick by do_after. - var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) + var/datum/callback/tool_check = CALLBACK(src, PROC_REF(tool_check_callback), user, amount, extra_checks) if(ismob(target)) if(!do_mob(user, target, delay, extra_checks=tool_check)) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 1996aa9f59..cbf1610a8e 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -325,7 +325,7 @@ RLD "SOUTH" = image(icon = 'icons/mob/radial.dmi', icon_state = "csouth"), "WEST" = image(icon = 'icons/mob/radial.dmi', icon_state = "cwest") ) - var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(computerdirs) @@ -382,13 +382,13 @@ RLD "External Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/external/glass) ) - var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(airlockcat) if("Solid") if(advanced_airlock_setting == 1) - var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(airlockpaint) @@ -431,7 +431,7 @@ RLD if("Glass") if(advanced_airlock_setting == 1) - var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(airlockpaint) @@ -516,7 +516,7 @@ RLD choices += list( "Change Window Type" = image(icon = 'icons/mob/radial.dmi', icon_state = "windowtype") ) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(choice) @@ -568,7 +568,7 @@ RLD buzz loudly!","[src] begins \ vibrating violently!") // 5 seconds to get rid of it - addtimer(CALLBACK(src, .proc/detonate_pulse_explode), 50) + addtimer(CALLBACK(src, PROC_REF(detonate_pulse_explode)), 50) /obj/item/construction/rcd/proc/detonate_pulse_explode() explosion(src, 0, 0, 3, 1, flame_range = 1) @@ -870,7 +870,7 @@ RLD machinery_data["cost"][A] = initial(M.rcd_cost) machinery_data["delay"][A] = initial(M.rcd_delay) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 4affbb3b98..d80f742d57 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -151,7 +151,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/trigger) + RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, PROC_REF(trigger)) listeningTo = to_hook /obj/item/twohanded/rcl/proc/trigger(mob/user) @@ -236,7 +236,7 @@ /obj/item/twohanded/rcl/proc/showWiringGui(mob/user) var/list/choices = wiringGuiGenerateChoices(user) - wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, .proc/wiringGuiReact, user), radius = 42) + wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, PROC_REF(wiringGuiReact), user), radius = 42) /obj/item/twohanded/rcl/proc/wiringGuiUpdate(mob/user) if(!wiring_gui_menu) diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index 36e1efa52e..f5a5f8fa2b 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -19,14 +19,14 @@ ADD_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC) ADD_TRAIT(owner, TRAIT_XENO_IMMUNE, "xeno immune") owner.med_hud_set_status() - INVOKE_ASYNC(src, .proc/AddInfectionImages, owner) + INVOKE_ASYNC(src, PROC_REF(AddInfectionImages), owner) /obj/item/organ/body_egg/Remove(mob/living/carbon/M, special = 0) if(owner) REMOVE_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC) REMOVE_TRAIT(owner, TRAIT_XENO_IMMUNE, "xeno immune") owner.med_hud_set_status() - INVOKE_ASYNC(src, .proc/RemoveInfectionImages, owner) + INVOKE_ASYNC(src, PROC_REF(RemoveInfectionImages), owner) ..() /obj/item/organ/body_egg/on_death() diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 2400c69e60..37c74ff5f3 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -48,7 +48,7 @@ /obj/item/bodybag/bluespace/Initialize() . = ..() - RegisterSignal(src, COMSIG_ATOM_CANREACH, .proc/CanReachReact) + RegisterSignal(src, COMSIG_ATOM_CANREACH, PROC_REF(CanReachReact)) /obj/item/bodybag/bluespace/examine(mob/user) . = ..() diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 7d0a855b55..223ca3b26a 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -58,7 +58,7 @@ to_chat(user, "My name has been sent to my employers for approval.") // Autoapproves after a certain time - response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE) + response_timer_id = addtimer(CALLBACK(src, PROC_REF(rename_station), new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE) to_chat(GLOB.admins, "CUSTOM STATION RENAME:[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (REJECT) [ADMIN_CENTCOM_REPLY(user)]") /obj/item/station_charter/proc/reject_proposed(user) diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm index 0ae23014b7..28c4d78a7e 100644 --- a/code/game/objects/items/crab17.dm +++ b/code/game/objects/items/crab17.dm @@ -78,7 +78,7 @@ add_overlay("flaps") add_overlay("hatch") add_overlay("legs_retracted") - addtimer(CALLBACK(src, .proc/startUp), 50) + addtimer(CALLBACK(src, PROC_REF(startUp)), 50) QDEL_IN(src, 8 MINUTES) //Self destruct after 8 min @@ -171,7 +171,7 @@ if (account) // get_bank_account() may return FALSE account.transfer_money(B, amount) B.bank_card_talk("You have lost [percentage_lost * 100]% of your funds! A spacecoin credit deposit machine is located at: [get_area(src)].") - addtimer(CALLBACK(src, .proc/dump), 150) //Drain every 15 seconds + addtimer(CALLBACK(src, PROC_REF(dump)), 150) //Drain every 15 seconds /obj/structure/checkoutmachine/process() var/anydir = pick(GLOB.cardinals) @@ -208,7 +208,7 @@ /obj/effect/dumpeetTarget/Initialize(mapload, user) . = ..() bogdanoff = user - addtimer(CALLBACK(src, .proc/startLaunch), 100) + addtimer(CALLBACK(src, PROC_REF(startLaunch)), 100) sound_to_playing_players('sound/blank.ogg', 20) deadchat_broadcast("Protocol CRAB-17 has been activated. A space-coin market has been launched at the station!", turf_target = get_turf(src)) @@ -218,7 +218,7 @@ priority_announce("The spacecoin bubble has popped! Get to the credit deposit machine at [get_area(src)] and cash out before you lose all of your funds!", sender_override = "CRAB-17 Protocol") animate(DF, pixel_z = -8, time = 5, , easing = LINEAR_EASING) playsound(src, 'sound/blank.ogg', 70, TRUE, 6) - addtimer(CALLBACK(src, .proc/endLaunch), 5, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation + addtimer(CALLBACK(src, PROC_REF(endLaunch)), 5, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 7bcab85358..c460b89aae 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -228,7 +228,7 @@ return FALSE /obj/item/defibrillator/proc/cooldowncheck(mob/user) - addtimer(CALLBACK(src, .proc/finish_charging), cooldown_duration) + addtimer(CALLBACK(src, PROC_REF(finish_charging)), cooldown_duration) /obj/item/defibrillator/proc/finish_charging() if(cell) @@ -315,7 +315,7 @@ . = ..() if(!req_defib) return - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_range) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(check_range)) /obj/item/twohanded/shockpaddles/Moved() . = ..() diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index bc333e9c66..d57f2339fb 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -9,7 +9,7 @@ /obj/item/pda/clown/ComponentInitialize() . = ..() - AddComponent(/datum/component/slippery, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, .proc/AfterSlip)) + AddComponent(/datum/component/slippery, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, PROC_REF(AfterSlip))) /obj/item/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) if (istype(M) && (M.real_name != owner)) @@ -55,7 +55,7 @@ /obj/item/pda/ai/Initialize() . = ..() - RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, .proc/pda_no_detonate) + RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, PROC_REF(pda_no_detonate)) /obj/item/pda/medical name = "medical PDA" @@ -138,7 +138,7 @@ /obj/item/pda/captain/Initialize() . = ..() - RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, .proc/pda_no_detonate) + RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, PROC_REF(pda_no_detonate)) /obj/item/pda/cargo name = "cargo technician PDA" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 9c5ee73f6e..00ecb55d65 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -607,7 +607,7 @@ Code: active1 = null if("Send Signal") - INVOKE_ASYNC(radio, /obj/item/integrated_signaler.proc/send_activation) + INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/integrated_signaler, send_activation)) if("Signal Frequency") var/new_frequency = sanitize_frequency(radio.frequency + text2num(href_list["sfreq"])) diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm index f9a346c3e2..80693401d3 100644 --- a/code/game/objects/items/devices/desynchronizer.dm +++ b/code/game/objects/items/devices/desynchronizer.dm @@ -54,7 +54,7 @@ SEND_SIGNAL(AM, COMSIG_MOVABLE_SECLUDED_LOCATION) last_use = world.time icon_state = "desynchronizer-on" - addtimer(CALLBACK(src, .proc/resync), duration) + addtimer(CALLBACK(src, PROC_REF(resync)), duration) /obj/item/desynchronizer/proc/resync() new /obj/effect/temp_visual/desynchronizer(sync_holder.drop_location()) diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm index f1f6a48078..363d9e66c1 100644 --- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -43,7 +43,7 @@ maptext = "[circuits]" icon_state = "[initial(icon_state)]_recharging" var/recharge_time = min(600, circuit_cost * 5) //40W of cost for one fabrication = 20 seconds of recharge time; this is to prevent spamming - addtimer(CALLBACK(src, .proc/recharge), recharge_time) + addtimer(CALLBACK(src, PROC_REF(recharge)), recharge_time) return TRUE //The actual circuit magic itself is done on a per-object basis /obj/item/electroadaptive_pseudocircuit/afterattack(atom/target, mob/living/user, proximity) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index f578926a5f..6ca01e806c 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -136,7 +136,7 @@ if(user.used_intent.type == INTENT_HELP) if(!(obj_flags & EMAGGED)) user.visible_message("[user] scans [target] with [src].", "I scan [target]'s radiation levels with [src]...") - addtimer(CALLBACK(src, .proc/scan, target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents + addtimer(CALLBACK(src, PROC_REF(scan), target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents else user.visible_message("[user] scans [target] with [src].", "I project [src]'s stored radiation into [target]!") target.rad_act(radiation_count) @@ -217,7 +217,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT) - RegisterSignal(user, COMSIG_ATOM_RAD_ACT, .proc/redirect_rad_act) + RegisterSignal(user, COMSIG_ATOM_RAD_ACT, PROC_REF(redirect_rad_act)) listeningTo = user /obj/item/geiger_counter/cyborg/proc/redirect_rad_act(datum/source, amount) diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index ab1bebfe69..282e5a8edf 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -219,7 +219,7 @@ /obj/item/instrument/harmonica/equipped(mob/M, slot) . = ..() - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech, override = TRUE) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech), override = TRUE) /obj/item/instrument/harmonica/dropped(mob/M) . = ..() diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 0562df2d19..9c1a22a6ea 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -20,7 +20,7 @@ /obj/item/megaphone/equipped(mob/M, slot) . = ..() if (slot == SLOT_HANDS) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index a75e0e5bc2..af75845652 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -41,7 +41,7 @@ else if(!trigger_item) return can_trigger = FALSE - addtimer(CALLBACK(src, .proc/trigger), trigger_delay) + addtimer(CALLBACK(src, PROC_REF(trigger)), trigger_delay) /obj/item/pressure_plate/proc/trigger() can_trigger = TRUE diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 88fa62044f..be4e9f1345 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -199,7 +199,7 @@ spans = list(M.speech_span) if(!language) language = M.get_default_language() - INVOKE_ASYNC(src, .proc/talk_into_impl, M, message, channel, spans.Copy(), language) + INVOKE_ASYNC(src, PROC_REF(talk_into_impl), M, message, channel, spans.Copy(), language) return ITALICS | REDUCE_RANGE /obj/item/radio/proc/talk_into_impl(atom/movable/M, message, channel, list/spans, datum/language/language) @@ -267,7 +267,7 @@ // Non-subspace radios will check in a couple of seconds, and if the signal // was never received, send a mundane broadcast (no headsets). - addtimer(CALLBACK(src, .proc/backup_transmission, signal), 20) + addtimer(CALLBACK(src, PROC_REF(backup_transmission), signal), 20) /obj/item/radio/proc/backup_transmission(datum/signal/subspace/vocal/signal) var/turf/T = get_turf(src) @@ -357,7 +357,7 @@ for (var/ch_name in channels) channels[ch_name] = 0 on = FALSE - addtimer(CALLBACK(src, .proc/end_emp_effect, curremp), 200) + addtimer(CALLBACK(src, PROC_REF(end_emp_effect), curremp), 200) /obj/item/radio/proc/end_emp_effect(curremp) if(emped != curremp) //Don't fix it if it's been EMP'd again diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index 53e82bc8fe..0d91aea563 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -43,7 +43,7 @@ soundloop.stop() soundloop2.stop() to_chat(loc, "*ding*") - addtimer(CALLBACK(src, .proc/snap), 2) + addtimer(CALLBACK(src, PROC_REF(snap)), 2) /obj/item/reverse_bear_trap/attack_hand(mob/user) if(iscarbon(user)) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 5301d48605..eb8d76e26f 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -578,7 +578,7 @@ GENE SCANNER else to_chat(user, "[src]'s barometer function says a storm will land in approximately [butchertime(fixed)].") cooldown = TRUE - addtimer(CALLBACK(src,/obj/item/analyzer/proc/ping), cooldown_time) + addtimer(CALLBACK(src,TYPE_PROC_REF(/obj/item/analyzer, ping)), cooldown_time) /obj/item/analyzer/proc/ping() if(isliving(loc)) @@ -815,7 +815,7 @@ GENE SCANNER ready = FALSE icon_state = "[icon_state]_recharging" - addtimer(CALLBACK(src, .proc/recharge), cooldown, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(recharge)), cooldown, TIMER_UNIQUE) /obj/item/sequence_scanner/proc/recharge() icon_state = initial(icon_state) diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm index 8cdf9bdcd1..6a703b512d 100644 --- a/code/game/objects/items/devices/swapper.dm +++ b/code/game/objects/items/devices/swapper.dm @@ -58,7 +58,7 @@ var/mob/holder = linked_swapper.loc to_chat(holder, "[linked_swapper] starts buzzing.") next_use = world.time + cooldown //only the one used goes on cooldown - addtimer(CALLBACK(src, .proc/swap, user), 25) + addtimer(CALLBACK(src, PROC_REF(swap), user), 25) /obj/item/swapper/examine(mob/user) . = ..() diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 9e5322170c..3eca7570ea 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -130,7 +130,7 @@ if(toggle) toggle = FALSE toggle_valve() - addtimer(CALLBACK(src, .proc/toggle_off), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever + addtimer(CALLBACK(src, PROC_REF(toggle_off)), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever /obj/item/transfer_valve/proc/toggle_off() toggle = TRUE @@ -224,7 +224,7 @@ merge_gases() for(var/i in 1 to 6) - addtimer(CALLBACK(src, /atom/.proc/update_icon), 20 + (i - 1) * 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 20 + (i - 1) * 10) else if(valve_open && tank_one && tank_two) split_gases() diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 227355068f..9ed3dae23d 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -64,7 +64,7 @@ say(answer) on_cooldown = TRUE - addtimer(CALLBACK(src, .proc/clear_cooldown), cooldown_time) + addtimer(CALLBACK(src, PROC_REF(clear_cooldown)), cooldown_time) shaking = FALSE diff --git a/code/game/objects/items/etherealdiscoball.dm b/code/game/objects/items/etherealdiscoball.dm index de277371d5..27ac1ef4ed 100644 --- a/code/game/objects/items/etherealdiscoball.dm +++ b/code/game/objects/items/etherealdiscoball.dm @@ -63,7 +63,7 @@ set_light(range, power, current_color) add_atom_colour("#[current_color]", FIXED_COLOUR_PRIORITY) update_icon() - TimerID = addtimer(CALLBACK(src, .proc/DiscoFever), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors + TimerID = addtimer(CALLBACK(src, PROC_REF(DiscoFever)), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors /obj/structure/etherealball/update_icon() cut_overlays() diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 9a744adc34..c0af4ba859 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -149,7 +149,7 @@ if(user.buckled && isobj(user.buckled) && !user.buckled.anchored) var/obj/B = user.buckled var/movementdirection = turn(direction,180) - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection), 1) else user.newtonian_move(turn(direction, 180)) @@ -177,7 +177,7 @@ reagents.trans_to(W,1, transfered_by = user) //Make em move dat ass, hun - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_particles, water_particles), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), water_particles), 2) //Particle movement loop /obj/item/extinguisher/proc/move_particles(list/particles, repetition=0) @@ -199,7 +199,7 @@ particles -= W if(repetition < power) repetition++ - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_particles, particles, repetition), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), particles, repetition), 2) //Chair movement loop /obj/item/extinguisher/proc/move_chair(obj/B, movementdirection, repetition=0) @@ -217,7 +217,7 @@ return repetition++ - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection, repetition), timer_seconds) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection, repetition), timer_seconds) /obj/item/extinguisher/AltClick(mob/user) if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 1147c80394..c344f73f4b 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -172,7 +172,7 @@ landminemode.activate() return active = TRUE - addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, PROC_REF(prime)), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/chem_grenade/prime() if(stage != GRENADE_READY) @@ -297,7 +297,7 @@ chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) var/turf/DT = get_turf(src) - addtimer(CALLBACK(src, .proc/prime), det_time) + addtimer(CALLBACK(src, PROC_REF(prime)), det_time) log_game("A grenade detonated at [AREACOORD(DT)]") diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index 1a216aedf5..3ecf501577 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -57,7 +57,7 @@ var/steps = rand(1,4) for(var/i in 1 to steps) step_away(src,loc) - addtimer(CALLBACK(src, .proc/prime), rand(15,60)) + addtimer(CALLBACK(src, PROC_REF(prime)), rand(15,60)) /obj/item/grenade/clusterbuster/segment/prime() new payload_spawner(drop_location(), payload, rand(min_spawned,max_spawned)) @@ -77,7 +77,7 @@ var/obj/item/grenade/P = new type(loc) if(istype(P)) P.active = TRUE - addtimer(CALLBACK(P, /obj/item/grenade/proc/prime), rand(15,60)) + addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) var/steps = rand(1,4) for(var/i in 1 to steps) step_away(src,loc) @@ -106,7 +106,7 @@ var/chosen = pick(subtypesof(/obj/item/slime_extract)) var/obj/item/slime_extract/P = new chosen(loc) if(volatile) - addtimer(CALLBACK(P, /obj/item/slime_extract/proc/activate_slime), rand(15,60)) + addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/slime_extract, activate_slime)), rand(15,60)) var/steps = rand(1,4) for(var/i in 1 to steps) step_away(src,loc) diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 9a1a833fb6..39e0e028f1 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -73,7 +73,7 @@ playsound(src, 'sound/blank.ogg', volume, TRUE) active = TRUE icon_state = initial(icon_state) + "_active" - addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, PROC_REF(prime)), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/proc/prime() diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index f619e91827..7885ff0f10 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -106,7 +106,7 @@ target.add_overlay(plastic_overlay) to_chat(user, "I plant the bomb. Timer counting down from [det_time].") - addtimer(CALLBACK(src, .proc/prime), det_time*10) + addtimer(CALLBACK(src, PROC_REF(prime)), det_time*10) /obj/item/grenade/c4/proc/shout_syndicate_crap(mob/M) if(!M) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 2e8c0f5971..9afe5869ca 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -414,7 +414,7 @@ /obj/item/restraints/legcuffs/beartrap/energy/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/dissipate), 100) + addtimer(CALLBACK(src, PROC_REF(dissipate)), 100) /obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate() if(!ismob(loc)) diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm index b75bc3121e..efe11607bc 100644 --- a/code/game/objects/items/his_grace.dm +++ b/code/game/objects/items/his_grace.dm @@ -28,7 +28,7 @@ . = ..() START_PROCESSING(SSprocessing, src) GLOB.poi_list += src - RegisterSignal(src, COMSIG_MOVABLE_POST_THROW, .proc/move_gracefully) + RegisterSignal(src, COMSIG_MOVABLE_POST_THROW, PROC_REF(move_gracefully)) /obj/item/his_grace/Destroy() STOP_PROCESSING(SSprocessing, src) @@ -39,7 +39,7 @@ /obj/item/his_grace/attack_self(mob/living/user) if(!awakened) - INVOKE_ASYNC(src, .proc/awaken, user) + INVOKE_ASYNC(src, PROC_REF(awaken), user) /obj/item/his_grace/attack(mob/living/M, mob/user) if(awakened && M.stat) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index f4252c0394..563880ca33 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -227,7 +227,7 @@ if (initial(rodtype.chaplain_spawnable)) display_names[initial(rodtype.name)] = rodtype - var/choice = input(M,"What theme would you like for my holy weapon?","Holy Weapon Theme") as null|anything in sortList(display_names, /proc/cmp_typepaths_asc) + var/choice = input(M,"What theme would you like for my holy weapon?","Holy Weapon Theme") as null|anything in sortList(display_names, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(QDELETED(src) || !choice || M.stat || !in_range(M, src) || M.incapacitated() || reskinned) return diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index 50a494d110..b356ddc99b 100644 --- a/code/game/objects/items/hot_potato.dm +++ b/code/game/objects/items/hot_potato.dm @@ -139,7 +139,7 @@ ADD_TRAIT(src, TRAIT_NODROP, HOT_POTATO_TRAIT) name = "primed [name]" activation_time = timer + world.time - detonation_timerid = addtimer(CALLBACK(src, .proc/detonate), delay, TIMER_STOPPABLE) + detonation_timerid = addtimer(CALLBACK(src, PROC_REF(detonate)), delay, TIMER_STOPPABLE) START_PROCESSING(SSfastprocess, src) if(user) log_bomber(user, "has primed a", src, "for detonation (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range])") diff --git a/code/game/objects/items/hourglass.dm b/code/game/objects/items/hourglass.dm index 825d615e85..cf8fb702c4 100644 --- a/code/game/objects/items/hourglass.dm +++ b/code/game/objects/items/hourglass.dm @@ -37,7 +37,7 @@ /obj/item/hourglass/proc/start() finish_time = world.time + time - timing_id = addtimer(CALLBACK(src, .proc/finish), time, TIMER_STOPPABLE) + timing_id = addtimer(CALLBACK(src, PROC_REF(finish)), time, TIMER_STOPPABLE) countdown.start() timing_animation() diff --git a/code/game/objects/items/implants/implant_stealth.dm b/code/game/objects/items/implants/implant_stealth.dm index b7aa7ca2d2..ae46eb0c7d 100644 --- a/code/game/objects/items/implants/implant_stealth.dm +++ b/code/game/objects/items/implants/implant_stealth.dm @@ -33,7 +33,7 @@ /obj/structure/closet/cardboard/agent/proc/reveal() alpha = 255 - addtimer(CALLBACK(src, .proc/go_invisible), 10, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(go_invisible)), 10, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/structure/closet/cardboard/agent/Bump(atom/movable/A) . = ..() diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index c397190bc9..f39dbb5b5b 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -113,8 +113,8 @@ var/speedbase = abs((4 SECONDS) / limbs_to_dismember.len) for(bodypart in limbs_to_dismember) i++ - addtimer(CALLBACK(src, .proc/suicide_dismember, user, bodypart), speedbase * i) - addtimer(CALLBACK(src, .proc/manual_suicide, user), (5 SECONDS) * i) + addtimer(CALLBACK(src, PROC_REF(suicide_dismember), user, bodypart), speedbase * i) + addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), (5 SECONDS) * i) return MANUAL_SUICIDE /obj/item/melee/sabre/proc/suicide_dismember(mob/living/user, obj/item/bodypart/affecting) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 59b969fbe3..59b7f65c15 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -371,7 +371,7 @@ if(charging) return if(candy < candymax) - addtimer(CALLBACK(src, .proc/charge_lollipops), charge_delay) + addtimer(CALLBACK(src, PROC_REF(charge_lollipops)), charge_delay) charging = TRUE /obj/item/borg/lollipop/proc/charge_lollipops() @@ -755,7 +755,7 @@ /obj/item/borg/apparatus/Initialize() . = ..() - RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, .proc/safedecon) + RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, PROC_REF(safedecon)) /obj/item/borg/apparatus/Destroy() if(stored) @@ -804,7 +804,7 @@ var/obj/item/O = A O.forceMove(src) stored = O - RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, /atom/.proc/update_icon) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom, update_icon)) update_icon() return else @@ -832,7 +832,7 @@ /obj/item/borg/apparatus/beaker/Initialize() . = ..() stored = new /obj/item/reagent_containers/glass/beaker/large(src) - RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, /atom/.proc/update_icon) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom, update_icon)) update_icon() /obj/item/borg/apparatus/beaker/Destroy() @@ -893,7 +893,7 @@ /obj/item/borg/apparatus/beaker/service/Initialize() . = ..() stored = new /obj/item/reagent_containers/food/drinks/drinkingglass(src) - RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, /atom/.proc/update_icon) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom, update_icon)) update_icon() //////////////////// diff --git a/code/game/objects/items/rogueitems/coins.dm b/code/game/objects/items/rogueitems/coins.dm index 0939db2918..65b6ac0eda 100644 --- a/code/game/objects/items/rogueitems/coins.dm +++ b/code/game/objects/items/rogueitems/coins.dm @@ -134,11 +134,13 @@ desc = initial(desc) icon_state = "[base_type][heads_tails]" dropshrink = 0.2 + slot_flags = ITEM_SLOT_MOUTH return name = plural_name desc = "" dropshrink = 1 + slot_flags = null switch(quantity) if(2) dropshrink = 0.2 // this is just like the single coin, gotta shrink it diff --git a/code/game/objects/items/rogueitems/magic.dm b/code/game/objects/items/rogueitems/magic.dm index fb35affd9e..c27ab17fe5 100644 --- a/code/game/objects/items/rogueitems/magic.dm +++ b/code/game/objects/items/rogueitems/magic.dm @@ -45,7 +45,7 @@ S.ManualFollow(HL) last_scry = world.time user.visible_message("[user] stares into [src], \their eyes rolling back into \their head.") - addtimer(CALLBACK(S, /mob/dead/observer/.proc/reenter_corpse), 8 SECONDS) + addtimer(CALLBACK(S, TYPE_PROC_REF(/mob/dead/observer, reenter_corpse)), 8 SECONDS) if(!HL.stat) if(HL.STAPER >= 15) if(HL.mind) diff --git a/code/game/objects/items/rogueweapons/melee/axes.dm b/code/game/objects/items/rogueweapons/melee/axes.dm index 22e16b8ad5..d91c39134e 100644 --- a/code/game/objects/items/rogueweapons/melee/axes.dm +++ b/code/game/objects/items/rogueweapons/melee/axes.dm @@ -1,5 +1,5 @@ /obj/item/rogueweapon/stoneaxe - slot_flags = ITEM_SLOT_HIP + slot_flags = ITEM_SLOT_HIP | ITEM_SLOT_BACK force = 12 possible_item_intents = list(/datum/intent/axe/chop/stone) name = "stone axe" @@ -95,7 +95,6 @@ swingdelay = 10 /obj/item/rogueweapon/stoneaxe/battle - slot_flags = ITEM_SLOT_HIP force = 33 possible_item_intents = list(/datum/intent/axe/cut,/datum/intent/axe/chop) name = "battle axe" @@ -118,7 +117,6 @@ return ..() /obj/item/rogueweapon/stoneaxe/woodcut - slot_flags = ITEM_SLOT_HIP force = 18 possible_item_intents = list(/datum/intent/axe/cut,/datum/intent/axe/chop) name = "axe" diff --git a/code/game/objects/items/rogueweapons/melee/blunt.dm b/code/game/objects/items/rogueweapons/melee/blunt.dm index 174add6f35..ab4bc37323 100644 --- a/code/game/objects/items/rogueweapons/melee/blunt.dm +++ b/code/game/objects/items/rogueweapons/melee/blunt.dm @@ -14,7 +14,7 @@ //dropshrink = 0.75 wlength = WLENGTH_NORMAL w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_HIP + slot_flags = ITEM_SLOT_HIP | ITEM_SLOT_BACK associated_skill = /datum/skill/combat/axesmaces smeltresult = /obj/item/ingot/iron gripped_intents = list(/datum/intent/mace/strike,/datum/intent/mace/smash) @@ -250,7 +250,6 @@ //dropshrink = 0.75 wlength = WLENGTH_LONG w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK associated_skill = /datum/skill/combat/axesmaces smeltresult = /obj/item/ash parrysound = "parrywood" diff --git a/code/game/objects/items/rogueweapons/melee/flail.dm b/code/game/objects/items/rogueweapons/melee/flail.dm index 33660aa0ef..b8becea9f9 100644 --- a/code/game/objects/items/rogueweapons/melee/flail.dm +++ b/code/game/objects/items/rogueweapons/melee/flail.dm @@ -9,7 +9,7 @@ //dropshrink = 0.75 wlength = WLENGTH_NORMAL w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_HIP + slot_flags = ITEM_SLOT_HIP | ITEM_SLOT_BACK associated_skill = /datum/skill/combat/whipsflails smeltresult = /obj/item/ingot/iron parrysound = list('sound/combat/parry/parrygen.ogg') @@ -55,4 +55,4 @@ force = 40 icon_state = "flail" smeltresult = /obj/item/ingot/steel - minstr = 5 \ No newline at end of file + minstr = 5 diff --git a/code/game/objects/items/rogueweapons/melee/polearms.dm b/code/game/objects/items/rogueweapons/melee/polearms.dm index c6b68669b5..b041306cd1 100644 --- a/code/game/objects/items/rogueweapons/melee/polearms.dm +++ b/code/game/objects/items/rogueweapons/melee/polearms.dm @@ -62,6 +62,9 @@ if("onbelt") return list("shrink" = 0.3,"sx" = -2,"sy" = -5,"nx" = 4,"ny" = -5,"wx" = 0,"wy" = -5,"ex" = 2,"ey" = -5,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 0,"wflip" = 0,"eflip" = 0,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0) +/obj/item/rogueweapon/woodstaff/wise + name = "wise staff" + desc = "A staff for keeping the volfs at bay..." /obj/item/rogueweapon/woodstaff/aries name = "staff of the shepherd" @@ -299,4 +302,4 @@ reach = 2 /datum/intent/sword/thrust/zwei - reach = 2 \ No newline at end of file + reach = 2 diff --git a/code/game/objects/items/rogueweapons/melee/swords.dm b/code/game/objects/items/rogueweapons/melee/swords.dm index b429c9f34b..8e8bfa5bb3 100644 --- a/code/game/objects/items/rogueweapons/melee/swords.dm +++ b/code/game/objects/items/rogueweapons/melee/swords.dm @@ -1,6 +1,6 @@ /obj/item/rogueweapon/sword - slot_flags = ITEM_SLOT_HIP + slot_flags = ITEM_SLOT_HIP | ITEM_SLOT_BACK force = 18 force_wielded = 25 possible_item_intents = list(/datum/intent/sword/cut, /datum/intent/sword/thrust) @@ -101,7 +101,6 @@ associated_skill = /datum/skill/combat/swords throwforce = 15 thrown_bclass = BCLASS_CUT - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_HIP dropshrink = 0.75 smeltresult = /obj/item/ingot/steel @@ -143,7 +142,6 @@ associated_skill = /datum/skill/combat/swords throwforce = 15 thrown_bclass = BCLASS_CUT - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_HIP dropshrink = 0.75 smeltresult = /obj/item/ingot/steel @@ -182,7 +180,6 @@ associated_skill = /datum/skill/combat/swords throwforce = 15 thrown_bclass = BCLASS_CUT - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_HIP dropshrink = 0.75 smeltresult = /obj/item/ingot/steel sellprice = 363 @@ -222,7 +219,6 @@ associated_skill = /datum/skill/combat/swords throwforce = 15 thrown_bclass = BCLASS_CUT - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_HIP dropshrink = 0.75 smeltresult = /obj/item/ingot/steel sellprice = 363 @@ -262,7 +258,6 @@ associated_skill = /datum/skill/combat/swords throwforce = 15 thrown_bclass = BCLASS_CUT - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_HIP dropshrink = 0.75 smeltresult = /obj/item/ingot/steel @@ -302,7 +297,6 @@ associated_skill = /datum/skill/combat/swords throwforce = 15 thrown_bclass = BCLASS_CUT - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_HIP dropshrink = 0.75 minstr = 6 sellprice = 42 @@ -349,7 +343,6 @@ name = "execution sword" desc = "" minstr = 10 - slot_flags = ITEM_SLOT_BACK /obj/item/rogueweapon/sword/long/exe/getonmobprop(tag) . = ..() diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 9369ae6a0c..f4f1cd2fc5 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -27,12 +27,12 @@ if(M == user) if(!silent) user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "I begin applying \the [src] on myself...") - if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return else if(other_delay) if(!silent) user.visible_message("[user] starts to apply \the [src] on [M].", "I begin applying \the [src] on [M]...") - if(!do_mob(user, M, other_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, M, other_delay, extra_checks=CALLBACK(M, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return if(heal(M, user)) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index c430350b16..fc2e34bf6e 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -88,7 +88,7 @@ return (OXYLOSS) /obj/item/storage/backpack/santabag/proc/regenerate_presents() - addtimer(CALLBACK(src, .proc/regenerate_presents), rand(30 SECONDS, 60 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(regenerate_presents)), rand(30 SECONDS, 60 SECONDS)) var/mob/M = get(loc, /mob) if(!istype(M)) diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index e420915541..e9e493245b 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -121,7 +121,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/Pickup_ores) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(Pickup_ores)) listeningTo = user /obj/item/storage/bag/ore/dropped() diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 16f9d346b6..a41348222a 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -172,7 +172,7 @@ L.adjustStaminaLoss(60) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) - addtimer(CALLBACK(src, .proc/apply_stun_effect_end, L), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(apply_stun_effect_end), L), 2 SECONDS) if(user) L.lastattacker = user.real_name diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 41cd4a709c..0f4c0d09e2 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -54,7 +54,7 @@ on = TRUE icon_state = "[initial(icon_state)]-on" ion_trail.start() - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) if(full_speed) user.add_movespeed_modifier(MOVESPEED_ID_JETPACK, priority=100, multiplicative_slowdown=-0.25, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 3f41646734..20d1e207cd 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -296,7 +296,7 @@ var/obj/effect/particle_effect/foam/metal/resin/F = new (get_turf(target)) F.amount = 0 metal_synthesis_cooldown++ - addtimer(CALLBACK(src, .proc/reduce_metal_synth_cooldown), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reduce_metal_synth_cooldown)), 10 SECONDS) else to_chat(user, "Resin foam mix is still being synthesized...") return diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 5c3353dd44..490c737ff0 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -61,7 +61,7 @@ core = ncore icon_state = "core_container_loaded" to_chat(user, "Container is sealing...") - addtimer(CALLBACK(src, .proc/seal), 50) + addtimer(CALLBACK(src, PROC_REF(seal)), 50) return TRUE /obj/item/nuke_core_container/proc/seal() @@ -179,7 +179,7 @@ T.icon_state = "supermatter_tongs" icon_state = "core_container_loaded" to_chat(user, "Container is sealing...") - addtimer(CALLBACK(src, .proc/seal), 50) + addtimer(CALLBACK(src, PROC_REF(seal)), 50) return TRUE /obj/item/nuke_core_container/supermatter/seal() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 13d1aa2b87..1f48b41523 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -352,7 +352,7 @@ active = TRUE playsound(src, 'sound/blank.ogg', 100) Rumble() - addtimer(CALLBACK(src, .proc/stopRumble), 600) + addtimer(CALLBACK(src, PROC_REF(stopRumble)), 600) else to_chat(user, "[src] is already active!") @@ -460,7 +460,7 @@ /obj/item/ash/snappop_phoenix/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/respawn), respawn_time) + addtimer(CALLBACK(src, PROC_REF(respawn)), respawn_time) /obj/item/ash/snappop_phoenix/proc/respawn() new /obj/item/toy/snappop/phoenix(get_turf(src)) @@ -579,7 +579,7 @@ activation_message(user) playsound(loc, 'sound/blank.ogg', 20, TRUE) - INVOKE_ASYNC(src, .proc/do_toy_talk, user) + INVOKE_ASYNC(src, PROC_REF(do_toy_talk), user) cooldown = TRUE addtimer(VARSET_CALLBACK(src, cooldown, FALSE), recharge_time) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 75288f42c3..fa4ecd5659 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -341,10 +341,10 @@ impale(user) return if((wielded) && prob(50)) - INVOKE_ASYNC(src, .proc/jedi_spin, user) + INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/twohanded/dualsaber/proc/jedi_spin(mob/living/user) - dance_rotate(user, CALLBACK(user, /mob.proc/dance_flip)) + dance_rotate(user, CALLBACK(user, TYPE_PROC_REF(/mob, dance_flip))) /obj/item/twohanded/dualsaber/proc/impale(mob/living/user) to_chat(user, "I twirl around a bit before losing your balance and impaling myself on [src].") @@ -404,7 +404,7 @@ playsound(loc, pick(hitsound), get_clamped_volume(), TRUE, -1) add_fingerprint(user) // Light your candles while spinning around the room - INVOKE_ASYNC(src, .proc/jedi_spin, user) + INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/twohanded/dualsaber/green possible_colors = list("green") @@ -812,7 +812,7 @@ . = ..() if(!wielded) return - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/unwield) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(unwield)) listeningTo = user user.visible_message("[user] holds [src] up to [user.p_their()] eyes.", "I hold [src] up to your eyes.") item_state = "binoculars_wielded" diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 2113643ffb..adf404bea6 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -475,7 +475,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/statuebust/Initialize() . = ..() AddComponent(/datum/component/art, impressiveness) - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 1000), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, AddComponent), /datum/component/beauty, 1000), 0) /obj/item/statuebust/hippocratic name = "hippocrates bust" diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 25bccb7555..3f71969b02 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -247,7 +247,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e obj_flags |= BEING_SHOCKED var/power_bounced = power / 2 tesla_zap(src, 3, power_bounced, tesla_flags, shocked_targets) - addtimer(CALLBACK(src, .proc/reset_shocked), 10) + addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) //The surgeon general warns that being buckled to certain objects receiving powerful shocks is greatly hazardous to your health ///Only tesla coils and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later. diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 4a5fd4984a..353647ac7c 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -38,7 +38,7 @@ H.toggle_rogmove_intent(MOVE_INTENT_WALK, TRUE) playsound(src, "genblunt", 100, TRUE) H.visible_message("[H] runs into [src]!", "I run into [src]!") - addtimer(CALLBACK(H, /mob/living/carbon/human/.proc/Knockdown, 10), 10) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, Knockdown), 10), 10) /obj/structure/Destroy() diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index ff3d18d2a1..6e983b5a4a 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -229,7 +229,7 @@ if(status == GROWING || status == GROWN) child = new(src) if(status == GROWING) - addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME)) + addtimer(CALLBACK(src, PROC_REF(Grow)), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME)) proximity_monitor = new(src, status == GROWN ? 1 : 0) if(status == BURST) obj_integrity = integrity_failure * max_integrity @@ -285,7 +285,7 @@ status = BURST update_icon() flick("egg_opening", src) - addtimer(CALLBACK(src, .proc/finish_bursting, kill), 15) + addtimer(CALLBACK(src, PROC_REF(finish_bursting), kill), 15) /obj/structure/alien/egg/proc/finish_bursting(kill = TRUE) if(child) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 39051ba6a1..c900cbf4a0 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -24,11 +24,11 @@ /obj/structure/chair/Initialize() . = ..() if(!anchored) //why would you put these on the shuttle? - addtimer(CALLBACK(src, .proc/RemoveFromLatejoin), 0) + addtimer(CALLBACK(src, PROC_REF(RemoveFromLatejoin)), 0) /obj/structure/chair/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null) /obj/structure/chair/proc/can_be_rotated(mob/user) return TRUE @@ -460,7 +460,7 @@ Mob.pixel_y -= 2 .=..() if(iscarbon(Mob)) - INVOKE_ASYNC(src, .proc/snap_check, Mob) + INVOKE_ASYNC(src, PROC_REF(snap_check), Mob) /obj/structure/chair/plastic/post_unbuckle_mob(mob/living/Mob) Mob.pixel_y += 2 diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c9fe57be80..802a5289dc 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -51,7 +51,7 @@ /obj/structure/closet/Initialize(mapload) if(mapload && !opened) // if closed, any item at the crate's loc is put in the contents - addtimer(CALLBACK(src, .proc/take_contents), 0) + addtimer(CALLBACK(src, PROC_REF(take_contents)), 0) . = ..() update_icon() PopulateContents() diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 0497f2cb7b..b364bb58f7 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -25,7 +25,7 @@ return move_delay = TRUE if(step(src, direction)) - addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) + addtimer(CALLBACK(src, PROC_REF(ResetMoveDelay)), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) else ResetMoveDelay() @@ -83,6 +83,6 @@ var/oldloc = loc step(src, direction) if(oldloc != loc) - addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) + addtimer(CALLBACK(src, PROC_REF(ResetMoveDelay)), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) else move_delay = FALSE diff --git a/code/game/objects/structures/crates_lockers/closets/infinite.dm b/code/game/objects/structures/crates_lockers/closets/infinite.dm index 5e987ea06c..9aaf220f9b 100644 --- a/code/game/objects/structures/crates_lockers/closets/infinite.dm +++ b/code/game/objects/structures/crates_lockers/closets/infinite.dm @@ -26,7 +26,7 @@ /obj/structure/closet/infinite/open() . = ..() if(. && auto_close_time) - addtimer(CALLBACK(src, .proc/close_on_my_own), auto_close_time, TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(close_on_my_own)), auto_close_time, TIMER_OVERRIDE) /obj/structure/closet/infinite/proc/close_on_my_own() if(close()) diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index 96de66753d..c745aa5d6e 100644 --- a/code/game/objects/structures/crates_lockers/crates/bins.dm +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -37,7 +37,7 @@ /obj/structure/closet/crate/bin/proc/do_animate() playsound(loc, open_sound, 15, TRUE, -3) flick("animate_largebins", src) - addtimer(CALLBACK(src, .proc/do_close), 13) + addtimer(CALLBACK(src, PROC_REF(do_close)), 13) /obj/structure/closet/crate/bin/proc/do_close() playsound(loc, close_sound, 15, TRUE, -3) diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm index ccdffbce1e..87d7755a7d 100644 --- a/code/game/objects/structures/divine.dm +++ b/code/game/objects/structures/divine.dm @@ -41,7 +41,7 @@ to_chat(user, "The blood feels warm as you touch it. The fountain immediately dries up shortly afterwards.") user.reagents.add_reagent(/datum/reagent/medicine/healthpot,40) update_icon() - addtimer(CALLBACK(src, /atom/.proc/update_icon), time_between_uses) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), time_between_uses) /obj/structure/healingfountain/update_icon() diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index 7a40f3931c..db2c54bbcd 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -42,5 +42,5 @@ var/mob/living/buckled_mob = m buckled_mob.electrocute_act(85, src, 1) to_chat(buckled_mob, "I feel a deep shock course through your body!") - addtimer(CALLBACK(buckled_mob, /mob/living.proc/electrocute_act, 85, src, 1), 1) + addtimer(CALLBACK(buckled_mob, TYPE_PROC_REF(/mob/living, electrocute_act), 85, src, 1), 1) visible_message("The electric chair went off!", "I hear a deep sharp shock!") diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 2a4cd88629..34c33c03bf 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -49,7 +49,7 @@ for(var/mob/living/obstacle in srcturf) //Stop people from using this as a shield opening = FALSE return - addtimer(CALLBACK(src, /obj/structure/falsewall/proc/toggle_open), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/falsewall, toggle_open)), 5) /obj/structure/falsewall/proc/toggle_open() if(!QDELETED(src)) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index fa8055cda2..2eb1bc1ad0 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -322,7 +322,7 @@ /obj/item/twohanded/required/kirbyplants/Initialize() . = ..() AddComponent(/datum/component/tactical) - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 500), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, AddComponent), /datum/component/beauty, 500), 0) /obj/item/twohanded/required/kirbyplants/random icon = 'icons/obj/flora/_flora.dmi' diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index e5d8b5e196..ce3dc78e93 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -380,7 +380,7 @@ id.update_label() else to_chat(L, "My owner is already dead! You will soon perish.") - addtimer(CALLBACK(L, /mob.proc/dust, 150)) //Give em a few seconds as a mercy. + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, dust), 150)) //Give em a few seconds as a mercy. /datum/outfit/demonic_friend name = "Demonic Friend" diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index ed0a5d9e53..e5c1b220bc 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -97,7 +97,7 @@ if (GUILLOTINE_BLADE_DROPPED) blade_status = GUILLOTINE_BLADE_MOVING icon_state = "guillotine_raise" - addtimer(CALLBACK(src, .proc/raise_blade), GUILLOTINE_ANIMATION_RAISE_LENGTH) + addtimer(CALLBACK(src, PROC_REF(raise_blade)), GUILLOTINE_ANIMATION_RAISE_LENGTH) return if (GUILLOTINE_BLADE_RAISED) if (LAZYLEN(buckled_mobs)) @@ -110,14 +110,14 @@ blade_status = GUILLOTINE_BLADE_MOVING playsound(src, 'sound/misc/wood_saw.ogg', 100, TRUE) icon_state = "guillotine_drop" - addtimer(CALLBACK(src, .proc/drop_blade, user), GUILLOTINE_ANIMATION_LENGTH) // Minus two so we play the sound and decap faster + addtimer(CALLBACK(src, PROC_REF(drop_blade), user), GUILLOTINE_ANIMATION_LENGTH) // Minus two so we play the sound and decap faster else current_action = 0 else blade_status = GUILLOTINE_BLADE_MOVING playsound(src, 'sound/misc/wood_saw.ogg', 100, TRUE) icon_state = "guillotine_drop" - addtimer(CALLBACK(src, .proc/drop_blade), GUILLOTINE_ANIMATION_LENGTH) + addtimer(CALLBACK(src, PROC_REF(drop_blade)), GUILLOTINE_ANIMATION_LENGTH) /obj/structure/guillotine/proc/raise_blade() blade_status = GUILLOTINE_BLADE_RAISED @@ -166,7 +166,7 @@ for(var/mob/M in viewers(src, 7)) var/mob/living/carbon/human/C = M if (ishuman(M)) - addtimer(CALLBACK(C, /mob/.proc/emote, "clap"), delay_offset * 0.3) + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob, emote), "clap"), delay_offset * 0.3) delay_offset++ else H.apply_damage(15 * blade_sharpness, BRUTE, head) diff --git a/code/game/objects/structures/hivebot.dm b/code/game/objects/structures/hivebot.dm index fc876e56d9..8a4ac65df6 100644 --- a/code/game/objects/structures/hivebot.dm +++ b/code/game/objects/structures/hivebot.dm @@ -15,7 +15,7 @@ smoke.start() visible_message("[src] warps in!") playsound(src.loc, 'sound/blank.ogg', 25, TRUE) - addtimer(CALLBACK(src, .proc/warpbots), rand(10, 600)) + addtimer(CALLBACK(src, PROC_REF(warpbots)), rand(10, 600)) /obj/structure/hivebot_beacon/proc/warpbots() icon_state = "def_radar" diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 22420122a0..d697f54bac 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -176,7 +176,7 @@ var/mob/living/M = user M.electrocute_act(15,"Energy Barrier", flags = SHOCK_NOGLOVES) shockcd = TRUE - addtimer(CALLBACK(src, .proc/cooldown), 5) + addtimer(CALLBACK(src, PROC_REF(cooldown)), 5) /obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/AM) if(shockcd) @@ -188,4 +188,4 @@ var/mob/living/M = AM M.electrocute_act(15,"Energy Barrier", flags = SHOCK_NOGLOVES) shockcd = TRUE - addtimer(CALLBACK(src, .proc/cooldown), 5) + addtimer(CALLBACK(src, PROC_REF(cooldown)), 5) diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 0506919329..1870862cea 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(tendrils, list()) visible_message("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!") visible_message("Something falls free of the tendril!") playsound(loc,'sound/blank.ogg', 200, FALSE, 50, TRUE, TRUE) - addtimer(CALLBACK(src, .proc/collapse), 50) + addtimer(CALLBACK(src, PROC_REF(collapse)), 50) /obj/effect/collapse/Destroy() QDEL_NULL(emitted_light) diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm index fa034f0302..361b987d32 100644 --- a/code/game/objects/structures/life_candle.dm +++ b/code/game/objects/structures/life_candle.dm @@ -67,7 +67,7 @@ for(var/m in linked_minds) var/datum/mind/mind = m if(!mind.current || (mind.current && mind.current.stat == DEAD)) - addtimer(CALLBACK(src, .proc/respawn, mind), respawn_time, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(respawn), mind), respawn_time, TIMER_UNIQUE) /obj/structure/life_candle/proc/respawn(datum/mind/mind) var/turf/T = get_turf(src) diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index 7c631ccd48..e96a146fed 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -142,7 +142,7 @@ /obj/machinery/manned_turret/proc/volley(mob/user) target_turf = get_turf(target) for(var/i in 1 to number_of_shots) - addtimer(CALLBACK(src, /obj/machinery/manned_turret/.proc/fire_helper, user), i*rate_of_fire) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/manned_turret, fire_helper), user), i*rate_of_fire) /obj/machinery/manned_turret/proc/fire_helper(mob/user) if(user.incapacitated() || !(user in buckled_mobs)) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index be6a2ff43f..cd9f9a2686 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -91,7 +91,7 @@ isSwitchingStates = FALSE if(close_delay != -1) - addtimer(CALLBACK(src, .proc/Close), close_delay) + addtimer(CALLBACK(src, PROC_REF(Close)), close_delay) /obj/structure/mineral_door/proc/force_closed() isSwitchingStates = TRUE @@ -162,9 +162,9 @@ if(isliving(AM)) var/mob/living/M = AM if(M.m_intent == MOVE_INTENT_SNEAK) - addtimer(CALLBACK(src, .proc/Close, TRUE), 25) + addtimer(CALLBACK(src, PROC_REF(Close), TRUE), 25) else - addtimer(CALLBACK(src, .proc/Close, FALSE), 25) + addtimer(CALLBACK(src, PROC_REF(Close), FALSE), 25) /obj/structure/mineral_door/attack_ai(mob/user) //those aren't machinery, they're just big fucking slabs of a mineral if(isAI(user)) //so the AI can't open it @@ -246,7 +246,7 @@ isSwitchingStates = FALSE if(close_delay != -1) - addtimer(CALLBACK(src, .proc/Close), close_delay) + addtimer(CALLBACK(src, PROC_REF(Close)), close_delay) /obj/structure/mineral_door/proc/Close(silent = FALSE) if(isSwitchingStates || !door_opened) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index 94b20a8f2b..ead9dc932d 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -268,7 +268,7 @@ else if(href_list["play"]) playing = TRUE - INVOKE_ASYNC(src, .proc/playsong, usr) + INVOKE_ASYNC(src, PROC_REF(playsong), usr) else if(href_list["newline"]) var/newline = html_encode(input("Enter your line: ", instrumentObj.name) as text|null) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index 5beda6c2a0..446fa7f241 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -31,7 +31,7 @@ var/action = anchored ? "unscrews [src] from" : "screws [src] to" var/uraction = anchored ? "unscrew [src] from " : "screw [src] to" user.visible_message("[user] [action] the floor.", "I start to [uraction] the floor...", "I hear rustling noises.") - if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, .proc/check_anchored_state, anchored))) + if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, PROC_REF(check_anchored_state), anchored))) setAnchored(!anchored) to_chat(user, "I [anchored ? "unscrew" : "screw"] [src] from the floor.") return TRUE diff --git a/code/game/objects/structures/roguetown/handcart.dm b/code/game/objects/structures/roguetown/handcart.dm index 5ac8a995bf..2f426d22e9 100644 --- a/code/game/objects/structures/roguetown/handcart.dm +++ b/code/game/objects/structures/roguetown/handcart.dm @@ -84,7 +84,7 @@ /obj/structure/handcart/Initialize(mapload) if(mapload) // if closed, any item at the crate's loc is put in the contents - addtimer(CALLBACK(src, .proc/take_contents), 0) + addtimer(CALLBACK(src, PROC_REF(take_contents)), 0) . = ..() update_icon() diff --git a/code/game/objects/structures/roguetown/rogueflora.dm b/code/game/objects/structures/roguetown/rogueflora.dm index a25c330810..acc6f0d4f1 100644 --- a/code/game/objects/structures/roguetown/rogueflora.dm +++ b/code/game/objects/structures/roguetown/rogueflora.dm @@ -225,7 +225,7 @@ dir = pick(GLOB.cardinals) /datum/component/roguegrass/Initialize() - RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), .proc/Crossed) + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), PROC_REF(Crossed)) /datum/component/roguegrass/proc/Crossed(datum/source, atom/movable/AM) var/atom/A = parent diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index 9537cfe8a9..599fce0323 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -77,10 +77,10 @@ // If there was already mist, and the shower was turned off (or made cold): remove the existing mist in 25 sec var/obj/effect/mist/mist = locate() in loc if(!mist && on && current_temperature != SHOWER_FREEZING) - addtimer(CALLBACK(src, .proc/make_mist), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(make_mist)), 5 SECONDS) if(mist && (!on || current_temperature == SHOWER_FREEZING)) - addtimer(CALLBACK(src, .proc/clear_mist), 25 SECONDS) + addtimer(CALLBACK(src, PROC_REF(clear_mist)), 25 SECONDS) /obj/machinery/shower/proc/make_mist() var/obj/effect/mist/mist = locate() in loc diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 2dfe9c2aba..b6d315f95d 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -15,7 +15,7 @@ /obj/structure/statue/Initialize() . = ..() AddComponent(art_type, impressiveness) - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, impressiveness * 75), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, AddComponent), /datum/component/beauty, impressiveness * 75), 0) /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 9d5d4fd473..a7a2cf3236 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -257,7 +257,7 @@ return // Don't break if they're just flying past if(AM.throwing) - addtimer(CALLBACK(src, .proc/throw_check, AM), 5) + addtimer(CALLBACK(src, PROC_REF(throw_check), AM), 5) else check_break(AM) diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm index d7bcb884c8..2948fb40ef 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm @@ -27,7 +27,7 @@ /obj/structure/c_transit_tube/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS,null,null,CALLBACK(src,.proc/after_rot)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS,null,null,CALLBACK(src,PROC_REF(after_rot))) /obj/structure/c_transit_tube/proc/after_rot(mob/user,rotation_type) if(flipped_build_type && rotation_type == ROTATION_FLIP) @@ -46,7 +46,7 @@ return to_chat(user, "I start attaching the [name]...") add_fingerprint(user) - if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, .proc/can_wrench_in_loc, user))) + if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, PROC_REF(can_wrench_in_loc), user))) to_chat(user, "I attach the [name].") var/obj/structure/transit_tube/R = new build_type(loc, dir) transfer_fingerprints_to(R) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 58f99eb491..af165f20d3 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -319,8 +319,8 @@ /datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, - CALLBACK(src, .proc/can_be_rotated), - CALLBACK(src,.proc/after_rotation) + CALLBACK(src, PROC_REF(can_be_rotated)), + CALLBACK(src,PROC_REF(after_rotation)) ) /obj/structure/windoor_assembly/proc/can_be_rotated(mob/user,rotation_type) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6b6bb024ae..57e5695f19 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -65,7 +65,7 @@ /obj/structure/window/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src,PROC_REF(after_rotation))) /obj/structure/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) @@ -175,13 +175,13 @@ if(!(flags_1&NODECONSTRUCT_1) && !(reinf && state >= RWINDOW_FRAME_BOLTED)) if(I.tool_behaviour == TOOL_SCREWDRIVER) to_chat(user, "I begin to [anchored ? "unscrew the window from":"screw the window to"] the floor...") - if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored))) + if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored))) setAnchored(!anchored) to_chat(user, "I [anchored ? "fasten the window to":"unfasten the window from"] the floor.") return else if(I.tool_behaviour == TOOL_WRENCH && !anchored) to_chat(user, "I begin to disassemble [src]...") - if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) + if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored))) var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount) G.add_fingerprint(user) playsound(src, 'sound/blank.ogg', 50, TRUE) @@ -190,7 +190,7 @@ return else if(I.tool_behaviour == TOOL_CROWBAR && reinf && (state == WINDOW_OUT_OF_FRAME) && anchored) to_chat(user, "I begin to lever the window into the frame...") - if(I.use_tool(src, user, 100, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) + if(I.use_tool(src, user, 100, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored))) state = RWINDOW_SECURE to_chat(user, "I pry the window into the frame.") return @@ -378,7 +378,7 @@ if(I.use_tool(src, user, 150, volume = 100)) to_chat(user, "The security bolts are glowing white hot and look ready to be removed.") state = RWINDOW_BOLTS_HEATED - addtimer(CALLBACK(src, .proc/cool_bolts), 300) + addtimer(CALLBACK(src, PROC_REF(cool_bolts)), 300) return if(RWINDOW_BOLTS_HEATED) if(I.tool_behaviour == TOOL_SCREWDRIVER) @@ -503,7 +503,7 @@ if(I.use_tool(src, user, 180, volume = 100)) to_chat(user, "The security screws are glowing white hot and look ready to be removed.") state = RWINDOW_BOLTS_HEATED - addtimer(CALLBACK(src, .proc/cool_bolts), 300) + addtimer(CALLBACK(src, PROC_REF(cool_bolts)), 300) return if(RWINDOW_BOLTS_HEATED) if(I.tool_behaviour == TOOL_SCREWDRIVER) diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index 272c66a698..450981883e 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -92,7 +92,7 @@ H.toggle_rogmove_intent(MOVE_INTENT_WALK, TRUE) playsound(src, "genblunt", 100, TRUE) H.visible_message("[H] runs into [src]!", "I run into [src]!") - addtimer(CALLBACK(H, /mob/living/carbon/human/.proc/Knockdown, 10), 10) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, Knockdown), 10), 10) /turf/closed/Initialize() . = ..() diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index bb688e50c8..96db8e4c9a 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -94,7 +94,7 @@ if(defer_change) // TODO: make the defer change var a var for any changeturf flag flags = CHANGETURF_DEFER_CHANGE ScrapeAway(null, flags) - addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) // playsound(src, 'sound/blank.ogg', 100, TRUE) //beautiful destruction /turf/closed/mineral/attack_animal(mob/living/simple_animal/user) @@ -527,7 +527,7 @@ if(defer_change) flags = CHANGETURF_DEFER_CHANGE ScrapeAway(null, flags) - addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) /turf/closed/mineral/gibtonite/volcanic @@ -564,7 +564,7 @@ if(defer_change) // TODO: make the defer change var a var for any changeturf flag flags = CHANGETURF_DEFER_CHANGE ScrapeAway(flags=flags) - addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) playsound(src, 'sound/blank.ogg', 50, TRUE) //beautiful destruction /turf/closed/mineral/strong/proc/drop_ores() diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 8cd0af72c7..c1f9c721b3 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -239,7 +239,7 @@ lube |= SLIDE_ICE if(lube&SLIDE) - new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 4), 1, FALSE, CALLBACK(C, /mob/living/carbon/.proc/spin, 1, 1)) + new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 4), 1, FALSE, CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, spin), 1, 1)) else if(lube&SLIDE_ICE) if(C.force_moving) //If we're already slipping extend it qdel(C.force_moving) diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm index 6f77151771..de6c822612 100644 --- a/code/game/turfs/open/water.dm +++ b/code/game/turfs/open/water.dm @@ -85,7 +85,7 @@ drained += 40 if(!user.rogfat_add(drained)) user.Immobilize(30) - addtimer(CALLBACK(user, /mob/living/.proc/Knockdown, 30), 10) + addtimer(CALLBACK(user, TYPE_PROC_REF(/mob/living, Knockdown), 30), 10) /turf/open/water/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) ..() @@ -360,7 +360,7 @@ . = ..() if(isliving(AM)) if(!river_processing) - river_processing = addtimer(CALLBACK(src, .proc/process_river), 5, TIMER_STOPPABLE) + river_processing = addtimer(CALLBACK(src, PROC_REF(process_river)), 5, TIMER_STOPPABLE) /turf/open/water/river/proc/process_river() river_processing = null diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 3453bfddee..e1bc7a8b05 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -487,7 +487,7 @@ var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress))) + while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, TYPE_PROC_REF(/datum/component/storage, mass_remove_from_storage), src, things, progress))) stoplag(1) qdel(progress) diff --git a/code/game/world.dm b/code/game/world.dm index 48fedc419b..7d226994ab 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -93,11 +93,11 @@ GLOBAL_VAR(restart_counter) CONFIG_SET(number/round_end_countdown, 0) var/datum/callback/cb #ifdef UNIT_TESTS - cb = CALLBACK(GLOBAL_PROC, /proc/RunUnitTests) + cb = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(RunUnitTests)) #else cb = VARSET_CALLBACK(SSticker, force_ending, TRUE) #endif - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, cb, 10 SECONDS)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(addtimer), cb, 10 SECONDS)) /world/proc/SetupExternalRSC() #if (PRELOAD_RSC == 0) diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 887ae067a7..a8ce0e9393 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -140,7 +140,7 @@ GLOBAL_VAR(last_connection) return GLOB.stickybanadminexemptions[ckey] = world.time stoplag() // sleep a byond tick - GLOB.stickbanadminexemptiontimerid = addtimer(CALLBACK(GLOBAL_PROC, /proc/restore_stickybans), 5 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE) + GLOB.stickbanadminexemptiontimerid = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(restore_stickybans)), 5 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE) return var/list/ban = ..() //default pager ban stuff diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 02b6166e25..5fced841b3 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -192,7 +192,7 @@ GLOBAL_PROTECT(admin_verbs_debug) /client/proc/returntolobby, /client/proc/set_tod_override ) -GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, /proc/release)) +GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, GLOBAL_PROC_REF(release))) GLOBAL_PROTECT(admin_verbs_possess) GLOBAL_LIST_INIT(admin_verbs_permissions, list(/client/proc/edit_admin_permissions)) GLOBAL_PROTECT(admin_verbs_permissions) @@ -642,7 +642,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) if(!istype(T)) to_chat(src, "I can only give a disease to a mob of type /mob/living.") return - var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in sortList(SSdisease.diseases, /proc/cmp_typepaths_asc) + var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in sortList(SSdisease.diseases, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!D) return T.ForceContractDisease(new D, FALSE, TRUE) diff --git a/code/modules/admin/check_antagonists.dm b/code/modules/admin/check_antagonists.dm index 4d230fe26f..b6e984094a 100644 --- a/code/modules/admin/check_antagonists.dm +++ b/code/modules/admin/check_antagonists.dm @@ -106,7 +106,7 @@ else sections += T.antag_listing_entry() - sortTim(all_antagonists, /proc/cmp_antag_category) + sortTim(all_antagonists, GLOBAL_PROC_REF(cmp_antag_category)) var/current_category var/list/current_section = list() diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm index 00f642c794..dba9c3da15 100644 --- a/code/modules/admin/create_object.dm +++ b/code/modules/admin/create_object.dm @@ -19,7 +19,7 @@ /obj/item, /obj/item/clothing, /obj/item/stack, /obj/item, /obj/item/reagent_containers, /obj/item/gun) - var/path = input("Select the path of the object you wish to create.", "Path", /obj) in sortList(create_object_forms, /proc/cmp_typepaths_asc) + var/path = input("Select the path of the object you wish to create.", "Path", /obj) in sortList(create_object_forms, GLOBAL_PROC_REF(cmp_typepaths_asc)) var/html_form = create_object_forms[path] if (!html_form) diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 5612d8bd89..f4b9fa1395 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -158,7 +158,7 @@ var/mob/living/M = AM M.forceMove(get_turf(LA)) to_chat(M, "You're trapped in a deadly arena! To escape, you'll need to drag a severed head to the escape portals.") - INVOKE_ASYNC(src, .proc/do_bloodbath, M) + INVOKE_ASYNC(src, PROC_REF(do_bloodbath), M) /obj/effect/forcefield/arena_shuttle_entrance/proc/do_bloodbath(mob/living/L) var/obj/effect/mine/pickup/bloodbath/B = new (L) diff --git a/code/modules/admin/patdiscord.dm b/code/modules/admin/patdiscord.dm index 3e15849614..73033f7429 100644 --- a/code/modules/admin/patdiscord.dm +++ b/code/modules/admin/patdiscord.dm @@ -34,7 +34,7 @@ to_chat(src, "Registration cancelled.") return to_chat(src, "Registering [namey], please wait....") - addtimer(CALLBACK(src, .proc/discordtimeout), 5 SECONDS, TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(discordtimeout)), 5 SECONDS, TIMER_STOPPABLE) */ /mob/dead/new_player/proc/discordtimeout() diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index be37b27589..dead5c41ad 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -286,7 +286,7 @@ SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Monkeyize All Humans")) for(var/i in GLOB.human_list) var/mob/living/carbon/human/H = i - INVOKE_ASYNC(H, /mob/living/carbon.proc/monkeyize) + INVOKE_ASYNC(H, TYPE_PROC_REF(/mob/living/carbon, monkeyize)) ok = 1 if("allspecies") @@ -442,7 +442,7 @@ var/datum/round_event_control/disease_outbreak/DC = locate(/datum/round_event_control/disease_outbreak) in SSevents.control E = DC.runEvent() if("Choose") - var/virus = input("Choose the virus to spread", "BIOHAZARD") as null|anything in sortList(typesof(/datum/disease, /proc/cmp_typepaths_asc)) + var/virus = input("Choose the virus to spread", "BIOHAZARD") as null|anything in sortList(typesof(/datum/disease, GLOBAL_PROC_REF(cmp_typepaths_asc))) var/datum/round_event_control/disease_outbreak/DC = locate(/datum/round_event_control/disease_outbreak) in SSevents.control var/datum/round_event/disease_outbreak/DO = DC.runEvent() DO.virus_type = virus @@ -662,9 +662,9 @@ var/ghostcandidates = list() for (var/j in 1 to min(prefs["amount"]["value"], length(candidates))) ghostcandidates += pick_n_take(candidates) - addtimer(CALLBACK(GLOBAL_PROC, .proc/doPortalSpawn, get_random_station_turf(), pathToSpawn, length(ghostcandidates), storm, ghostcandidates, outfit), i*prefs["delay"]["value"]) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(doPortalSpawn), get_random_station_turf(), pathToSpawn, length(ghostcandidates), storm, ghostcandidates, outfit), i*prefs["delay"]["value"]) else if (prefs["playersonly"]["value"] != "Yes") - addtimer(CALLBACK(GLOBAL_PROC, .proc/doPortalSpawn, get_random_station_turf(), pathToSpawn, prefs["amount"]["value"], storm, null, outfit), i*prefs["delay"]["value"]) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(doPortalSpawn), get_random_station_turf(), pathToSpawn, prefs["amount"]["value"], storm, null, outfit), i*prefs["delay"]["value"]) if(E) E.processing = FALSE diff --git a/code/modules/admin/team_panel.dm b/code/modules/admin/team_panel.dm index 6e2987486b..82654a31fe 100644 --- a/code/modules/admin/team_panel.dm +++ b/code/modules/admin/team_panel.dm @@ -164,7 +164,7 @@ /datum/team/custom/get_admin_commands() . = ..() - .["Force HUD"] = CALLBACK(src,.proc/admin_force_hud) + .["Force HUD"] = CALLBACK(src,PROC_REF(admin_force_hud)) //This is here if you want admin created teams to tell each other apart easily. /datum/team/custom/proc/admin_force_hud(mob/user) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e24162c329..f973a2feea 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1039,7 +1039,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdome1)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "I have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "I have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 1)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 1)") @@ -1065,7 +1065,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdome2)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "I have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "I have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 2)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 2)") @@ -1088,7 +1088,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeadmin)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "I have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "I have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Admin.)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Admin.)") @@ -1118,7 +1118,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeobserve)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "I have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "I have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Observer.)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Observer.)") diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index d2c1b1a9db..5b19481f44 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -488,7 +488,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null ENABLE_BITFIELD(options,SDQL2_OPTION_SEQUENTIAL) /datum/SDQL2_query/proc/ARun() - INVOKE_ASYNC(src, .proc/Run) + INVOKE_ASYNC(src, PROC_REF(Run)) /datum/SDQL2_query/proc/Run() if(SDQL2_IS_RUNNING) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 06ac0700e5..e1c79e1a1d 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -227,7 +227,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //Removes the ahelp verb and returns it after 2 minutes /datum/admin_help/proc/TimeoutVerb() initiator.verbs -= /client/verb/adminhelp - initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps + initiator.adminhelptimerid = addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps //private /datum/admin_help/proc/FullMonty(ref_src) @@ -343,7 +343,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) state = AHELP_RESOLVED GLOB.ahelp_tickets.ListInsert(src) - addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 50) + addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 50) AddInteraction("Resolved by [key_name].") to_chat(initiator, "Your ticket has been resolved by [usr?.client?.holder?.fakekey? usr.client.holder.fakekey : "an administrator"]. The Adminhelp verb will be returned to you shortly.") diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index ad4e5c3a89..def33ac902 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -188,7 +188,7 @@ //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn if(CONFIG_GET(flag/popup_admin_pm)) - INVOKE_ASYNC(src, .proc/popup_admin_pm, recipient, msg) + INVOKE_ASYNC(src, PROC_REF(popup_admin_pm), recipient, msg) else //neither are admins to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.") diff --git a/code/modules/admin/verbs/cinematic.dm b/code/modules/admin/verbs/cinematic.dm index 2a05595dbb..03123ef888 100644 --- a/code/modules/admin/verbs/cinematic.dm +++ b/code/modules/admin/verbs/cinematic.dm @@ -6,6 +6,6 @@ if(!SSticker) return - var/datum/cinematic/choice = input(src,"Cinematic","Choose",null) as anything in sortList(subtypesof(/datum/cinematic), /proc/cmp_typepaths_asc) + var/datum/cinematic/choice = input(src,"Cinematic","Choose",null) as anything in sortList(subtypesof(/datum/cinematic), GLOBAL_PROC_REF(cmp_typepaths_asc)) if(choice) Cinematic(initial(choice.id),world,null) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index b75de544f8..6be7c2e844 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -47,7 +47,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(ishuman(M)) log_admin("[key_name(src)] has robotized [M.key].") var/mob/living/carbon/human/H = M - INVOKE_ASYNC(H, /mob/living/carbon/human.proc/Robotize) + INVOKE_ASYNC(H, TYPE_PROC_REF(/mob/living/carbon/human, Robotize)) else alert("Invalid mob") @@ -84,7 +84,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that return log_admin("[key_name(src)] has animalized [M.key].") - INVOKE_ASYNC(M, /mob.proc/Animalize) + INVOKE_ASYNC(M, TYPE_PROC_REF(/mob, Animalize)) /client/proc/makepAI(turf/T in GLOB.mob_list) @@ -128,7 +128,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Wait until the game starts") return if(ishuman(M)) - INVOKE_ASYNC(M, /mob/living/carbon/human/proc/Alienize) + INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living/carbon/human, Alienize)) SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] made [key_name(M)] into an alien at [AREACOORD(M)].") message_admins("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into an alien.") @@ -143,7 +143,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Wait until the game starts") return if(ishuman(M)) - INVOKE_ASYNC(M, /mob/living/carbon/human/proc/slimeize) + INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living/carbon/human, slimeize)) SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] made [key_name(M)] into a slime at [AREACOORD(M)].") message_admins("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into a slime.") diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 8c91e3abfc..1df7b4c980 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -310,9 +310,9 @@ ertemplate = new /datum/ert/centcom_official var/list/settings = list( - "preview_callback" = CALLBACK(src, .proc/makeERTPreviewIcon), + "preview_callback" = CALLBACK(src, PROC_REF(makeERTPreviewIcon)), "mainsettings" = list( - "template" = list("desc" = "Template", "callback" = CALLBACK(src, .proc/makeERTTemplateModified), "type" = "datum", "path" = "/datum/ert", "subtypesonly" = TRUE, "value" = ertemplate.type), + "template" = list("desc" = "Template", "callback" = CALLBACK(src, PROC_REF(makeERTTemplateModified)), "type" = "datum", "path" = "/datum/ert", "subtypesonly" = TRUE, "value" = ertemplate.type), "teamsize" = list("desc" = "Team Size", "type" = "number", "value" = ertemplate.teamsize), "mission" = list("desc" = "Mission", "type" = "string", "value" = ertemplate.mission), "polldesc" = list("desc" = "Ghost poll description", "type" = "string", "value" = ertemplate.polldesc), diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 3fb1a389ce..64c38a3c55 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -19,13 +19,13 @@ GLOBAL_VAR_INIT(highlander, FALSE) message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!") log_admin("[key_name(usr)] used THERE CAN BE ONLY ONE.") - addtimer(CALLBACK(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 1), 50) + addtimer(CALLBACK(SSshuttle.emergency, TYPE_PROC_REF(/obj/docking_port/mobile/emergency, request), null, 1), 50) /client/proc/only_one_delayed() send_to_playing_players("Bagpipes begin to blare. You feel Scottish pride coming over you.") message_admins("[key_name_admin(usr)] used (delayed) THERE CAN BE ONLY ONE!") log_admin("[key_name(usr)] used delayed THERE CAN BE ONLY ONE.") - addtimer(CALLBACK(src, .proc/only_one), 420) + addtimer(CALLBACK(src, PROC_REF(only_one)), 420) /mob/living/carbon/human/proc/make_scottish() mind.add_antag_datum(/datum/antagonist/highlander) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 1af29ae1f9..3ead57a445 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -890,7 +890,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if(!holder) return - var/weather_type = input("Choose a weather", "Weather") as null|anything in sortList(subtypesof(/datum/weather), /proc/cmp_typepaths_asc) + var/weather_type = input("Choose a weather", "Weather") as null|anything in sortList(subtypesof(/datum/weather), GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!weather_type) return diff --git a/code/modules/admin/view_variables/topic_basic.dm b/code/modules/admin/view_variables/topic_basic.dm index 2a1d4c7a6f..973be814f1 100644 --- a/code/modules/admin/view_variables/topic_basic.dm +++ b/code/modules/admin/view_variables/topic_basic.dm @@ -51,11 +51,11 @@ if(!check_rights(NONE)) return var/list/names = list() - var/list/componentsubtypes = sortList(subtypesof(/datum/component), /proc/cmp_typepaths_asc) + var/list/componentsubtypes = sortList(subtypesof(/datum/component), GLOBAL_PROC_REF(cmp_typepaths_asc)) names += "---Components---" names += componentsubtypes names += "---Elements---" - names += sortList(subtypesof(/datum/element), /proc/cmp_typepaths_asc) + names += sortList(subtypesof(/datum/element), GLOBAL_PROC_REF(cmp_typepaths_asc)) var/result = input(usr, "Choose a component/element to add","better know what ur fuckin doin pal") as null|anything in names if(!usr || !result || result == "---Components---" || result == "---Elements---") return diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm index e62ad88776..d69352eb4e 100644 --- a/code/modules/antagonists/abductor/abductor.dm +++ b/code/modules/antagonists/abductor/abductor.dm @@ -107,7 +107,7 @@ /datum/antagonist/abductor/get_admin_commands() . = ..() - .["Equip"] = CALLBACK(src,.proc/admin_equip) + .["Equip"] = CALLBACK(src,PROC_REF(admin_equip)) /datum/antagonist/abductor/proc/admin_equip(mob/admin) if(!ishuman(owner.current)) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index cd2b738102..7a87c86a71 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -660,7 +660,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} user.visible_message("[user] places down [src] and activates it.", "I place down [src] and activate it.") user.dropItemToGround(src) playsound(src, 'sound/blank.ogg', 50) - addtimer(CALLBACK(src, .proc/try_spawn_machine), 30) + addtimer(CALLBACK(src, PROC_REF(try_spawn_machine)), 30) /obj/item/abductor_machine_beacon/proc/try_spawn_machine() var/viable = FALSE diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm index 0f80befc7d..2f3a38eeda 100644 --- a/code/modules/antagonists/abductor/equipment/gland.dm +++ b/code/modules/antagonists/abductor/equipment/gland.dm @@ -61,7 +61,7 @@ update_gland_hud() var/obj/screen/alert/mind_control/mind_alert = owner.throw_alert("mind_control", /obj/screen/alert/mind_control) mind_alert.command = command - addtimer(CALLBACK(src, .proc/clear_mind_control), mind_control_duration) + addtimer(CALLBACK(src, PROC_REF(clear_mind_control)), mind_control_duration) return TRUE /obj/item/organ/heart/gland/proc/clear_mind_control() diff --git a/code/modules/antagonists/abductor/equipment/glands/access.dm b/code/modules/antagonists/abductor/equipment/glands/access.dm index 6a66b2cc57..5f1bc7b349 100644 --- a/code/modules/antagonists/abductor/equipment/glands/access.dm +++ b/code/modules/antagonists/abductor/equipment/glands/access.dm @@ -9,7 +9,7 @@ /obj/item/organ/heart/gland/access/activate() to_chat(owner, "I feel like a VIP for some reason.") - RegisterSignal(owner, COMSIG_MOB_ALLOWED, .proc/free_access) + RegisterSignal(owner, COMSIG_MOB_ALLOWED, PROC_REF(free_access)) /obj/item/organ/heart/gland/access/proc/free_access(datum/source, obj/O) return TRUE diff --git a/code/modules/antagonists/abductor/equipment/glands/electric.dm b/code/modules/antagonists/abductor/equipment/glands/electric.dm index 302860bb7b..e82883229c 100644 --- a/code/modules/antagonists/abductor/equipment/glands/electric.dm +++ b/code/modules/antagonists/abductor/equipment/glands/electric.dm @@ -19,7 +19,7 @@ owner.visible_message("[owner]'s skin starts emitting electric arcs!",\ "I feel electric energy building up inside you!") playsound(get_turf(owner), "sparks", 100, TRUE, -1) - addtimer(CALLBACK(src, .proc/zap), rand(30, 100)) + addtimer(CALLBACK(src, PROC_REF(zap)), rand(30, 100)) /obj/item/organ/heart/gland/electric/proc/zap() tesla_zap(owner, 4, 8000, TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE | TESLA_MOB_STUN) diff --git a/code/modules/antagonists/abductor/equipment/glands/heal.dm b/code/modules/antagonists/abductor/equipment/glands/heal.dm index d64f4b054d..5408bc3d3b 100644 --- a/code/modules/antagonists/abductor/equipment/glands/heal.dm +++ b/code/modules/antagonists/abductor/equipment/glands/heal.dm @@ -107,7 +107,7 @@ else to_chat(owner, "I feel a weird rumble behind my eye sockets...") - addtimer(CALLBACK(src, .proc/finish_replace_eyes), rand(100, 200)) + addtimer(CALLBACK(src, PROC_REF(finish_replace_eyes)), rand(100, 200)) /obj/item/organ/heart/gland/heal/proc/finish_replace_eyes() var/eye_type = /obj/item/organ/eyes @@ -125,7 +125,7 @@ else to_chat(owner, "I feel a weird tingle in my [parse_zone(body_zone)]... even if you don't have one.") - addtimer(CALLBACK(src, .proc/finish_replace_limb, body_zone), rand(150, 300)) + addtimer(CALLBACK(src, PROC_REF(finish_replace_limb), body_zone), rand(150, 300)) /obj/item/organ/heart/gland/heal/proc/finish_replace_limb(body_zone) owner.visible_message("With a loud snap, [owner]'s [parse_zone(body_zone)] rapidly grows back from [owner.p_their()] body!", @@ -155,7 +155,7 @@ if(owner.reagents.has_reagent(R.type)) keep_going = TRUE if(keep_going) - addtimer(CALLBACK(src, .proc/keep_replacing_blood), 30) + addtimer(CALLBACK(src, PROC_REF(keep_replacing_blood)), 30) /obj/item/organ/heart/gland/heal/proc/replace_chest(obj/item/bodypart/chest/chest) if(chest.status == BODYPART_ROBOTIC) diff --git a/code/modules/antagonists/abductor/equipment/glands/mindshock.dm b/code/modules/antagonists/abductor/equipment/glands/mindshock.dm index 302eecce64..43164bbdb3 100644 --- a/code/modules/antagonists/abductor/equipment/glands/mindshock.dm +++ b/code/modules/antagonists/abductor/equipment/glands/mindshock.dm @@ -48,7 +48,7 @@ if(LAZYLEN(broadcasted_mobs)) active_mind_control = TRUE - addtimer(CALLBACK(src, .proc/clear_mind_control), mind_control_duration) + addtimer(CALLBACK(src, PROC_REF(clear_mind_control)), mind_control_duration) update_gland_hud() return TRUE diff --git a/code/modules/antagonists/abductor/equipment/glands/plasma.dm b/code/modules/antagonists/abductor/equipment/glands/plasma.dm index bb16dfba92..9037b7de1d 100644 --- a/code/modules/antagonists/abductor/equipment/glands/plasma.dm +++ b/code/modules/antagonists/abductor/equipment/glands/plasma.dm @@ -9,8 +9,8 @@ /obj/item/organ/heart/gland/plasma/activate() to_chat(owner, "I feel bloated.") - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, owner, "A massive stomachache overcomes you."), 150) - addtimer(CALLBACK(src, .proc/vomit_plasma), 200) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), owner, "A massive stomachache overcomes you."), 150) + addtimer(CALLBACK(src, PROC_REF(vomit_plasma)), 200) /obj/item/organ/heart/gland/plasma/proc/vomit_plasma() if(!owner) diff --git a/code/modules/antagonists/abductor/equipment/glands/quantum.dm b/code/modules/antagonists/abductor/equipment/glands/quantum.dm index 8dfebb9fad..66cca1ecb0 100644 --- a/code/modules/antagonists/abductor/equipment/glands/quantum.dm +++ b/code/modules/antagonists/abductor/equipment/glands/quantum.dm @@ -15,7 +15,7 @@ if(!iscarbon(M)) continue entangled_mob = M - addtimer(CALLBACK(src, .proc/quantum_swap), rand(600, 2400)) + addtimer(CALLBACK(src, PROC_REF(quantum_swap)), rand(600, 2400)) return /obj/item/organ/heart/gland/quantum/proc/quantum_swap() diff --git a/code/modules/antagonists/abductor/machinery/pad.dm b/code/modules/antagonists/abductor/machinery/pad.dm index 3e57fe4b5c..d149a37676 100644 --- a/code/modules/antagonists/abductor/machinery/pad.dm +++ b/code/modules/antagonists/abductor/machinery/pad.dm @@ -31,7 +31,7 @@ /obj/machinery/abductor/pad/proc/MobToLoc(place,mob/living/target) new /obj/effect/temp_visual/teleport_abductor(place) - addtimer(CALLBACK(src, .proc/doMobToLoc, place, target), 80) + addtimer(CALLBACK(src, PROC_REF(doMobToLoc), place, target), 80) /obj/machinery/abductor/pad/proc/doPadToLoc(place) flick("alien-pad", src) @@ -41,7 +41,7 @@ /obj/machinery/abductor/pad/proc/PadToLoc(place) new /obj/effect/temp_visual/teleport_abductor(place) - addtimer(CALLBACK(src, .proc/doPadToLoc, place), 80) + addtimer(CALLBACK(src, PROC_REF(doPadToLoc), place), 80) /obj/effect/temp_visual/teleport_abductor name = "Huh" diff --git a/code/modules/antagonists/ashwalker/ashwalker.dm b/code/modules/antagonists/ashwalker/ashwalker.dm index 5e2abc9fd0..f1a906ab1d 100644 --- a/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/code/modules/antagonists/ashwalker/ashwalker.dm @@ -22,10 +22,10 @@ /datum/antagonist/ashwalker/on_body_transfer(mob/living/old_body, mob/living/new_body) UnregisterSignal(old_body, COMSIG_MOB_EXAMINATE) - RegisterSignal(new_body, COMSIG_MOB_EXAMINATE, .proc/on_examinate) + RegisterSignal(new_body, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) /datum/antagonist/ashwalker/on_gain() - RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, .proc/on_examinate) + RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) /datum/antagonist/ashwalker/on_removal() UnregisterSignal(owner.current, COMSIG_MOB_EXAMINATE) diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 6e07889682..2004b41b46 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -110,7 +110,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) set_security_level("delta") max_blob_points = INFINITY blob_points = INFINITY - addtimer(CALLBACK(src, .proc/victory), 450) + addtimer(CALLBACK(src, PROC_REF(victory)), 450) else if(!free_strain_rerolls && (last_reroll_time + BLOB_REROLL_TIMEI have gained another free strain re-roll.") free_strain_rerolls = 1 diff --git a/code/modules/antagonists/blob/powers.dm b/code/modules/antagonists/blob/powers.dm index e6412341a8..bae1b06b7a 100644 --- a/code/modules/antagonists/blob/powers.dm +++ b/code/modules/antagonists/blob/powers.dm @@ -354,7 +354,7 @@ var/datum/blobstrain/bs = pick((GLOB.valid_blobstrains)) choices[initial(bs.name)] = bs - var/choice = input(usr, "Please choose a new strain","Strain") as anything in sortList(choices, /proc/cmp_typepaths_asc) + var/choice = input(usr, "Please choose a new strain","Strain") as anything in sortList(choices, GLOBAL_PROC_REF(cmp_typepaths_asc)) if (choice && choices[choice] && !QDELETED(src)) var/datum/blobstrain/bs = choices[choice] set_strain(bs) diff --git a/code/modules/antagonists/blob/structures/core.dm b/code/modules/antagonists/blob/structures/core.dm index f37a30f6eb..6a9f56f59d 100644 --- a/code/modules/antagonists/blob/structures/core.dm +++ b/code/modules/antagonists/blob/structures/core.dm @@ -18,7 +18,7 @@ return INITIALIZE_HINT_QDEL if(overmind) update_icon() - addtimer(CALLBACK(src, .proc/generate_announcement), 1800) + addtimer(CALLBACK(src, PROC_REF(generate_announcement)), 1800) . = ..() /obj/structure/blob/core/proc/generate_announcement() diff --git a/code/modules/antagonists/blood_contract/blood_contract.dm b/code/modules/antagonists/blood_contract/blood_contract.dm index 68417bc1f7..bd13253ca9 100644 --- a/code/modules/antagonists/blood_contract/blood_contract.dm +++ b/code/modules/antagonists/blood_contract/blood_contract.dm @@ -29,7 +29,7 @@ var/obj/effect/mine/pickup/bloodbath/B = new(H) B.duration = duration - INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, H) //could use moving out from the mine + INVOKE_ASYNC(B, TYPE_PROC_REF(/obj/effect/mine/pickup/bloodbath, mineEffect), H) //could use moving out from the mine for(var/mob/living/carbon/human/P in GLOB.player_list) if(P == H) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 0fc00c8add..0e3d3422e1 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -355,7 +355,7 @@ if(B) B.organ_flags &= ~ORGAN_VITAL B.decoy_override = TRUE - RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/stingAtom) + RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), PROC_REF(stingAtom)) var/mob/living/M = mob_override || owner.current add_antag_hud(antag_hud_type, antag_hud_name, M) handle_clown_mutation(M, "You have evolved beyond your clownish nature, allowing you to wield weapons without harming myself.") @@ -484,7 +484,7 @@ /datum/antagonist/changeling/get_admin_commands() . = ..() if(stored_profiles.len && (owner.current.real_name != first_prof.name)) - .["Transform to initial appearance."] = CALLBACK(src,.proc/admin_restore_appearance) + .["Transform to initial appearance."] = CALLBACK(src,PROC_REF(admin_restore_appearance)) /datum/antagonist/changeling/proc/admin_restore_appearance(mob/admin) if(!stored_profiles.len || !iscarbon(owner.current)) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 1ba9f3a93a..19e24658d6 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -20,7 +20,7 @@ user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ "We vomit acidic ooze onto our restraints!") - addtimer(CALLBACK(src, .proc/dissolve_handcuffs, user, O), 30) + addtimer(CALLBACK(src, PROC_REF(dissolve_handcuffs), user, O), 30) used = TRUE if(user.wear_armor && user.wear_armor.breakouttime && !used) @@ -29,7 +29,7 @@ return 0 user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ "We vomit acidic ooze onto our straight jacket!") - addtimer(CALLBACK(src, .proc/dissolve_straightjacket, user, S), 30) + addtimer(CALLBACK(src, PROC_REF(dissolve_straightjacket), user, S), 30) used = TRUE @@ -39,7 +39,7 @@ return 0 C.visible_message("[C]'s hinges suddenly begin to melt and run!") to_chat(user, "We vomit acidic goop onto the interior of [C]!") - addtimer(CALLBACK(src, .proc/open_closet, user, C), 70) + addtimer(CALLBACK(src, PROC_REF(open_closet), user, C), 70) used = TRUE if(istype(user.loc, /obj/structure/spider/cocoon) && !used) @@ -48,7 +48,7 @@ return 0 C.visible_message("[src] shifts and starts to fall apart!") to_chat(user, "We secrete acidic enzymes from our skin and begin melting our cocoon...") - addtimer(CALLBACK(src, .proc/dissolve_cocoon, user, C), 25) //Very short because it's just webs + addtimer(CALLBACK(src, PROC_REF(dissolve_cocoon), user, C), 25) //Very short because it's just webs used = TRUE ..() return used diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index c4fd8fac24..922b434b4d 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -13,7 +13,7 @@ /datum/action/changeling/fakedeath/sting_action(mob/living/user) ..() if(revive_ready) - INVOKE_ASYNC(src, .proc/revive, user) + INVOKE_ASYNC(src, PROC_REF(revive), user) revive_ready = FALSE name = "Reviving Stasis" desc = "" @@ -26,7 +26,7 @@ user.fakedeath("changeling") //play dead user.update_stat() user.update_mobility() - addtimer(CALLBACK(src, .proc/ready_to_regenerate, user), LING_FAKEDEATH_TIME, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(ready_to_regenerate), user), LING_FAKEDEATH_TIME, TIMER_UNIQUE) return TRUE /datum/action/changeling/fakedeath/proc/revive(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index fec47dc3a6..f32789ba4d 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -377,12 +377,12 @@ if(INTENT_GRAB) C.visible_message("[L] is grabbed by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_grab, H, C)) + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, PROC_REF(tentacle_grab), H, C)) return BULLET_ACT_HIT if(INTENT_HARM) C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_stab, H, C)) + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, PROC_REF(tentacle_stab), H, C)) return BULLET_ACT_HIT else L.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 6da29e54b9..55fd6caa4d 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -25,7 +25,7 @@ user.Paralyze(60) user.emote("breathgasp") - INVOKE_ASYNC(src, .proc/muscle_loop, user) + INVOKE_ASYNC(src, PROC_REF(muscle_loop), user) return TRUE diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 6b5c6d636d..544ed8c59f 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -150,7 +150,7 @@ target.visible_message("A grotesque blade forms around [target.name]\'s arm!", "My arm twists and mutates, transforming into a horrific monstrosity!", "I hear organic matter ripping and tearing!") playsound(target, 'sound/blank.ogg', 30, TRUE) - addtimer(CALLBACK(src, .proc/remove_fake, target, blade), 600) + addtimer(CALLBACK(src, PROC_REF(remove_fake), target, blade), 600) return TRUE /datum/action/changeling/sting/false_armblade/proc/remove_fake(mob/target, obj/item/melee/arm_blade/false/blade) @@ -222,7 +222,7 @@ /datum/action/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "LSD sting") - addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(300,600)) + addtimer(CALLBACK(src, PROC_REF(hallucination_time), target), rand(300,600)) return TRUE /datum/action/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 67e6bbacdc..8b96d036e1 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -264,7 +264,7 @@ SEND_SOUND(ranged_ability_user, sound('sound/blank.ogg',0,1,50)) var/image/C = image('icons/effects/cult_effects.dmi',H,"bloodsparkles", ABOVE_MOB_LAYER) add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(H,/atom/.proc/remove_alt_appearance,"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(H,TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) to_chat(ranged_ability_user,"[H] has been cursed with living nightmares!") attached_action.charges-- attached_action.desc = attached_action.base_desc @@ -425,7 +425,7 @@ L.mob_light(_range = 2, _color = LIGHT_COLOR_HOLY_MAGIC, _duration = 10 SECONDS) var/mutable_appearance/forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER) L.add_overlay(forbearance) - addtimer(CALLBACK(L, /atom/proc/cut_overlay, forbearance), 100) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100) if(istype(anti_magic_source, /obj/item)) var/obj/item/ams_object = anti_magic_source diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 1b932a9161..5fbe365a9a 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -159,9 +159,9 @@ /datum/antagonist/cult/get_admin_commands() . = ..() - .["Dagger"] = CALLBACK(src,.proc/admin_give_dagger) - .["Dagger and Metal"] = CALLBACK(src,.proc/admin_give_metal) - .["Remove Dagger and Metal"] = CALLBACK(src, .proc/admin_take_all) + .["Dagger"] = CALLBACK(src,PROC_REF(admin_give_dagger)) + .["Dagger and Metal"] = CALLBACK(src,PROC_REF(admin_give_metal)) + .["Remove Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) /datum/antagonist/cult/proc/admin_give_dagger(mob/admin) if(!equip_cultist(metal=FALSE)) @@ -266,7 +266,7 @@ if(B.current) SEND_SOUND(B.current, 'sound/blank.ogg') to_chat(B.current, "The veil weakens as my cult grows, my eyes begin to glow...") - addtimer(CALLBACK(src, .proc/rise, B.current), 200) + addtimer(CALLBACK(src, PROC_REF(rise), B.current), 200) cult_risen = TRUE if(ratio > CULT_ASCENDENT && !cult_ascendent) @@ -274,7 +274,7 @@ if(B.current) SEND_SOUND(B.current, 'sound/blank.ogg') to_chat(B.current, "My cult is ascendent and the red harvest approaches - you cannot hide my true nature for much longer!!") - addtimer(CALLBACK(src, .proc/ascend, B.current), 200) + addtimer(CALLBACK(src, PROC_REF(ascend), B.current), 200) cult_ascendent = TRUE diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index c8329c0953..5da6a493d0 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -185,7 +185,7 @@ S.release_shades(owner) B.current.setDir(SOUTH) new /obj/effect/temp_visual/cult/blood(final) - addtimer(CALLBACK(B.current, /mob/.proc/reckon, final), 10) + addtimer(CALLBACK(B.current, TYPE_PROC_REF(/mob, reckon), final), 10) else return antag.cult_team.reckoning_complete = TRUE @@ -271,7 +271,7 @@ C.cult_team.blood_target = target var/area/A = get_area(target) attached_action.cooldown = world.time + attached_action.base_cooldown - addtimer(CALLBACK(attached_action.owner, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) + addtimer(CALLBACK(attached_action.owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) C.cult_team.blood_target_image = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) C.cult_team.blood_target_image.appearance_flags = RESET_COLOR C.cult_team.blood_target_image.pixel_x = -target.pixel_x @@ -283,7 +283,7 @@ B.current.client.images += C.cult_team.blood_target_image attached_action.owner.update_action_buttons_icon() remove_ranged_ability("The marking rite is complete! It will last for 90 seconds.") - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target,C.cult_team), 900, TIMER_STOPPABLE) + C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE) return TRUE return FALSE @@ -350,7 +350,7 @@ C.cult_team.blood_target = target var/area/A = get_area(target) cooldown = world.time + base_cooldown - addtimer(CALLBACK(owner, /mob.proc/update_action_buttons_icon), base_cooldown) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) C.cult_team.blood_target_image = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) C.cult_team.blood_target_image.appearance_flags = RESET_COLOR C.cult_team.blood_target_image.pixel_x = -target.pixel_x @@ -367,8 +367,8 @@ desc = "" button_icon_state = "emp" owner.update_action_buttons_icon() - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target,C.cult_team), base_cooldown, TIMER_STOPPABLE) - addtimer(CALLBACK(src, .proc/reset_button), base_cooldown) + C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown) //////// ELDRITCH PULSE ///////// @@ -458,4 +458,4 @@ attached_action.cooldown = world.time + attached_action.base_cooldown remove_ranged_ability("A pulse of blood magic surges through you as you shift [attached_action.throwee] through time and space.") caller.update_action_buttons_icon() - addtimer(CALLBACK(caller, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) + addtimer(CALLBACK(caller, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 2b0fa859cc..72b62c39c3 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -229,7 +229,7 @@ sword.spinning = TRUE sword.block_chance = 100 sword.slowdown += 1.5 - addtimer(CALLBACK(src, .proc/stop_spinning), 50) + addtimer(CALLBACK(src, PROC_REF(stop_spinning)), 50) holder.update_action_buttons_icon() /datum/action/innate/cult/spin2win/proc/stop_spinning() @@ -782,10 +782,10 @@ qdel(src) return charging = TRUE - INVOKE_ASYNC(src, .proc/charge, user) + INVOKE_ASYNC(src, PROC_REF(charge), user) if(do_after(user, 90, target = user)) firing = TRUE - INVOKE_ASYNC(src, .proc/pewpew, user, params) + INVOKE_ASYNC(src, PROC_REF(pewpew), user, params) var/obj/structure/emergency_shield/invoker/N = new(user.loc) if(do_after(user, 90, target = user)) user.Paralyze(40) @@ -858,7 +858,7 @@ playsound(L, 'sound/blank.ogg', 50, TRUE) L.emote("scream") var/datum/beam/current_beam = new(user,temp_target,time=7,beam_icon_state="blood_beam",btype=/obj/effect/ebeam/blood) - INVOKE_ASYNC(current_beam, /datum/beam.proc/Start) + INVOKE_ASYNC(current_beam, TYPE_PROC_REF(/datum/beam, Start)) /obj/effect/ebeam/blood @@ -899,7 +899,7 @@ playsound(src, 'sound/blank.ogg', 100, TRUE) if(illusions > 0) illusions-- - addtimer(CALLBACK(src, /obj/item/shield/mirror.proc/readd), 450) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/shield/mirror, readd)), 450) if(prob(60)) var/mob/living/simple_animal/hostile/illusion/M = new(owner.loc) M.faction = list("cult") diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm index b7f62cca49..5373b036e4 100644 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ b/code/modules/antagonists/cult/rune_spawn_action.dm @@ -57,7 +57,7 @@ cooldown = base_cooldown + world.time owner.update_action_buttons_icon() - addtimer(CALLBACK(owner, /mob.proc/update_action_buttons_icon), base_cooldown) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) var/list/health if(damage_interrupt && isliving(owner)) var/mob/living/L = owner @@ -66,7 +66,7 @@ if(istype(T, /turf/open/floor/engine/cult)) scribe_mod *= 0.5 playsound(T, 'sound/blank.ogg', 100, FALSE) - if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, /mob.proc/break_do_after_checks, health, action_interrupt))) + if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt))) var/obj/effect/rune/new_rune = new rune_type(owner.loc) new_rune.keyword = chosen_keyword else diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index f3ac03d4aa..13090974e8 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -157,7 +157,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/oldcolor = color color = rgb(255, 0, 0) animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) //Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. /obj/effect/rune/malformed @@ -221,7 +221,7 @@ structure_check() searches for nearby cultist structures required for the invoca ..() do_sacrifice(L, invokers) animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew rune_in_use = FALSE @@ -437,7 +437,7 @@ structure_check() searches for nearby cultist structures required for the invoca outer_portal = new(T, 600, color) light_range = 4 update_light() - addtimer(CALLBACK(src, .proc/close_portal), 600, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(close_portal)), 600, TIMER_UNIQUE) /obj/effect/rune/teleport/proc/close_portal() qdel(inner_portal) @@ -654,7 +654,7 @@ structure_check() searches for nearby cultist structures required for the invoca W.density = TRUE W.update_state() W.spread_density() - density_timer = addtimer(CALLBACK(src, .proc/lose_density), 3000, TIMER_STOPPABLE) + density_timer = addtimer(CALLBACK(src, PROC_REF(lose_density)), 3000, TIMER_STOPPABLE) /obj/effect/rune/wall/proc/lose_density() if(density) @@ -664,7 +664,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/oldcolor = color add_atom_colour("#696969", FIXED_COLOUR_PRIORITY) animate(src, color = oldcolor, time = 50, easing = EASE_IN) - addtimer(CALLBACK(src, .proc/recharge), 50) + addtimer(CALLBACK(src, PROC_REF(recharge)), 50) /obj/effect/rune/wall/proc/recharge() recharging = FALSE @@ -973,11 +973,11 @@ structure_check() searches for nearby cultist structures required for the invoca if(ishuman(M)) if(!iscultist(M)) AH.remove_hud_from(M) - addtimer(CALLBACK(GLOBAL_PROC, .proc/hudFix, M), duration) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration) var/image/A = image('icons/mob/mob.dmi',M,"cultist", ABOVE_MOB_LAYER) A.override = 1 add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE) - addtimer(CALLBACK(M,/atom/.proc/remove_alt_appearance,"human_apoc",TRUE), duration) + addtimer(CALLBACK(M,TYPE_PROC_REF(/atom, remove_alt_appearance),"human_apoc",TRUE), duration) images += A SEND_SOUND(M, pick(sound('sound/blank.ogg'))) else @@ -985,13 +985,13 @@ structure_check() searches for nearby cultist structures required for the invoca var/image/B = image('icons/mob/mob.dmi',M,construct, ABOVE_MOB_LAYER) B.override = 1 add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "mob_apoc", B, NONE) - addtimer(CALLBACK(M,/atom/.proc/remove_alt_appearance,"mob_apoc",TRUE), duration) + addtimer(CALLBACK(M,TYPE_PROC_REF(/atom, remove_alt_appearance),"mob_apoc",TRUE), duration) images += B if(!iscultist(M)) if(M.client) var/image/C = image('icons/effects/cult_effects.dmi',M,"bloodsparkles", ABOVE_MOB_LAYER) add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(M,/atom/.proc/remove_alt_appearance,"cult_apoc",TRUE), duration) + addtimer(CALLBACK(M,TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), duration) images += C else to_chat(M, "An Apocalypse Rune was invoked in the [place.name], it is no longer available as a summoning site!") diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 06488f2cd1..4f5461831e 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -118,7 +118,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", /datum/antagonist/devil/get_admin_commands() . = ..() - .["Toggle ascendable"] = CALLBACK(src,.proc/admin_toggle_ascendable) + .["Toggle ascendable"] = CALLBACK(src,PROC_REF(admin_toggle_ascendable)) /datum/antagonist/devil/proc/admin_toggle_ascendable(mob/admin) diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm index e6d6acdaf7..010be741b5 100644 --- a/code/modules/antagonists/devil/imp/imp.dm +++ b/code/modules/antagonists/devil/imp/imp.dm @@ -50,7 +50,7 @@ /mob/living/simple_animal/imp/Initialize() . = ..() set_varspeed(1) - addtimer(CALLBACK(src, /mob/living/simple_animal/proc/set_varspeed, 0), 30) + addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal, set_varspeed), 0), 30) /datum/antagonist/imp name = "Imp" diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 57cf665c43..a7d9287799 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -60,7 +60,7 @@ stat = DEAD ..(gibbed) drop_all_held_items() - INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), /datum/antagonist/devil/proc/beginResurrectionCheck, src) + INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) /mob/living/carbon/true_devil/examine(mob/user) diff --git a/code/modules/antagonists/disease/disease_event.dm b/code/modules/antagonists/disease/disease_event.dm index 7183ed5455..370db73c2f 100644 --- a/code/modules/antagonists/disease/disease_event.dm +++ b/code/modules/antagonists/disease/disease_event.dm @@ -19,7 +19,7 @@ var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) virus.key = selected.key - INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name) + INVOKE_ASYNC(virus, TYPE_PROC_REF(/mob/camera/disease, pick_name)) message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by an event.") log_game("[key_name(virus)] was spawned as a sentient disease by an event.") spawned_mobs += virus diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index 7ae719d83e..49039821b7 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -67,7 +67,7 @@ the new instance inside the host to be updated to the template's stats. browser = new /datum/browser(src, "disease_menu", "Adaptation Menu", 1000, 770, src) freemove_end = world.time + freemove_time - freemove_end_timerid = addtimer(CALLBACK(src, .proc/infect_random_patient_zero), freemove_time, TIMER_STOPPABLE) + freemove_end_timerid = addtimer(CALLBACK(src, PROC_REF(infect_random_patient_zero)), freemove_time, TIMER_STOPPABLE) /mob/camera/disease/Destroy() . = ..() @@ -266,7 +266,7 @@ the new instance inside the host to be updated to the template's stats. /mob/camera/disease/proc/set_following(mob/living/L) if(following_host) UnregisterSignal(following_host, COMSIG_MOVABLE_MOVED) - RegisterSignal(L, COMSIG_MOVABLE_MOVED, .proc/follow_mob) + RegisterSignal(L, COMSIG_MOVABLE_MOVED, PROC_REF(follow_mob)) following_host = L follow_mob() @@ -305,7 +305,7 @@ the new instance inside the host to be updated to the template's stats. /mob/camera/disease/proc/adapt_cooldown() to_chat(src, "I have altered your genetic structure. You will be unable to adapt again for [DisplayTimeText(adaptation_cooldown)].") next_adaptation_time = world.time + adaptation_cooldown - addtimer(CALLBACK(src, .proc/notify_adapt_ready), adaptation_cooldown) + addtimer(CALLBACK(src, PROC_REF(notify_adapt_ready)), adaptation_cooldown) /mob/camera/disease/proc/notify_adapt_ready() to_chat(src, "I are now ready to adapt again.") diff --git a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm index 56795accc5..bc4abd2622 100644 --- a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm +++ b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm @@ -111,7 +111,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, signalCache) - RegisterSignal(user, signalCache, .proc/disrupt) + RegisterSignal(user, signalCache, PROC_REF(disrupt)) listeningTo = user /obj/item/borg_chameleon/proc/deactivate(mob/living/silicon/robot/user) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 6b640d6974..ab961ab8fd 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -413,7 +413,7 @@ sound_to_playing_players('sound/blank.ogg') if(SSticker && SSticker.mode) SSticker.roundend_check_paused = TRUE - addtimer(CALLBACK(src, .proc/actually_explode), 100) + addtimer(CALLBACK(src, PROC_REF(actually_explode)), 100) /obj/machinery/nuclearbomb/proc/actually_explode() if(!core) @@ -447,8 +447,8 @@ SSticker.roundend_check_paused = FALSE /obj/machinery/nuclearbomb/proc/really_actually_explode(off_station) - Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker,/datum/controller/subsystem/ticker/proc/station_explosion_detonation,src)) - INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, z) + Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker,TYPE_PROC_REF(/datum/controller/subsystem/ticker, station_explosion_detonation),src)) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(KillEveryoneOnZLevel), z) /obj/machinery/nuclearbomb/proc/get_cinematic_type(off_station) if(off_station < 2) @@ -494,10 +494,10 @@ var/datum/round_event_control/E = locate(/datum/round_event_control/vent_clog/beer) in SSevents.control if(E) E.runEvent() - addtimer(CALLBACK(src, .proc/really_actually_explode), 110) + addtimer(CALLBACK(src, PROC_REF(really_actually_explode)), 110) else visible_message("[src] fizzes ominously.") - addtimer(CALLBACK(src, .proc/fizzbuzz), 110) + addtimer(CALLBACK(src, PROC_REF(fizzbuzz)), 110) /obj/machinery/nuclearbomb/beer/proc/disarm() detonation_timer = null @@ -641,8 +641,8 @@ This is here to make the tiles around the station mininuke change when it's arme user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!") playsound(src, 'sound/blank.ogg', 50, -1, TRUE) for(var/i in 1 to 100) - addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 101) + addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) + addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 101) return MANUAL_SUICIDE /obj/item/disk/nuclear/proc/manual_suicide(mob/living/user) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index ea1e9ef914..dd9d7a1482 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -131,8 +131,8 @@ /datum/antagonist/nukeop/get_admin_commands() . = ..() - .["Send to base"] = CALLBACK(src,.proc/admin_send_to_base) - .["Tell code"] = CALLBACK(src,.proc/admin_tell_code) + .["Send to base"] = CALLBACK(src,PROC_REF(admin_send_to_base)) + .["Tell code"] = CALLBACK(src,PROC_REF(admin_tell_code)) /datum/antagonist/nukeop/proc/admin_send_to_base(mob/admin) owner.current.forceMove(pick(GLOB.nukeop_start)) @@ -181,7 +181,7 @@ to_chat(owner, "If you feel you are not up to this task, give your ID to another operative.") to_chat(owner, "In your hand you will find a special item capable of triggering a greater challenge for your team. Examine it carefully and consult with your fellow operatives before activating it.") owner.announce_objectives() - addtimer(CALLBACK(src, .proc/nuketeam_name_assign), 1) + addtimer(CALLBACK(src, PROC_REF(nuketeam_name_assign)), 1) /datum/antagonist/nukeop/leader/proc/nuketeam_name_assign() diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index f374d60e31..0597b67789 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -196,7 +196,7 @@ adjustBruteLoss(25) //hella effective inhibited = TRUE update_action_buttons_icon() - addtimer(CALLBACK(src, .proc/reset_inhibit), 30) + addtimer(CALLBACK(src, PROC_REF(reset_inhibit)), 30) /mob/living/simple_animal/revenant/proc/reset_inhibit() inhibited = FALSE @@ -358,7 +358,7 @@ /obj/item/ectoplasm/revenant/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/try_reform), 600) + addtimer(CALLBACK(src, PROC_REF(try_reform)), 600) /obj/item/ectoplasm/revenant/proc/scatter() qdel(src) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index 5f82dd4dd7..13a10c1ed7 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -194,7 +194,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/overload, T, user) + INVOKE_ASYNC(src, PROC_REF(overload), T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/proc/overload(turf/T, mob/user) for(var/obj/machinery/light/L in T) @@ -205,7 +205,7 @@ s.set_up(4, 0, L) s.start() new /obj/effect/temp_visual/revenant(get_turf(L)) - addtimer(CALLBACK(src, .proc/overload_shock, L, user), 20) + addtimer(CALLBACK(src, PROC_REF(overload_shock), L, user), 20) /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/proc/overload_shock(obj/machinery/light/L, mob/user) if(!L.on) //wait, wait, don't shock me @@ -235,7 +235,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/defile, T) + INVOKE_ASYNC(src, PROC_REF(defile), T) /obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T) for(var/obj/effect/blessing/B in T) @@ -286,7 +286,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/malfunction, T, user) + INVOKE_ASYNC(src, PROC_REF(malfunction), T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/proc/malfunction(turf/T, mob/user) for(var/mob/living/simple_animal/bot/bot in T) @@ -332,7 +332,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/blight/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/blight, T, user) + INVOKE_ASYNC(src, PROC_REF(blight), T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/blight/proc/blight(turf/T, mob/user) for(var/mob/living/mob in T) diff --git a/code/modules/antagonists/revenant/revenant_blight.dm b/code/modules/antagonists/revenant/revenant_blight.dm index 09987a803f..0dc4a8af77 100644 --- a/code/modules/antagonists/revenant/revenant_blight.dm +++ b/code/modules/antagonists/revenant/revenant_blight.dm @@ -62,6 +62,6 @@ affected_mob.dna.species.handle_hair(affected_mob,"#1d2953") affected_mob.visible_message("[affected_mob] looks terrifyingly gaunt...", "I suddenly feel like your skin is wrong...") affected_mob.add_atom_colour("#1d2953", TEMPORARY_COLOUR_PRIORITY) - addtimer(CALLBACK(src, .proc/cure), 100) + addtimer(CALLBACK(src, PROC_REF(cure)), 100) else return diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index 1d3c481324..ca22426e45 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -88,7 +88,7 @@ /datum/antagonist/rev/get_admin_commands() . = ..() - .["Promote"] = CALLBACK(src,.proc/admin_promote) + .["Promote"] = CALLBACK(src,PROC_REF(admin_promote)) /datum/antagonist/rev/proc/admin_promote(mob/admin) var/datum/mind/O = owner @@ -108,10 +108,10 @@ /datum/antagonist/rev/head/get_admin_commands() . = ..() . -= "Promote" - .["Take flash"] = CALLBACK(src,.proc/admin_take_flash) - .["Give flash"] = CALLBACK(src,.proc/admin_give_flash) - .["Repair flash"] = CALLBACK(src,.proc/admin_repair_flash) - .["Demote"] = CALLBACK(src,.proc/admin_demote) + .["Take flash"] = CALLBACK(src,PROC_REF(admin_take_flash)) + .["Give flash"] = CALLBACK(src,PROC_REF(admin_give_flash)) + .["Repair flash"] = CALLBACK(src,PROC_REF(admin_repair_flash)) + .["Demote"] = CALLBACK(src,PROC_REF(admin_demote)) /datum/antagonist/rev/head/proc/admin_take_flash(mob/admin) var/list/L = owner.current.get_contents() @@ -269,7 +269,7 @@ var/datum/antagonist/rev/R = M.has_antag_datum(/datum/antagonist/rev) R.objectives |= objectives - addtimer(CALLBACK(src,.proc/update_objectives),HEAD_UPDATE_PERIOD,TIMER_UNIQUE) + addtimer(CALLBACK(src,PROC_REF(update_objectives)),HEAD_UPDATE_PERIOD,TIMER_UNIQUE) /datum/team/revolution/proc/head_revolutionaries() . = list() @@ -301,7 +301,7 @@ var/datum/antagonist/rev/rev = new_leader.has_antag_datum(/datum/antagonist/rev) rev.promote() - addtimer(CALLBACK(src,.proc/update_heads),HEAD_UPDATE_PERIOD,TIMER_UNIQUE) + addtimer(CALLBACK(src,PROC_REF(update_heads)),HEAD_UPDATE_PERIOD,TIMER_UNIQUE) /datum/team/revolution/proc/save_members() ex_headrevs = get_antag_minds(/datum/antagonist/rev/head, TRUE) diff --git a/code/modules/antagonists/roguetown/villain/bandit.dm b/code/modules/antagonists/roguetown/villain/bandit.dm index adb35f6d99..e39c011423 100644 --- a/code/modules/antagonists/roguetown/villain/bandit.dm +++ b/code/modules/antagonists/roguetown/villain/bandit.dm @@ -72,7 +72,7 @@ // H.real_name = H.client.prefs.pref_species.random_name(MALE,1) //set_species randomizes name H.cmode_music = 'sound/music/combatbandit.ogg' - addtimer(CALLBACK(H, /mob/living/carbon/human/.proc/choose_name_popup, "BANDIT"), 5 SECONDS) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, choose_name_popup), "BANDIT"), 5 SECONDS) // H.job = "Bandit" // H.advjob = pick("Cheesemaker", "Mercenary", "Barbarian", "Ranger", "Rogue") H.equipOutfit(/datum/outfit/job/roguetown/bandit) diff --git a/code/modules/antagonists/roguetown/villain/peasantrebel.dm b/code/modules/antagonists/roguetown/villain/peasantrebel.dm index 402271b7ea..6a2159e4c0 100644 --- a/code/modules/antagonists/roguetown/villain/peasantrebel.dm +++ b/code/modules/antagonists/roguetown/villain/peasantrebel.dm @@ -125,7 +125,7 @@ user.say(inputty, forced = "spell") var/datum/antagonist/prebel/PR = user.mind.has_antag_datum(/datum/antagonist/prebel) for(var/mob/living/carbon/human/L in get_hearers_in_view(6, get_turf(user))) - addtimer(CALLBACK(L,/mob/living/carbon/human.proc/rev_ask, user,PR,inputty),1) + addtimer(CALLBACK(L,TYPE_PROC_REF(/mob/living/carbon/human, rev_ask), user,PR,inputty),1) /mob/living/carbon/human/proc/rev_ask(mob/living/carbon/human/guy,datum/antagonist/prebel/mind_datum,offer) if(!guy || !mind_datum || !offer) @@ -182,7 +182,7 @@ R = M.has_antag_datum(/datum/antagonist/prebel/head) R.objectives |= objectives - addtimer(CALLBACK(src,.proc/update_objectives),INGAME_ROLE_HEAD_UPDATE_PERIOD,TIMER_UNIQUE) + addtimer(CALLBACK(src,PROC_REF(update_objectives)),INGAME_ROLE_HEAD_UPDATE_PERIOD,TIMER_UNIQUE) /datum/team/prebels/roundend_report() diff --git a/code/modules/antagonists/roguetown/villain/vampire.dm b/code/modules/antagonists/roguetown/villain/vampire.dm index bb0f6222db..45553aaa3b 100644 --- a/code/modules/antagonists/roguetown/villain/vampire.dm +++ b/code/modules/antagonists/roguetown/villain/vampire.dm @@ -375,7 +375,7 @@ if(mob_timers["becoming_vampire"]) return mob_timers["becoming_vampire"] = world.time - addtimer(CALLBACK(src, .mob/living/carbon/human/proc/vampire_finalize), 2 MINUTES) + addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/carbon/human, vampire_finalize)), 2 MINUTES) to_chat(src, "I feel sick...") src.playsound_local(get_turf(src), 'sound/music/horror.ogg', 80, FALSE, pressure_affected = FALSE) flash_fullscreen("redflash3") @@ -407,4 +407,4 @@ H.layer = SPLASHSCREEN_LAYER+0.1 client.screen += H H.Fade() - addtimer(CALLBACK(H, /obj/screen/gameover/proc/Fade, TRUE), 100) + addtimer(CALLBACK(H, TYPE_PROC_REF(/obj/screen/gameover, Fade), TRUE), 100) diff --git a/code/modules/antagonists/roguetown/villain/vampirelord.dm b/code/modules/antagonists/roguetown/villain/vampirelord.dm index dd0f1a06f5..0203e9dc53 100644 --- a/code/modules/antagonists/roguetown/villain/vampirelord.dm +++ b/code/modules/antagonists/roguetown/villain/vampirelord.dm @@ -4,6 +4,8 @@ #define VAMP_LEVEL_THREE 15000 #define VAMP_LEVEL_FOUR 20000 +GLOBAL_LIST_EMPTY(vampire_objects) + /datum/antagonist/vampirelord name = "Vampire Lord" roundend_category = "Vampires" @@ -68,20 +70,20 @@ owner.current.verbs |= /mob/living/carbon/human/proc/disguise_button add_objective(/datum/objective/vlordserve) finalize_vampire_lesser() - for(var/obj/structure/vampire/bloodpool/mansion in world) + for(var/obj/structure/vampire/bloodpool/mansion in GLOB.vampire_objects) mypool = mansion equip_spawn() greet() - addtimer(CALLBACK(owner.current, /mob/living/carbon/human/.proc/spawn_pick_class, "VAMPIRE SPAWN"), 5 SECONDS) + addtimer(CALLBACK(owner.current, TYPE_PROC_REF(/mob/living/carbon/human, spawn_pick_class), "VAMPIRE SPAWN"), 5 SECONDS) else forge_vampirelord_objectives() finalize_vampire() owner.current.verbs |= /mob/living/carbon/human/proc/demand_submission owner.current.verbs |= /mob/living/carbon/human/proc/punish_spawn - for(var/obj/structure/vampire/bloodpool/mansion in world) + for(var/obj/structure/vampire/bloodpool/mansion in GLOB.vampire_objects) mypool = mansion equip_lord() - addtimer(CALLBACK(owner.current, /mob/living/carbon/human/.proc/choose_name_popup, "VAMPIRE LORD"), 5 SECONDS) + addtimer(CALLBACK(owner.current, TYPE_PROC_REF(/mob/living/carbon/human, choose_name_popup), "VAMPIRE LORD"), 5 SECONDS) greet() return ..() // OLD AND EDITED @@ -398,11 +400,11 @@ vamplevel = 1 batform = new owner.current.AddSpell(batform) - for(var/obj/structure/vampire/portalmaker/S in world) + for(var/obj/structure/vampire/portalmaker/S in GLOB.vampire_objects) S.unlocked = TRUE for(var/S in MOBSTATS) owner.current.change_stat(S, 2) - for(var/obj/structure/vampire/bloodpool/B in world) + for(var/obj/structure/vampire/bloodpool/B in GLOB.vampire_objects) B.nextlevel = VAMP_LEVEL_TWO to_chat(owner, "I am refreshed and have grown stronger. The visage of the bat is once again available to me. I can also once again access my portals.") if(1) @@ -415,12 +417,12 @@ owner.current.AddSpell(gas) for(var/S in MOBSTATS) owner.current.change_stat(S, 2) - for(var/obj/structure/vampire/bloodpool/B in world) + for(var/obj/structure/vampire/bloodpool/B in GLOB.vampire_objects) B.nextlevel = VAMP_LEVEL_THREE to_chat(owner, "My power is returning. I can once again access my spells. I have also regained usage of my mist form.") if(2) vamplevel = 3 - for(var/obj/structure/vampire/necromanticbook/S in world) + for(var/obj/structure/vampire/necromanticbook/S in GLOB.vampire_objects) S.unlocked = TRUE owner.current.verbs |= /mob/living/carbon/human/proc/blood_strength owner.current.verbs |= /mob/living/carbon/human/proc/blood_celerity @@ -428,7 +430,7 @@ owner.current.AddSpell(new /obj/effect/proc_holder/spell/targeted/transfix/master) for(var/S in MOBSTATS) owner.current.change_stat(S, 2) - for(var/obj/structure/vampire/bloodpool/B in world) + for(var/obj/structure/vampire/bloodpool/B in GLOB.vampire_objects) B.nextlevel = VAMP_LEVEL_FOUR to_chat(owner, "My dominion over others minds and my own body returns to me. I am nearing perfection. The armies of the dead shall now answer my call.") if(3) @@ -492,7 +494,7 @@ to_chat(V, "A message from [src.real_name]:[msg]") for(var/datum/mind/D in C.deathknights) to_chat(D, "A message from [src.real_name]:[msg]") - for(var/mob/dead/observer/rogue/arcaneeye/A in world) + for(var/mob/dead/observer/rogue/arcaneeye/A in GLOB.mob_list) to_chat(A, "A message from [src.real_name]:[msg]") /mob/living/carbon/human/proc/punish_spawn() @@ -530,25 +532,25 @@ /obj/structure/vampire/portal/Crossed(atom/movable/AM) . = ..() if(istype(AM, /mob/living)) - for(var/obj/effect/landmark/vteleport/dest in world) + for(var/obj/effect/landmark/vteleport/dest in GLOB.landmarks_list) playsound(loc, 'sound/misc/portalenter.ogg', 100, FALSE, pressure_affected = FALSE) AM.forceMove(dest.loc) break /obj/structure/vampire/portal/sending/Crossed(atom/movable/AM) if(istype(AM, /mob/living)) - for(var/obj/effect/landmark/vteleportsenddest/V in world) + for(var/obj/effect/landmark/vteleportsenddest/V in GLOB.landmarks_list) AM.forceMove(V.loc) /obj/structure/vampire/portal/sending/Destroy() - for(var/obj/effect/landmark/vteleportsenddest/V in world) + for(var/obj/effect/landmark/vteleportsenddest/V in GLOB.landmarks_list) qdel(V) - for(var/obj/structure/vampire/portalmaker/P in world) + for(var/obj/structure/vampire/portalmaker/P in GLOB.vampire_objects) P.sending = FALSE ..() /obj/structure/vampire/portalmaker/proc/create_portal_return(aname,duration) - for(var/obj/effect/landmark/vteleportdestination/Vamp in world) + for(var/obj/effect/landmark/vteleportdestination/Vamp in GLOB.landmarks_list) if(Vamp.amuletname == aname) var/obj/structure/vampire/portal/P = new(Vamp.loc) P.duration = duration @@ -558,7 +560,7 @@ /obj/structure/vampire/portalmaker/proc/create_portal(choice,duration) sending = TRUE - for(var/obj/effect/landmark/vteleportsending/S in world) + for(var/obj/effect/landmark/vteleportsending/S in GLOB.landmarks_list) var/obj/structure/vampire/portal/sending/P = new(S.loc) P.visible_message("A sickening tear is heard as a sinister portal emerges.") @@ -571,7 +573,7 @@ qdel(src) /obj/structure/vampire/portal/sending/Destroy() - for(var/obj/structure/vampire/portalmaker/PM in world) + for(var/obj/structure/vampire/portalmaker/PM in GLOB.vampire_objects) PM.sending = FALSE . = ..() @@ -664,7 +666,7 @@ var/inputportal = input(user, "Which type of portal?", "Portal Type") as anything in choices switch(inputportal) if("Return") - for(var/obj/item/clothing/neck/roguetown/portalamulet/P in world) + for(var/obj/item/clothing/neck/roguetown/portalamulet/P in GLOB.vampire_objects) possibleportals += P var/atom/choice = input(user, "Choose an area to open the portal", "Choices") as null|anything in possibleportals if(!choice) @@ -686,7 +688,7 @@ if(sending) to_chat(user, "A portal is already active!") return - for(var/obj/item/clothing/neck/roguetown/portalamulet/P in world) + for(var/obj/item/clothing/neck/roguetown/portalamulet/P in GLOB.vampire_objects) sendpossibleportals += P var/atom/choice = input(user, "Choose an area to open the portal to", "Choices") as null|anything in sendpossibleportals if(!choice) @@ -713,7 +715,7 @@ uses -= 1 var/obj/effect/landmark/vteleportdestination/Vamp = new(loc) Vamp.amuletname = name - for(var/obj/structure/vampire/portalmaker/P in world) + for(var/obj/structure/vampire/portalmaker/P in GLOB.vampire_objects) P.create_portal_return(name, 3000) user.playsound_local(get_turf(src), 'sound/misc/portalactivate.ogg', 100, FALSE, pressure_affected = FALSE) if(uses <= 0) @@ -770,7 +772,7 @@ sunstolen = FALSE priority_announce("The Sun is torn from the sky!", "Terrible Omen", 'sound/misc/astratascream.ogg') addomen("sunsteal") - for(var/mob/living/carbon/human/W in world) + for(var/mob/living/carbon/human/W in GLOB.human_list) var/datum/patrongods/patron = W.client.prefs.selected_patron if(patron.name == "Astrata") if(!W.mind.antag_datums) @@ -969,11 +971,27 @@ icon = 'icons/roguetown/clothing/neck.dmi' var/uses = 3 +/obj/item/clothing/neck/roguetown/portalamulet/Initialize() + GLOB.vampire_objects |= src + . = ..() + +/obj/item/clothing/neck/roguetown/portalamulet/Destroy() + GLOB.vampire_objects -= src + return ..() + /obj/structure/vampire icon = 'icons/roguetown/topadd/death/vamp-lord.dmi' var/unlocked = FALSE density = TRUE +/obj/structure/vampire/Initialize() + GLOB.vampire_objects |= src + . = ..() + +/obj/structure/vampire/Destroy() + GLOB.vampire_objects -= src + return ..() + /obj/structure/vampire/bloodpool name = "Crimson Crucible" icon_state = "vat" @@ -1159,7 +1177,7 @@ to_chat(V, "A message from [src.real_name]:[msg]") for(var/datum/mind/D in C.deathknights) to_chat(D, "A message from [src.real_name]:[msg]") - for(var/mob/dead/observer/rogue/arcaneeye/A in world) + for(var/mob/dead/observer/rogue/arcaneeye/A in GLOB.mob_list) to_chat(A, "A message from [src.real_name]:[msg]") /mob/dead/observer/rogue/arcaneeye/proc/eye_up() diff --git a/code/modules/antagonists/roguetown/villain/zombie.dm b/code/modules/antagonists/roguetown/villain/zombie.dm index 1758398ac0..58e4438d23 100644 --- a/code/modules/antagonists/roguetown/villain/zombie.dm +++ b/code/modules/antagonists/roguetown/villain/zombie.dm @@ -83,8 +83,17 @@ for(var/X in H.bodyparts) var/obj/item/bodypart/BP = X BP.update_disabled() - H.STASTR = rand(12,18) - H.STASPD = rand(5,7) + + if(prob(8)) + H.STASTR = 18 + else + H.STASTR = rand(8,11) + + if(prob(8)) + H.STASPD = 7 + else + H.STASPD = rand(2,4) + H.STAINT = 1 @@ -176,26 +185,29 @@ //This occurs when one zombie infects a living human, going into instadeath from here is kind of shit and confusing //We instead just transform at the end -/mob/living/carbon/human/proc/zombie_infect() - if(!mind) - return - if(mind.has_antag_datum(/datum/antagonist/vampirelord)) - return - if(mind.has_antag_datum(/datum/antagonist/zombie)) - return - if(mind.has_antag_datum(/datum/antagonist/werewolf)) +/mob/living/carbon/human/proc/zombie_infect_attempt() + if(prob(7)) // Do you prefer if(prob(93)) return? + if(!mind) + return + if(mind.has_antag_datum(/datum/antagonist/vampirelord)) + return + if(mind.has_antag_datum(/datum/antagonist/zombie)) + return + if(mind.has_antag_datum(/datum/antagonist/werewolf)) + return + var/datum/antagonist/zombie/new_antag = new /datum/antagonist/zombie() + mind.add_antag_datum(new_antag) + if(stat != DEAD) + to_chat(src, "I feel horrible... REALLY horrible after that...") + if(getToxLoss() >= 75 && blood_volume) + mob_timers["puke"] = world.time + vomit(1, blood = TRUE) + sleep(1 MINUTES) //you get a minute + flash_fullscreen("redflash3") + to_chat(src, "It hurts... Is this really the end for me...") + emote("scream") // heres your warning to others bro + Knockdown(1) + new_antag.wake_zombie(TRUE) + //death() + else return - var/datum/antagonist/zombie/new_antag = new /datum/antagonist/zombie() - mind.add_antag_datum(new_antag) - if(stat != DEAD) - to_chat(src, "I feel horrible... REALLY horrible after that...") - if(getToxLoss() >= 75 && blood_volume) - mob_timers["puke"] = world.time - vomit(1, blood = TRUE) - sleep(1 MINUTES) //you get a minute - flash_fullscreen("redflash3") - to_chat(src, "It hurts... Is this really the end for me...") - emote("scream") // heres your warning to others bro - Knockdown(1) - new_antag.wake_zombie(TRUE) - //death() diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 9f51fa31a5..9d0bc70013 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -68,7 +68,7 @@ /mob/living/simple_animal/slaughter/phasein() . = ..() add_movespeed_modifier(MOVESPEED_ID_SLAUGHTER, update=TRUE, priority=100, multiplicative_slowdown=-1) - addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, MOVESPEED_ID_SLAUGHTER, TRUE), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(remove_movespeed_modifier), MOVESPEED_ID_SLAUGHTER, TRUE), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) //The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index a791b881c8..a29f622680 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -27,7 +27,7 @@ if(give_objectives) forge_traitor_objectives() finalize_traitor() - RegisterSignal(owner.current, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) + RegisterSignal(owner.current, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) return ..() /datum/antagonist/traitor/on_removal() @@ -38,7 +38,7 @@ A.verbs -= /mob/living/silicon/ai/proc/choose_modules A.malf_picker.remove_malf_verbs(A) qdel(A.malf_picker) - UnregisterSignal(owner.current, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) + UnregisterSignal(owner.current, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) SSticker.mode.traitors -= owner if(!silent && owner.current) to_chat(owner.current,"I are no longer the [special_role]!") diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 4b2774db22..d20b75d6e7 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -430,8 +430,8 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( for(var/obj/machinery/door/D in GLOB.airlocks) if(!is_station_level(D.z)) continue - INVOKE_ASYNC(D, /obj/machinery/door.proc/hostile_lockdown, owner) - addtimer(CALLBACK(D, /obj/machinery/door.proc/disable_lockdown), 900) + INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door, hostile_lockdown), owner) + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/door, disable_lockdown)), 900) var/obj/machinery/computer/communications/C = locate() in GLOB.machines if(C) @@ -439,7 +439,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( minor_announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.","Network Alert:", TRUE) to_chat(owner, "Lockdown initiated. Network reset in 90 seconds.") - addtimer(CALLBACK(GLOBAL_PROC, .proc/minor_announce, + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "Automatic system reboot complete. Have a secure day.", "Network reset:"), 900) @@ -595,7 +595,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( attached_action.desc = "" attached_action.UpdateButtonIcon() target.audible_message("I hear a loud electrical buzzing sound coming from [target]!") - addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/overload_machine.proc/detonate_machine, target), 50) //kaboom! + addtimer(CALLBACK(attached_action, TYPE_PROC_REF(/datum/action/innate/ai/ranged/overload_machine, detonate_machine), target), 50) //kaboom! remove_ranged_ability("Overcharging machine...") return TRUE @@ -650,7 +650,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( attached_action.desc = "" attached_action.UpdateButtonIcon() target.audible_message("I hear a loud electrical buzzing sound coming from [target]!") - addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/override_machine.proc/animate_machine, target), 50) //kabeep! + addtimer(CALLBACK(attached_action, TYPE_PROC_REF(/datum/action/innate/ai/ranged/override_machine, animate_machine), target), 50) //kabeep! remove_ranged_ability("Sending override signal...") return TRUE @@ -725,7 +725,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( I.loc = T client.images += I I.icon_state = "[success ? "green" : "red"]Overlay" //greenOverlay and redOverlay for success and failure respectively - addtimer(CALLBACK(src, .proc/remove_transformer_image, client, I, T), 30) + addtimer(CALLBACK(src, PROC_REF(remove_transformer_image), client, I, T), 30) if(!success) to_chat(src, "[alert_msg]") return success @@ -788,7 +788,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( for(var/obj/machinery/light/L in GLOB.machines) if(is_station_level(L.z)) L.no_emergency = TRUE - INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) + INVOKE_ASYNC(L, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) CHECK_TICK to_chat(owner, "Emergency light connections severed.") owner.playsound_local(owner, 'sound/blank.ogg', 50, FALSE) diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index 788a736f7a..ea84635835 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -51,7 +51,7 @@ /datum/syndicate_contract/proc/launch_extraction_pod(turf/empty_pod_turf) var/obj/structure/closet/supplypod/extractionpod/empty_pod = new() - RegisterSignal(empty_pod, COMSIG_ATOM_ENTERED, .proc/enter_check) + RegisterSignal(empty_pod, COMSIG_ATOM_ENTERED, PROC_REF(enter_check)) empty_pod.stay_after_drop = TRUE empty_pod.reversing = TRUE @@ -144,7 +144,7 @@ /datum/syndicate_contract/proc/handleVictimExperience(mob/living/M) // Ship 'em back - dead or alive, 4 minutes wait. // Even if they weren't the target, we're still treating them the same. - addtimer(CALLBACK(src, .proc/returnVictim, M), (60 * 10) * 4) + addtimer(CALLBACK(src, PROC_REF(returnVictim), M), (60 * 10) * 4) if (M.stat != DEAD) // Heal them up - gets them out of crit/soft crit. If omnizine is removed in the future, this needs to be replaced with a diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index cb1fbbed57..24453d2e16 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -129,7 +129,7 @@ insaneinthemembrane.sanity = 0 for(var/lore in typesof(/datum/brain_trauma/severe)) C.gain_trauma(lore) - addtimer(CALLBACK(src, /obj/singularity/wizard.proc/deranged, C), 100) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/singularity/wizard, deranged), C), 100) /obj/singularity/wizard/proc/deranged(mob/living/carbon/C) if(!C || C.stat == DEAD) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 2448e18ec1..f06eeb525a 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -164,7 +164,7 @@ /datum/antagonist/wizard/get_admin_commands() . = ..() - .["Send to Lair"] = CALLBACK(src,.proc/admin_send_to_lair) + .["Send to Lair"] = CALLBACK(src,PROC_REF(admin_send_to_lair)) /datum/antagonist/wizard/proc/admin_send_to_lair(mob/admin) owner.current.forceMove(pick(GLOB.wizardstart)) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 36d1a6b055..0936ae68d1 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -56,9 +56,9 @@ //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs /obj/item/assembly/proc/pulsed(radio = FALSE) if(wire_type & WIRE_RECEIVE) - INVOKE_ASYNC(src, .proc/activate) + INVOKE_ASYNC(src, PROC_REF(activate)) if(radio && (wire_type & WIRE_RADIO_RECEIVE)) - INVOKE_ASYNC(src, .proc/activate) + INVOKE_ASYNC(src, PROC_REF(activate)) return TRUE diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 947a7ef747..4f3550a37d 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -22,7 +22,7 @@ if(M.id == src.id) if(openclose == null || !sync_doors) openclose = M.density - INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/close) + INVOKE_ASYNC(M, openclose ? TYPE_PROC_REF(/obj/machinery/door/poddoor, open) : TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) @@ -66,7 +66,7 @@ D.safe = !D.safe for(var/D in open_or_close) - INVOKE_ASYNC(D, doors_need_closing ? /obj/machinery/door/airlock.proc/close : /obj/machinery/door/airlock.proc/open) + INVOKE_ASYNC(D, doors_need_closing ? TYPE_PROC_REF(/obj/machinery/door/airlock, close) : TYPE_PROC_REF(/obj/machinery/door/airlock, open)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) @@ -81,7 +81,7 @@ cooldown = TRUE for(var/obj/machinery/door/poddoor/M in GLOB.machines) if (M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/door/poddoor.proc/open) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) sleep(10) @@ -93,7 +93,7 @@ for(var/obj/machinery/door/poddoor/M in GLOB.machines) if (M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/door/poddoor.proc/close) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) @@ -108,7 +108,7 @@ cooldown = TRUE for(var/obj/machinery/sparker/M in GLOB.machines) if (M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/sparker.proc/ignite) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/sparker, ignite)) for(var/obj/machinery/igniter/M in GLOB.machines) if(M.id == src.id) @@ -128,7 +128,7 @@ cooldown = TRUE for(var/obj/machinery/flasher/M in GLOB.machines) if(M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/flasher.proc/flash) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/flasher, flash)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 37d5e244b6..53358bd80c 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -39,7 +39,7 @@ if(flash) add_overlay(flashing_overlay) attached_overlays += flashing_overlay - addtimer(CALLBACK(src, /atom/.proc/update_icon), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5) if(holder) holder.update_icon() @@ -232,7 +232,7 @@ to_chat(I.owner, "My photon projector implant overheats and deactivates!") I.Retract() overheat = TRUE - addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2) + addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd * 2) /obj/item/assembly/flash/armimplant/try_use_flash(mob/user = null) if(overheat) @@ -240,7 +240,7 @@ to_chat(I.owner, "My photon projector is running too hot to be used again so quickly!") return FALSE overheat = TRUE - addtimer(CALLBACK(src, .proc/cooldown), flashcd) + addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd) playsound(src, 'sound/blank.ogg', 100, TRUE) update_icon(1) return TRUE diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index fc142e8aea..377fdbb597 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -25,7 +25,7 @@ ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_FLIP | ROTATION_VERBS, null, null, - CALLBACK(src,.proc/after_rotation) + CALLBACK(src,PROC_REF(after_rotation)) ) /obj/item/assembly/infra/proc/after_rotation() @@ -167,7 +167,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_ATOM_EXITED) - RegisterSignal(newloc, COMSIG_ATOM_EXITED, .proc/check_exit) + RegisterSignal(newloc, COMSIG_ATOM_EXITED, PROC_REF(check_exit)) listeningTo = newloc /obj/item/assembly/infra/proc/check_exit(datum/source, atom/movable/offender) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 2e6e3dc537..c8a9721376 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -113,7 +113,7 @@ Code: code = new_code if(href_list["send"]) - INVOKE_ASYNC(src, .proc/signal) + INVOKE_ASYNC(src, PROC_REF(signal)) if(usr) attack_self(usr) diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index e3dac25f49..08ff8602e4 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -14,7 +14,7 @@ /obj/item/assembly/timer/suicide_act(mob/living/user) user.visible_message("[user] looks at the timer and decides [user.p_their()] fate! It looks like [user.p_theyre()] going to commit suicide!") activate()//doesnt rely on timer_end to prevent weird metas where one person can control the timer and therefore someone's life. (maybe that should be how it works...) - addtimer(CALLBACK(src, .proc/manual_suicide, user), time*10)//kill myself once the time runs out + addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), time*10)//kill myself once the time runs out return MANUAL_SUICIDE /obj/item/assembly/timer/proc/manual_suicide(mob/living/user) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index b21dbfda75..f8a05a06bb 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -34,7 +34,7 @@ record_speech(speaker, raw_message, message_language) else if(check_activation(speaker, raw_message)) - addtimer(CALLBACK(src, .proc/pulse, 0), 10) + addtimer(CALLBACK(src, PROC_REF(pulse), 0), 10) /obj/item/assembly/voice/proc/record_speech(atom/movable/speaker, raw_message, datum/language/message_language) switch(mode) @@ -52,7 +52,7 @@ say("Your voice pattern is saved.", message_language) if(VOICE_SENSOR_MODE) if(length(raw_message)) - addtimer(CALLBACK(src, .proc/pulse, 0), 10) + addtimer(CALLBACK(src, PROC_REF(pulse), 0), 10) /obj/item/assembly/voice/proc/check_activation(atom/movable/speaker, raw_message) . = FALSE diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index a1c721ece7..321d4b8916 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -77,7 +77,7 @@ perform_exposure() setDir(pick(GLOB.cardinals)) air_update_turf() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) /obj/effect/hotspot/proc/perform_exposure() diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index c28201987f..2a995575a5 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -17,7 +17,7 @@ if (!reaction_key || initial(reaction_key.rarity) > initial(req_gas.rarity)) reaction_key = req_gas .[reaction_key] += list(reaction) - sortTim(., /proc/cmp_gas_reactions, TRUE) + sortTim(., GLOBAL_PROC_REF(cmp_gas_reactions), TRUE) /proc/cmp_gas_reactions(list/datum/gas_reaction/a, list/datum/gas_reaction/b) // compares lists of reactions by the maximum priority contained within the list if (!length(a) || !length(b)) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 79c51fd06d..91e55cc386 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -167,7 +167,7 @@ if("set_external_pressure" in signal.data) external_pressure_bound = CLAMP(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) - addtimer(CALLBACK(src, .proc/broadcast_status), 2) + addtimer(CALLBACK(src, PROC_REF(broadcast_status)), 2) if(!("status" in signal.data)) //do not update_icon update_icon() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index e79c06228c..4e3769ede4 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -49,7 +49,7 @@ It's like a regular ol' straight pipe, but you can turn it on and off. return update_icon_nopipes(TRUE) switching = TRUE - addtimer(CALLBACK(src, .proc/finish_interact), 10) + addtimer(CALLBACK(src, PROC_REF(finish_interact)), 10) /obj/machinery/atmospherics/components/binary/valve/proc/finish_interact() toggle() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 514ff9c0e8..f4c24f4e85 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -161,7 +161,7 @@ occupant_overlay.pixel_y-- add_overlay(occupant_overlay) add_overlay("cover-on") - addtimer(CALLBACK(src, .proc/run_anim, anim_up, occupant_overlay), 7, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(run_anim), anim_up, occupant_overlay), 7, TIMER_UNIQUE) /obj/machinery/atmospherics/components/unary/cryo_cell/nap_violation(mob/violator) open_machine() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm index 17044b24c2..1021595440 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -124,7 +124,7 @@ var/datum/gas_mixture/air_contents = airs[1] volume_rate = CLAMP(number, 0, air_contents.volume) - addtimer(CALLBACK(src, .proc/broadcast_status), 2) + addtimer(CALLBACK(src, PROC_REF(broadcast_status)), 2) if(!("status" in signal.data)) //do not update_icon update_icon() diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index efa963d9a2..1b7ef1fcf5 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -255,7 +255,7 @@ var/turf/T = get_turf(body) new /obj/effect/ctf/ammo(T) recently_dead_ckeys += body.ckey - addtimer(CALLBACK(src, .proc/clear_cooldown, body.ckey), respawn_cooldown, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(clear_cooldown), body.ckey), respawn_cooldown, TIMER_UNIQUE) body.dust() /obj/machinery/capture_the_flag/proc/clear_cooldown(ckey) @@ -379,7 +379,7 @@ /obj/item/gun/ballistic/automatic/pistol/deagle/ctf/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 1) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 1) /obj/item/gun/ballistic/automatic/pistol/deagle/ctf/proc/floor_vanish() if(isturf(loc)) @@ -406,7 +406,7 @@ /obj/item/gun/ballistic/automatic/laser/ctf/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 1) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 1) /obj/item/gun/ballistic/automatic/laser/ctf/proc/floor_vanish() if(isturf(loc)) @@ -417,7 +417,7 @@ /obj/item/ammo_box/magazine/recharge/ctf/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 1) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 1) /obj/item/ammo_box/magazine/recharge/ctf/proc/floor_vanish() if(isturf(loc)) diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index f74f8d9e98..f641327d4a 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -203,7 +203,7 @@ var/turf/T = get_turf(src) T.visible_message("[src] flares briefly.") - addtimer(CALLBACK(src, .proc/effect, user, .), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(effect), user, .), 1 SECONDS) /obj/item/dice/d20/fate/equipped(mob/user, slot) . = ..() diff --git a/code/modules/awaymissions/mission_code/murderdome.dm b/code/modules/awaymissions/mission_code/murderdome.dm index 89016ea781..8a4e139b36 100644 --- a/code/modules/awaymissions/mission_code/murderdome.dm +++ b/code/modules/awaymissions/mission_code/murderdome.dm @@ -33,7 +33,7 @@ /obj/effect/murderdome/dead_barricade/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/respawn), 3 MINUTES) + addtimer(CALLBACK(src, PROC_REF(respawn)), 3 MINUTES) /obj/effect/murderdome/dead_barricade/proc/respawn() if(!QDELETED(src)) diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm index 0e1c9c8c49..33476a5ba6 100644 --- a/code/modules/buildmode/buildmode.dm +++ b/code/modules/buildmode/buildmode.dm @@ -27,7 +27,7 @@ mode = new /datum/buildmode_mode/basic(src) holder = c buttons = list() - li_cb = CALLBACK(src, .proc/post_login) + li_cb = CALLBACK(src, PROC_REF(post_login)) holder.player_details.post_login_callbacks += li_cb create_buttons() holder.screen += buttons diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm index 973e8e3360..3553b2da8f 100644 --- a/code/modules/cargo/gondolapod.dm +++ b/code/modules/cargo/gondolapod.dm @@ -64,7 +64,7 @@ /mob/living/simple_animal/pet/gondola/gondolapod/proc/setOpened() opened = TRUE update_icon() - addtimer(CALLBACK(src, .proc/setClosed), 50) + addtimer(CALLBACK(src, PROC_REF(setClosed)), 50) /mob/living/simple_animal/pet/gondola/gondolapod/proc/setClosed() opened = FALSE diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 91c1b4a149..9bb48fbc75 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1826,7 +1826,7 @@ anomalous_box_provided = TRUE log_game("An anomalous pizza box was provided in a pizza crate at during cargo delivery") if(prob(50)) - addtimer(CALLBACK(src, .proc/anomalous_pizza_report), rand(300, 1800)) + addtimer(CALLBACK(src, PROC_REF(anomalous_pizza_report)), rand(300, 1800)) else message_admins("An anomalous pizza box was silently created with no command report in a pizza crate delivery.") break diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index 043b2e2c09..bcf0ac9059 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -117,7 +117,7 @@ /obj/structure/closet/supplypod/proc/handleReturningClose(atom/movable/holder, returntobay) opened = FALSE - INVOKE_ASYNC(holder, .proc/setClosed) //Use the INVOKE_ASYNC proc to call setClosed() on whatever the holder may be, without giving the atom/movable base class a setClosed() proc definition + INVOKE_ASYNC(holder, PROC_REF(setClosed)) //Use the INVOKE_ASYNC proc to call setClosed() on whatever the holder may be, without giving the atom/movable base class a setClosed() proc definition for (var/atom/movable/O in get_turf(holder)) if ((ismob(O) && !isliving(O)) || (is_type_in_typecache(O, GLOB.blacklisted_cargo_types) && !isliving(O))) //We dont want to take ghosts with us, and we don't want blacklisted items going, but we allow mobs. continue @@ -186,11 +186,11 @@ var/mob/living/simple_animal/pet/gondola/gondolapod/benis = new(get_turf(src), src) benis.contents |= contents //Move the contents of this supplypod into the gondolapod mob. moveToNullspace() - addtimer(CALLBACK(src, .proc/open, benis), openingDelay) //After the openingDelay passes, we use the open proc from this supplyprod while referencing the contents of the "holder", in this case the gondolapod mob + addtimer(CALLBACK(src, PROC_REF(open), benis), openingDelay) //After the openingDelay passes, we use the open proc from this supplyprod while referencing the contents of the "holder", in this case the gondolapod mob else if (style == STYLE_SEETHROUGH) open(src) else - addtimer(CALLBACK(src, .proc/open, src), openingDelay) //After the openingDelay passes, we use the open proc from this supplypod, while referencing this supplypod's contents + addtimer(CALLBACK(src, PROC_REF(open), src), openingDelay) //After the openingDelay passes, we use the open proc from this supplypod, while referencing this supplypod's contents /obj/structure/closet/supplypod/open(atom/movable/holder, broken = FALSE, forced = FALSE) //The holder var represents an atom whose contents we will be working with if (!holder) @@ -206,7 +206,7 @@ return if (openingSound) playsound(get_turf(holder), openingSound, soundVolume, FALSE, FALSE) //Special admin sound to play - INVOKE_ASYNC(holder, .proc/setOpened) //Use the INVOKE_ASYNC proc to call setOpened() on whatever the holder may be, without giving the atom/movable base class a setOpened() proc definition + INVOKE_ASYNC(holder, PROC_REF(setOpened)) //Use the INVOKE_ASYNC proc to call setOpened() on whatever the holder may be, without giving the atom/movable base class a setOpened() proc definition if (style == STYLE_SEETHROUGH) update_icon() for (var/atom/movable/O in holder.contents) //Go through the contents of the holder @@ -219,7 +219,7 @@ depart(src) else if(!stay_after_drop) // Departing should be handled manually - addtimer(CALLBACK(src, .proc/depart, holder), departureDelay) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, PROC_REF(depart), holder), departureDelay) //Finish up the pod's duties after a certain amount of time /obj/structure/closet/supplypod/proc/depart(atom/movable/holder) if (leavingSound) @@ -322,8 +322,8 @@ if (soundStartTime < 0) soundStartTime = 1 if (!pod.effectQuiet) - addtimer(CALLBACK(src, .proc/playFallingSound), soundStartTime) - addtimer(CALLBACK(src, .proc/beginLaunch, pod.effectCircle), pod.landingDelay) + addtimer(CALLBACK(src, PROC_REF(playFallingSound)), soundStartTime) + addtimer(CALLBACK(src, PROC_REF(beginLaunch), pod.effectCircle), pod.landingDelay) /obj/effect/DPtarget/proc/playFallingSound() playsound(src, pod.fallingSound, pod.soundVolume, TRUE, 6) @@ -341,7 +341,7 @@ M.Turn(rotation) //Turn the matrix pod.transform = M //Turn the actual pod (Won't be visible until endLaunch() proc tho) animate(fallingPod, pixel_z = 0, pixel_x = -16, time = pod.fallDuration, , easing = LINEAR_EASING) //Make the pod fall! At an angle! - addtimer(CALLBACK(src, .proc/endLaunch), pod.fallDuration, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation + addtimer(CALLBACK(src, PROC_REF(endLaunch)), pod.fallDuration, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation /obj/effect/DPtarget/proc/endLaunch() pod.update_icon() diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index 2636954ffc..29c098318c 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -23,7 +23,7 @@ launched = TRUE playsound(src,'sound/blank.ogg',50,FALSE) playsound(src,'sound/blank.ogg',50,FALSE) - addtimer(CALLBACK(src, .proc/endLaunch), 33)//wait 3.3 seconds (time it takes for supplypod to land), then update icon + addtimer(CALLBACK(src, PROC_REF(endLaunch)), 33)//wait 3.3 seconds (time it takes for supplypod to land), then update icon if (SP_UNLINK) linked = FALSE playsound(src,'sound/blank.ogg',50,FALSE) diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index 05e574fa42..3c01b0379f 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -27,7 +27,7 @@ var/datum/client_colour/CC = new colour_type() client_colours |= CC - sortTim(client_colours, /proc/cmp_clientcolour_priority) + sortTim(client_colours, GLOBAL_PROC_REF(cmp_clientcolour_priority)) update_client_colour() diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index c9683faa83..71860fd862 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -217,11 +217,11 @@ var/image/P = W if(istype(P)) animate(P,alpha = 0, time=20) - addtimer(CALLBACK(src,.proc/kill_weather,P),20) + addtimer(CALLBACK(src,PROC_REF(kill_weather),P),20) else //screen obj var/obj/screen/O = W animate(O,alpha = 0, time=10) - addtimer(CALLBACK(src,.proc/kill_weather,O),10) + addtimer(CALLBACK(src,PROC_REF(kill_weather),O),10) /client/proc/kill_weather(P) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ddd98f8e4e..b9b77645c5 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -1010,7 +1010,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) var/mob/living/M = mob M.update_damage_hud() if (prefs.auto_fit_viewport) - addtimer(CALLBACK(src,.verb/fit_viewport,10)) //Delayed to avoid wingets from Login calls. + addtimer(CALLBACK(src, VERB_REF(fit_viewport), 1 SECONDS)) //Delayed to avoid wingets from Login calls. /client/proc/generate_clickcatcher() if(!void) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1467246179..d80c5bded5 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -934,7 +934,7 @@ GLOBAL_LIST_EMPTY(chosen_names) //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. var/datum/job/lastJob - for(var/datum/job/job in sortList(SSjob.occupations, /proc/cmp_job_display_asc)) + for(var/datum/job/job in sortList(SSjob.occupations, GLOBAL_PROC_REF(cmp_job_display_asc))) if(!job.total_positions && !job.spawn_positions) continue diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 79a07b0662..1490a5b47e 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -85,7 +85,7 @@ var/datum/outfit/O = path if(initial(O.can_be_admin_equipped)) standard_outfit_options[initial(O.name)] = path - sortTim(standard_outfit_options, /proc/cmp_text_asc) + sortTim(standard_outfit_options, GLOBAL_PROC_REF(cmp_text_asc)) outfit_options = standard_outfit_options /datum/action/chameleon_outfit/Trigger() @@ -182,7 +182,7 @@ /datum/action/item_action/chameleon/change/proc/select_look(mob/user) var/obj/item/picked_item var/picked_name - picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) as null|anything in sortList(chameleon_list, /proc/cmp_typepaths_asc) + picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) as null|anything in sortList(chameleon_list, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!picked_name) return picked_item = chameleon_list[picked_name] diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index d001b9853f..dee2af0392 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -14,7 +14,7 @@ /obj/item/clothing/gloves/ComponentInitialize() . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_blood)) /obj/item/clothing/gloves/proc/clean_blood(datum/source, strength) if(strength < CLEAN_STRENGTH_BLOOD) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index a8b61678a2..890dc8dab2 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -201,7 +201,7 @@ /obj/item/clothing/head/warden/drill/equipped(mob/M, slot) . = ..() if (slot == SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 5a47ba0804..9830e1182c 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -375,7 +375,7 @@ /obj/item/clothing/head/frenchberet/equipped(mob/M, slot) . = ..() if (slot == SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 58719978dd..90e4969853 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -310,7 +310,7 @@ /obj/item/clothing/head/foilhat/Initialize(mapload) . = ..() if(!warped) - AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, .proc/warp_up)) + AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, PROC_REF(warp_up))) else warp_up() diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index 8d55797bfe..24ca3ec392 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -18,7 +18,7 @@ /obj/item/clothing/mask/equipped(mob/M, slot) . = ..() if (slot == SLOT_WEAR_MASK && modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/rogueclothes/hats.dm b/code/modules/clothing/rogueclothes/hats.dm index c081184f07..c7a99e507b 100644 --- a/code/modules/clothing/rogueclothes/hats.dm +++ b/code/modules/clothing/rogueclothes/hats.dm @@ -503,6 +503,10 @@ /obj/item/clothing/head/roguetown/wizhat/gen icon_state = "wizardhatgen" +/obj/item/clothing/head/roguetown/wizhat/gen/wise + name = "wise hat" + desc = "Only the wisest of nimrods wear this." + /obj/item/clothing/head/roguetown/nyle name = "jewel of nyle" icon_state = "nile" diff --git a/code/modules/clothing/rogueclothes/rings.dm b/code/modules/clothing/rogueclothes/rings.dm index 1fbe5e7727..64a59aa966 100644 --- a/code/modules/clothing/rogueclothes/rings.dm +++ b/code/modules/clothing/rogueclothes/rings.dm @@ -41,7 +41,7 @@ if(activate_sound) playsound(user, activate_sound, 100, FALSE, -1) cooldowny = world.time - addtimer(CALLBACK(src, .proc/demagicify), activetime) + addtimer(CALLBACK(src, PROC_REF(demagicify)), activetime) active = TRUE update_icon() activate(user) @@ -62,7 +62,7 @@ name = "ring of null magic" icon_state = "ruby" activate_sound = 'sound/magic/antimagic.ogg' - cdtime = 90 MINUTES + cdtime = 10 MINUTES activetime = 30 SECONDS sellprice = 100 diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index a93cfccb93..51cd73ce0d 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -20,7 +20,7 @@ /obj/item/clothing/shoes/ComponentInitialize() . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_blood)) /obj/item/clothing/shoes/suicide_act(mob/living/carbon/user) if(rand(2)>1) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index a54f3a03bc..72db2b34af 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -319,13 +319,13 @@ active = TRUE set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255))) set_light_on(active) - addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(lightUp)), 0.5 SECONDS) /obj/item/clothing/shoes/kindleKicks/proc/lightUp(mob/user) if(lightCycle < 15) - set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255))) - lightCycle++ - addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS) + set_light(2, 3, rgb(rand(0,255),rand(0,255),rand(0,255))) + lightCycle += 1 + addtimer(CALLBACK(src, .proc/lightUp), 5) else lightCycle = 0 active = FALSE diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 64b51fb95b..c75b62695b 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -141,12 +141,12 @@ user.Stun(INFINITY) animate(user, color = "#00ccee", time = 3) - phase_timer_id = addtimer(CALLBACK(src, .proc/phase_2, user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_2), user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE) /obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) if(teleporting && activated && user) animate(user, color = list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 1,1,1,0), time = 2) - phase_timer_id = addtimer(CALLBACK(src, .proc/phase_3, user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_3), user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) @@ -154,14 +154,14 @@ if(teleporting && activated && user) user.forceMove(to_turf) animate(user, color = "#00ccee", time = phase_in_ds) - phase_timer_id = addtimer(CALLBACK(src, .proc/phase_4, user, to_turf), phase_in_ds, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_4), user, to_turf), phase_in_ds, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) /obj/item/clothing/suit/space/chronos/proc/phase_4(mob/living/carbon/human/user, turf/to_turf) if(teleporting && activated && user) animate(user, color = "#ffffff", time = 3) - phase_timer_id = addtimer(CALLBACK(src, .proc/finish_chronowalk, user, to_turf), 3, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(finish_chronowalk), user, to_turf), 3, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 55704eb284..c33b6f76e6 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -652,7 +652,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) listeningTo = user /obj/item/clothing/suit/space/hardsuit/ancient/dropped() diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index cc8d537d41..a55ce465f7 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -119,7 +119,7 @@ /obj/item/clothing/head/helmet/space/plasmaman/ComponentInitialize() . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, .proc/wipe_that_smile_off_your_face) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(wipe_that_smile_off_your_face)) ///gets called when receiving the CLEAN_ACT signal from something, i.e soap or a shower. exists to remove any smiley faces drawn on the helmet. /obj/item/clothing/head/helmet/space/plasmaman/proc/wipe_that_smile_off_your_face() diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 9a4226016c..8400223075 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -33,7 +33,7 @@ if(log.len && !scanning) scanning = 1 to_chat(user, "Printing report, please wait...") - addtimer(CALLBACK(src, .proc/PrintReport), 100) + addtimer(CALLBACK(src, PROC_REF(PrintReport)), 100) else to_chat(user, "The scanner has no logs or is in use.") diff --git a/code/modules/events/fake_virus.dm b/code/modules/events/fake_virus.dm index fb95dc55a1..87b53cdb17 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -25,7 +25,7 @@ for(var/i=1; i<=rand(1,defacto_min); i++) var/mob/living/carbon/human/onecoughman = pick(fake_virus_victims) if(prob(25))//1/4 odds to get a spooky message instead of coughing out loud - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, onecoughman, "[pick("Your head hurts.", "Your head pounds.")]"), rand(30,150)) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), onecoughman, "[pick("Your head hurts.", "Your head pounds.")]"), rand(30,150)) else - addtimer(CALLBACK(onecoughman, .mob/proc/emote, pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time + addtimer(CALLBACK(onecoughman, TYPE_PROC_REF(/mob, emote), pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time fake_virus_victims -= onecoughman diff --git a/code/modules/events/fugitive_spawning.dm b/code/modules/events/fugitive_spawning.dm index d8eae1254c..fd7f6349ad 100644 --- a/code/modules/events/fugitive_spawning.dm +++ b/code/modules/events/fugitive_spawning.dm @@ -55,7 +55,7 @@ //after spawning playsound(src, 'sound/blank.ogg', 50, TRUE) new /obj/item/storage/toolbox/mechanical(landing_turf) //so they can actually escape maint - addtimer(CALLBACK(src, .proc/spawn_hunters), 10 MINUTES) + addtimer(CALLBACK(src, PROC_REF(spawn_hunters)), 10 MINUTES) role_name = "fugitive hunter" return SUCCESSFUL_SPAWN @@ -68,7 +68,7 @@ player_mind.special_role = "Fugitive" player_mind.add_antag_datum(/datum/antagonist/fugitive) var/datum/antagonist/fugitive/fugitiveantag = player_mind.has_antag_datum(/datum/antagonist/fugitive) - INVOKE_ASYNC(fugitiveantag, /datum/antagonist/fugitive.proc/greet, backstory) //some fugitives have a sleep on their greet, so we don't want to stop the entire antag granting proc with fluff + INVOKE_ASYNC(fugitiveantag, TYPE_PROC_REF(/datum/antagonist/fugitive, greet), backstory) //some fugitives have a sleep on their greet, so we don't want to stop the entire antag granting proc with fluff switch(backstory) if("prisoner") diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index 06accdbcae..ea487c8f7e 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -28,7 +28,7 @@ var/waittime = 300 * (2^retry) message_admins("The event will not spawn a [role_name] until certain \ conditions are met. Waiting [waittime/10]s and then retrying.") - addtimer(CALLBACK(src, .proc/try_spawning, 0, ++retry), waittime) + addtimer(CALLBACK(src, PROC_REF(try_spawning), 0, ++retry), waittime) return if(status == MAP_ERROR) diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 44d208f611..16601b5c9f 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -36,7 +36,7 @@ threat.title = "Business proposition" threat.content = "This is [ship_name]. Pay up [payoff] credits or you'll walk the plank." threat.possible_answers = list("We'll pay.","No way.") - threat.answer_callback = CALLBACK(src,.proc/answered) + threat.answer_callback = CALLBACK(src,PROC_REF(answered)) SScommunications.send_message(threat,unique = TRUE) /datum/round_event/pirates/proc/answered() @@ -363,7 +363,7 @@ status_report = "Sending..." pad.visible_message("[pad] starts charging up.") pad.icon_state = pad.warmup_state - sending_timer = addtimer(CALLBACK(src,.proc/send),warmup_time, TIMER_STOPPABLE) + sending_timer = addtimer(CALLBACK(src,PROC_REF(send)),warmup_time, TIMER_STOPPABLE) /obj/machinery/computer/piratepad_control/proc/stop_sending() if(!sending) diff --git a/code/modules/events/rogue/allmig/skellysiege.dm b/code/modules/events/rogue/allmig/skellysiege.dm index 6c206c21a1..00a3c4b644 100644 --- a/code/modules/events/rogue/allmig/skellysiege.dm +++ b/code/modules/events/rogue/allmig/skellysiege.dm @@ -37,7 +37,7 @@ var/datum/game_mode/chaosmode/C = SSticker.mode if(istype(C)) C.skeletons = TRUE - addtimer(CALLBACK(C, /datum/game_mode/chaosmode/.proc/reset_skeletons), rand(4 MINUTES, 8 MINUTES)) + addtimer(CALLBACK(C, TYPE_PROC_REF(/datum/game_mode/chaosmode, reset_skeletons)), rand(4 MINUTES, 8 MINUTES)) for(var/mob/dead/observer/O in GLOB.player_list) - addtimer(CALLBACK(O, /mob/dead/observer/.proc/horde_respawn), 1) + addtimer(CALLBACK(O, TYPE_PROC_REF(/mob/dead/observer, horde_respawn)), 1) return \ No newline at end of file diff --git a/code/modules/events/rogue/skellysiege.dm b/code/modules/events/rogue/skellysiege.dm index c748cf1299..592d018dfe 100644 --- a/code/modules/events/rogue/skellysiege.dm +++ b/code/modules/events/rogue/skellysiege.dm @@ -21,7 +21,7 @@ var/datum/game_mode/chaosmode/C = SSticker.mode if(istype(C)) C.skeletons = TRUE - addtimer(CALLBACK(C, /datum/game_mode/chaosmode/.proc/reset_skeletons), rand(4 MINUTES, 8 MINUTES)) + addtimer(CALLBACK(C, TYPE_PROC_REF(/datum/game_mode/chaosmode, reset_skeletons)), rand(4 MINUTES, 8 MINUTES)) for(var/mob/dead/observer/O in GLOB.player_list) - addtimer(CALLBACK(O, /mob/dead/observer/.proc/horde_respawn), 1) + addtimer(CALLBACK(O, TYPE_PROC_REF(/mob/dead/observer, horde_respawn)), 1) return diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index 21b20a2b3f..f4d3b64364 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -35,7 +35,7 @@ /obj/item/greentext/Initialize(mapload) . = ..() GLOB.poi_list |= src - roundend_callback = CALLBACK(src,.proc/check_winner) + roundend_callback = CALLBACK(src,PROC_REF(check_winner)) SSticker.OnRoundend(roundend_callback) /obj/item/greentext/equipped(mob/living/user as mob) diff --git a/code/modules/fields/fields.dm b/code/modules/fields/fields.dm index d69e5cdd0a..7e292bf629 100644 --- a/code/modules/fields/fields.dm +++ b/code/modules/fields/fields.dm @@ -306,7 +306,7 @@ UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) listeningTo = null if(!istype(current) && operating) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) listeningTo = user setup_debug_field() else if(!operating) diff --git a/code/modules/fields/timestop.dm b/code/modules/fields/timestop.dm index 2fc3d3268a..edf77a0a11 100644 --- a/code/modules/fields/timestop.dm +++ b/code/modules/fields/timestop.dm @@ -100,8 +100,8 @@ A.move_resist = INFINITY global_frozen_atoms[A] = src into_the_negative_zone(A) - RegisterSignal(A, COMSIG_MOVABLE_PRE_MOVE, .proc/unfreeze_atom) - RegisterSignal(A, COMSIG_ITEM_PICKUP, .proc/unfreeze_atom) + RegisterSignal(A, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(unfreeze_atom)) + RegisterSignal(A, COMSIG_ITEM_PICKUP, PROC_REF(unfreeze_atom)) return TRUE diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 1980d01820..565d231e37 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -64,6 +64,6 @@ dream_fragments.Cut(1,2) to_chat(src, "... [next_message] ...") if(LAZYLEN(dream_fragments)) - addtimer(CALLBACK(src, .proc/dream_sequence, dream_fragments), rand(10,30)) + addtimer(CALLBACK(src, PROC_REF(dream_sequence), dream_fragments), rand(10,30)) else dreaming = FALSE diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 520752566f..a95d498f96 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -300,7 +300,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( target.client.images |= fakerune target.playsound_local(wall,'sound/blank.ogg', 150, 1) bubblegum = new(wall, target) - addtimer(CALLBACK(src, .proc/bubble_attack, landing), 10) + addtimer(CALLBACK(src, PROC_REF(bubble_attack), landing), 10) /datum/hallucination/oh_yeah/proc/bubble_attack(turf/landing) var/charged = FALSE //only get hit once @@ -344,10 +344,10 @@ GLOBAL_LIST_INIT(hallucination_list, list( for(var/i in 1 to rand(5, 10)) target.playsound_local(source, 'sound/blank.ogg', 25, 1) if(prob(50)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/blank.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/blank.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/blank.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/blank.ogg', 25, 1), rand(5,10)) sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 6)) if(hits >= 4 && prob(70)) target.playsound_local(source, get_sfx("bodyfall"), 25, 1) @@ -357,10 +357,10 @@ GLOBAL_LIST_INIT(hallucination_list, list( for(var/i in 1 to rand(5, 10)) target.playsound_local(source, 'sound/blank.ogg', 25, 1) if(prob(50)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/blank.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/blank.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/blank.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/blank.ogg', 25, 1), rand(5,10)) sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 6)) if(hits >= 3 && prob(70)) target.playsound_local(source, get_sfx("bodyfall"), 25, 1) @@ -378,10 +378,10 @@ GLOBAL_LIST_INIT(hallucination_list, list( for(var/i in 1 to rand(3, 6)) target.playsound_local(source, "sound/weapons/gunshot.ogg", 25, TRUE) if(prob(60)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/blank.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/blank.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, "ricochet", 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, "ricochet", 25, 1), rand(5,10)) sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 6)) if(hits >= 2 && prob(80)) target.playsound_local(source, get_sfx("bodyfall"), 25, 1) @@ -1104,7 +1104,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( return to_chat(target, "I fall into the chasm!") target.Paralyze(40) - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, target, "It's surprisingly shallow."), 15) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), target, "It's surprisingly shallow."), 15) QDEL_IN(src, 30) /obj/effect/hallucination/danger/anomaly @@ -1227,13 +1227,13 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(target.client) target.client.images |= shock_image target.client.images |= electrocution_skeleton_anim - addtimer(CALLBACK(src, .proc/reset_shock_animation), 40) + addtimer(CALLBACK(src, PROC_REF(reset_shock_animation)), 40) target.playsound_local(get_turf(src), "sparks", 100, 1) target.staminaloss += 50 target.Stun(40) target.jitteriness += 1000 target.do_jitter_animation(target.jitteriness) - addtimer(CALLBACK(src, .proc/shock_drop), 20) + addtimer(CALLBACK(src, PROC_REF(shock_drop)), 20) /datum/hallucination/shock/proc/reset_shock_animation() if(target.client) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 32524c3bc2..da46a480e7 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -77,7 +77,7 @@ if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell var/mob/living/silicon/robot/bro = user bro.cell.use(30) - addtimer(CALLBACK(reagents, /datum/reagents.proc/add_reagent, refill, trans), 600) + addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, add_reagent), refill, trans), 600) else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us. if (!is_refillable()) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 9de0b4149e..a87ee160d3 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -494,7 +494,7 @@ to_chat(user, "I light [src] on fire.") add_overlay(GLOB.fire_overlay) if(!isGlass) - addtimer(CALLBACK(src, .proc/explode), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(explode)), 5 SECONDS) /obj/item/reagent_containers/food/drinks/bottle/molotov/proc/explode() if(!active) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index f2660d3dbe..58b553523e 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -104,7 +104,7 @@ All foods are distributed among various categories. Use common sense. /obj/item/reagent_containers/food/snacks/Initialize() if(rotprocess) - SSticker.OnRoundstart(CALLBACK(src, .proc/begin_rotting)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(begin_rotting))) if(cooked_type || fried_type) cooktime = 30 SECONDS ..() diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index d514c5f267..52189ac1c5 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -481,7 +481,7 @@ /obj/item/reagent_containers/food/snacks/lollipop/cyborg/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/spamcheck), 1200) + addtimer(CALLBACK(src, PROC_REF(spamcheck)), 1200) /obj/item/reagent_containers/food/snacks/lollipop/cyborg/equipped(mob/living/user, slot) . = ..(user, slot) @@ -509,7 +509,7 @@ /obj/item/reagent_containers/food/snacks/gumball/cyborg/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/spamcheck), 1200) + addtimer(CALLBACK(src, PROC_REF(spamcheck)), 1200) /obj/item/reagent_containers/food/snacks/gumball/cyborg/equipped(mob/living/user, slot) . = ..(user, slot) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 312bd1b897..b8fc4772d0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -201,7 +201,7 @@ mob_occupant.death(1) mob_occupant.ghostize() qdel(src.occupant) - addtimer(CALLBACK(src, .proc/make_meat, skin, allmeat, meat_produced, gibtype, diseases), gibtime) + addtimer(CALLBACK(src, PROC_REF(make_meat), skin, allmeat, meat_produced, gibtype, diseases), gibtime) /obj/machinery/gibber/proc/make_meat(obj/item/stack/sheet/animalhide/skin, list/obj/item/reagent_containers/food/snacks/meat/slab/allmeat, meat_produced, gibtype, list/datum/disease/diseases) playsound(src.loc, 'sound/blank.ogg', 50, TRUE) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 916b827041..933fc19e82 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -301,7 +301,7 @@ return time-- use_power(500) - addtimer(CALLBACK(src, .proc/loop, type, time, wait), wait) + addtimer(CALLBACK(src, PROC_REF(loop), type, time, wait), wait) /obj/machinery/microwave/proc/loop_finish() operating = FALSE diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 8e3a59877c..332c61be19 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -82,7 +82,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) use_power(500) stored_matter += cube_production addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x))) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, user, "The machine now has [stored_matter] monkey\s worth of material stored.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), user, "The machine now has [stored_matter] monkey\s worth of material stored.")) /obj/machinery/monkey_recycler/interact(mob/user) if(stored_matter >= 1) diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index 92a0b699de..f41dcd0c76 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -209,7 +209,7 @@ ///Adds a timer to call stalk() on Aggro /mob/living/simple_animal/hostile/clown_insane/Aggro() . = ..() - timer = addtimer(CALLBACK(src, .proc/stalk), 30, TIMER_STOPPABLE|TIMER_UNIQUE) + timer = addtimer(CALLBACK(src, PROC_REF(stalk)), 30, TIMER_STOPPABLE|TIMER_UNIQUE) /mob/living/simple_animal/hostile/clown_insane/LoseAggro() . = ..() @@ -228,8 +228,8 @@ qdel(src) return playsound(M, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 100, TRUE) - timer = addtimer(CALLBACK(src, .proc/stalk), 30, TIMER_STOPPABLE|TIMER_UNIQUE) - addtimer(CALLBACK(src, .proc/teleport_to_target), 12, TIMER_STOPPABLE|TIMER_UNIQUE) + timer = addtimer(CALLBACK(src, PROC_REF(stalk)), 30, TIMER_STOPPABLE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(teleport_to_target)), 12, TIMER_STOPPABLE|TIMER_UNIQUE) ///Does what's in the name. Teleports to target.loc. Called from a timer. /mob/living/simple_animal/hostile/clown_insane/proc/teleport_to_target() diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index a0e388b6d7..3829ebac0f 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -508,7 +508,7 @@ Since Ramadan is an entire month that lasts 29.5 days on average, the start and return "Have a merry Christmas!" /datum/holiday/xmas/celebrate() - SSticker.OnRoundstart(CALLBACK(src, .proc/roundstart_celebrate)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(roundstart_celebrate))) GLOB.maintenance_loot += list( /obj/item/toy/xmas_cracker = 3, /obj/item/clothing/head/santa = 1, diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 8de26136d8..206c41c990 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -208,7 +208,7 @@ if(toggleOn) if(last_program && last_program != offline_program) - addtimer(CALLBACK(src, .proc/load_program, last_program, TRUE), 25) + addtimer(CALLBACK(src, PROC_REF(load_program), last_program, TRUE), 25) active = TRUE else last_program = program @@ -268,7 +268,7 @@ S.flags_1 |= NODECONSTRUCT_1 effects = list() - addtimer(CALLBACK(src, .proc/finish_spawn), 30) + addtimer(CALLBACK(src, PROC_REF(finish_spawn)), 30) /obj/machinery/computer/holodeck/proc/finish_spawn() var/list/added = list() @@ -288,7 +288,7 @@ // Emagging a machine creates an anomaly in the derez systems. if(O && (obj_flags & EMAGGED) && !stat && !forced) if((ismob(O) || ismob(O.loc)) && prob(50)) - addtimer(CALLBACK(src, .proc/derez, O, silent), 50) // may last a disturbingly long time + addtimer(CALLBACK(src, PROC_REF(derez), O, silent), 50) // may last a disturbingly long time return spawned -= O diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index c43832e368..f9741958c0 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -112,7 +112,7 @@ /turf/open/floor/holofloor/carpet/Initialize() . = ..() - addtimer(CALLBACK(src, /atom/.proc/update_icon), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 1) /turf/open/floor/holofloor/carpet/update_icon() . = ..() diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index 055cda789e..b0335711ac 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -47,7 +47,7 @@ to_chat(user, "[I] is stuck to my hand!") return TRUE to_chat(user, "I place [I] into [src].") - addtimer(CALLBACK(src, .proc/makeWine, fruit), rand(1 MINUTES, 3 MINUTES)) + addtimer(CALLBACK(src, PROC_REF(makeWine), fruit), rand(1 MINUTES, 3 MINUTES)) return TRUE ..() diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index bc0fd6a560..88ca8c794c 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -121,7 +121,7 @@ C.throw_mode_on() icon_state = "firelemon_active" playsound(loc, 'sound/blank.ogg', 75, TRUE, -3) - addtimer(CALLBACK(src, .proc/prime), rand(10, 60)) + addtimer(CALLBACK(src, PROC_REF(prime)), rand(10, 60)) /obj/item/reagent_containers/food/snacks/grown/firelemon/burn() prime() diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 9aeb33aa2f..b225d95a51 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -64,7 +64,7 @@ var/uses = 1 if(seed) uses = round(seed.potency / 20) - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_HANDS, uses, TRUE, CALLBACK(src, .proc/block_magic), CALLBACK(src, .proc/expire)) //deliver us from evil o melon god + AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_HANDS, uses, TRUE, CALLBACK(src, PROC_REF(block_magic)), CALLBACK(src, PROC_REF(expire))) //deliver us from evil o melon god /obj/item/reagent_containers/food/snacks/grown/holymelon/proc/block_magic(mob/user, major) if(major) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 1a979134ee..932e4f7b69 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -133,7 +133,7 @@ return to_chat(user, "I begin to awaken the Killer Tomato...") awakening = TRUE - addtimer(CALLBACK(src, .proc/awaken), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(awaken)), 3 SECONDS) log_game("[key_name(user)] awakened a killer tomato at [AREACOORD(user)].") /obj/item/reagent_containers/food/snacks/grown/tomato/killer/proc/awaken() diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index ef0dc2dd60..7d1c5bf5af 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -235,7 +235,7 @@ if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent(/datum/reagent/lube))) stun_len /= 3 - G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, .proc/handle_slip, G)) + G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, PROC_REF(handle_slip), G)) /datum/plant_gene/trait/slip/proc/handle_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/M) for(var/datum/plant_gene/trait/T in G.seed.genes) diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm index 71d5180a39..0ffff666fc 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -260,7 +260,7 @@ GLOBAL_PROTECT(exp_to_update) "ckey" = "'[sanitizeSQL(ckey)]'", "minutes" = jvalue))) prefs.exp[jtype] += jvalue - addtimer(CALLBACK(SSblackbox,/datum/controller/subsystem/blackbox/proc/update_exp_db),20,TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(SSblackbox,TYPE_PROC_REF(/datum/controller/subsystem/blackbox, update_exp_db)),20,TIMER_OVERRIDE|TIMER_UNIQUE) //ALWAYS call this at beginning to any proc touching player flags, or your database admin will probably be mad diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index fc1ab0f222..c7079bd5c9 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -248,7 +248,7 @@ /datum/job/proc/announce_head(mob/living/carbon/human/H, channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels. if(H && GLOB.announcement_systems.len) //timer because these should come after the captain announcement - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/addtimer, CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/announce, "NEWHEAD", H.real_name, H.job, channels), 1)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, H.job, channels), 1)) //If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1 /datum/job/proc/player_old_enough(client/C) diff --git a/code/modules/jobs/job_types/old/ai.dm b/code/modules/jobs/job_types/old/ai.dm index 6dad8a8160..2b226082c8 100644 --- a/code/modules/jobs/job_types/old/ai.dm +++ b/code/modules/jobs/job_types/old/ai.dm @@ -62,7 +62,7 @@ /datum/job/ai/announce(mob/living/silicon/ai/AI) . = ..() - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "[AI] has been downloaded to an empty bluespace-networked AI core at [AREACOORD(AI)].")) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "[AI] has been downloaded to an empty bluespace-networked AI core at [AREACOORD(AI)].")) /datum/job/ai/config_check() return CONFIG_GET(flag/allow_ai) diff --git a/code/modules/jobs/job_types/old/captain.dm b/code/modules/jobs/job_types/old/captain.dm index dba4ba9471..4d036c280f 100644 --- a/code/modules/jobs/job_types/old/captain.dm +++ b/code/modules/jobs/job_types/old/captain.dm @@ -31,7 +31,7 @@ /datum/job/captain/announce(mob/living/carbon/human/H) ..() -// SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "Captain [H.real_name] on deck!")) +// SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "Captain [H.real_name] on deck!")) /datum/outfit/job/captain name = "Captain" diff --git a/code/modules/jobs/job_types/roguetown/adventurer/adventurer.dm b/code/modules/jobs/job_types/roguetown/adventurer/adventurer.dm index c730ba3240..9bed4f1217 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/adventurer.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/adventurer.dm @@ -21,11 +21,12 @@ GLOBAL_LIST_EMPTY(billagerspawns) outfit = null outfit_female = null - var/isvillager = FALSE - var/ispilgrim = FALSE display_order = JDO_ADVENTURER show_in_credits = FALSE min_pq = -4 + + var/isvillager = FALSE + var/ispilgrim = FALSE /datum/job/roguetown/adventurer/after_spawn(mob/living/L, mob/M, latejoin = TRUE) ..() @@ -64,16 +65,14 @@ GLOBAL_LIST_EMPTY(billagerspawns) testing("[A.name] fail9") continue - if(!isvillager && !ispilgrim) //adventurer - if(A.ispilgrim || A.isvillager) - continue - if(isvillager) //towner - if(!A.isvillager) - continue + if((!isvillager && !ispilgrim) && (A.isvillager || A.ispilgrim)) //adventurer + continue -// if(ispilgrim) //pilgrim -// if(A.ispilgrim) -// continue + if(isvillager && !A.isvillager) //towner + continue + + if(ispilgrim && !A.ispilgrim) //pilgrim + continue if(A.plevel_req > M.client.patreonlevel()) testing("[A.name] fail6") diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm index 77666ecaae..3b03c313da 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm @@ -55,5 +55,5 @@ GLOB.billagerspawns -= H /datum/advclass/proc/post_equip(mob/living/carbon/human/H) - addtimer(CALLBACK(H,/mob/living/carbon/human.proc/add_credit), 20) + addtimer(CALLBACK(H,TYPE_PROC_REF(/mob/living/carbon/human, add_credit)), 20) return diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm index a925d4acbc..e6fdd23d33 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm @@ -58,7 +58,7 @@ H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 1, TRUE) H.mind.adjust_skillrank(/datum/skill/magic/holy, 1, TRUE) H.change_stat("strength", 1) - H.change_stat("perception", -2) + H.change_stat("perception", 1) H.change_stat("intelligence", 2) H.change_stat("constitution", 2) H.change_stat("endurance", 3) @@ -66,5 +66,6 @@ ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) var/datum/devotion/cleric_holder/C = new /datum/devotion/cleric_holder(H, H.PATRON) C.holder_mob = H + C.update_devotion(50, 50) C.grant_spells(H) H.verbs += list(/mob/living/carbon/human/proc/devotionreport, /mob/living/carbon/human/proc/clericpray) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm index 582110dc85..0d191e7a4a 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm @@ -1,5 +1,5 @@ /datum/advclass/dbomb - name = "Dwarf" + name = "Vagrant" tutorial = "Dwarves like to blow things up." allowed_sexes = list("male", "female") allowed_races = list("Dwarf","Dwarf") @@ -33,4 +33,4 @@ H.mind.adjust_skillrank(/datum/skill/misc/athletics, 1, TRUE) H.change_stat("strength", 1) H.change_stat("endurance", 1) - ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) \ No newline at end of file + ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/dwarfwarrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/dwarfwarrior.dm new file mode 100644 index 0000000000..27c483774a --- /dev/null +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/dwarfwarrior.dm @@ -0,0 +1,41 @@ + +/datum/advclass/dwarfwarrior + name = "Cavern Warrior" + tutorial = "Dwarf Warriors are the bread and butter of their miliary sworn to defend their mountain fortress. Armed with either a battle axe or mace, they are a force to be reckoned with." + allowed_sexes = list("male", "female") + allowed_races = list("Dwarf","Dwarf") + outfit = /datum/outfit/job/roguetown/adventurer/dwarfwarrior + maxchosen = 2 + +/datum/outfit/job/roguetown/adventurer/dwarfwarrior/pre_equip(mob/living/carbon/human/H) + ..() + head = /obj/item/clothing/head/roguetown/helmet/winged + pants = /obj/item/clothing/under/roguetown/trou + shoes = /obj/item/clothing/shoes/roguetown/boots/leather + belt = /obj/item/storage/belt/rogue/leather + armor = /obj/item/clothing/suit/roguetown/armor/chainmail/iron + wrists = /obj/item/clothing/wrists/roguetown/bracers/leather + backr = /obj/item/rogueweapon/shield/wood + if(prob(25)) + mask = /obj/item/clothing/mask/rogue/facemask + if(prob(25)) + gloves = /obj/item/clothing/gloves/roguetown/chain + else + gloves = /obj/item/clothing/gloves/roguetown/angle + if(prob(50)) + beltl = /obj/item/rogueweapon/mace/steel + else + beltl = /obj/item/rogueweapon/stoneaxe/battle + + H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/climbing, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.change_stat("constitution", 2) + H.change_stat("speed", -1) + H.change_stat("strength", 2) + H.change_stat("endurance", 2) + ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm index 370a971856..22e55b077c 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm @@ -11,34 +11,54 @@ /datum/outfit/job/roguetown/adventurer/paladin/pre_equip(mob/living/carbon/human/H) ..() - wrists = /obj/item/clothing/neck/roguetown/psicross/astrata + var/allowed_patrons = list("Astrata", "Dendor", "Necra") + + var/datum/patrongods/ourpatron + if(istype(H.PATRON, /datum/patrongods)) + ourpatron = H.PATRON + + if(!ourpatron || !(ourpatron.name in allowed_patrons)) + var/list/datum/patrongods/possiblegods = list() + for(var/datum/patrongods/P in GLOB.patronlist) + if(P.name in allowed_patrons) + possiblegods |= P + ourpatron = pick(possiblegods) + H.PATRON = ourpatron + to_chat(H, " My patron had not endorsed my practices in my younger years. I've since grown acustomed to [H.PATRON].") + + switch(ourpatron.name) + if("Astrata") + neck = /obj/item/clothing/neck/roguetown/psicross/astrata + if("Dendor") + neck = /obj/item/clothing/neck/roguetown/psicross/dendor + if("Necra") + neck = /obj/item/clothing/neck/roguetown/psicross/necra + armor = /obj/item/clothing/suit/roguetown/armor/chainmail/hauberk pants = /obj/item/clothing/under/roguetown/chainlegs shoes = /obj/item/clothing/shoes/roguetown/boots/leather belt = /obj/item/storage/belt/rogue/leather/hand - beltl = /obj/item/storage/belt/rogue/pouch/coins/mid + beltl = /obj/item/storage/belt/rogue/pouch/coins/poor id = /obj/item/clothing/ring/silver cloak = /obj/item/clothing/cloak/tabard/crusader + backl = /obj/item/rogueweapon/sword if(H.mind) H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 2, TRUE) H.mind.adjust_skillrank(/datum/skill/combat/bows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) H.mind.adjust_skillrank(/datum/skill/misc/climbing, 1, TRUE) H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) H.mind.adjust_skillrank(/datum/skill/misc/reading, 3, TRUE) H.mind.adjust_skillrank(/datum/skill/magic/holy, 1, TRUE) - backl = /obj/item/rogueweapon/sword/long H.change_stat("strength", 2) - H.change_stat("perception", 2) + H.change_stat("perception", 1) H.change_stat("intelligence", 2) H.change_stat("constitution", 2) - H.change_stat("endurance", 3) + H.change_stat("endurance", 2) H.change_stat("speed", -2) - H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/heal/lesser) - H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/burialrite) ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) if(H.dna?.species) if(H.dna.species.id == "human") @@ -46,6 +66,9 @@ if(H.dna.species.id == "tiefling") cloak = /obj/item/clothing/cloak/tabard/crusader/tief var/datum/devotion/cleric_holder/C = new /datum/devotion/cleric_holder(H, H.PATRON) - C.update_devotion(80) + //Max devotion limit - Paladins are stronger but cannot pray to gain more abilities + C.max_devotion = 200 + C.update_devotion(50, 50) C.holder_mob = H - H.verbs += list(/mob/living/carbon/human/proc/devotionreport) + C.grant_spells(H) + H.verbs += list(/mob/living/carbon/human/proc/devotionreport, /mob/living/carbon/human/proc/clericpray) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index e698f73224..ddc5022830 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -15,15 +15,19 @@ /datum/outfit/job/roguetown/adventurer/sfighter/pre_equip(mob/living/carbon/human/H) ..() - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + if(H.mind) + H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/climbing, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/riding, 3, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.change_stat("strength", 2) + H.change_stat("endurance", 3) + H.change_stat("constitution", 2) if(H.gender == MALE) pants = /obj/item/clothing/under/roguetown/tights/black else @@ -45,4 +49,4 @@ H.change_stat("perception", 1) H.change_stat("speed", 2) - ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) \ No newline at end of file + ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm index 43a7fbb513..2ec5a43f7c 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/blacksmith.dm @@ -18,7 +18,7 @@ ..() beltr = /obj/item/rogueweapon/hammer backl = /obj/item/storage/backpack/rogue/satchel - backpack_contents = list(/obj/item/rogueweapon/tongs=1) + backpack_contents = list(/obj/item/rogueweapon/tongs=1, /obj/item/rogueore/coal=1, /obj/item/rogueore/iron=1) if(H.gender == MALE) pants = /obj/item/clothing/under/roguetown/trou shoes = /obj/item/clothing/shoes/roguetown/boots/leather diff --git a/code/modules/jobs/job_types/roguetown/adventurer/villager.dm b/code/modules/jobs/job_types/roguetown/adventurer/villager.dm index 62a49776e4..23c7faf968 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/villager.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/villager.dm @@ -20,6 +20,7 @@ display_order = JDO_VILLAGER isvillager = TRUE give_bank_account = TRUE + /* /datum/job/roguetown/adventurer/villager/New() . = ..() diff --git a/code/modules/jobs/job_types/roguetown/church/monk.dm b/code/modules/jobs/job_types/roguetown/church/monk.dm index 1ec926676e..ceecefcb9f 100644 --- a/code/modules/jobs/job_types/roguetown/church/monk.dm +++ b/code/modules/jobs/job_types/roguetown/church/monk.dm @@ -69,5 +69,6 @@ var/datum/devotion/cleric_holder/C = new /datum/devotion/cleric_holder(H, H.PATRON) C.holder_mob = H - H.verbs += list(/mob/living/carbon/human/proc/devotionreport, /mob/living/carbon/human/proc/clericpray) + C.update_devotion(50, 50) C.grant_spells(H) + H.verbs += list(/mob/living/carbon/human/proc/devotionreport, /mob/living/carbon/human/proc/clericpray) diff --git a/code/modules/jobs/job_types/roguetown/church/puritan.dm b/code/modules/jobs/job_types/roguetown/church/puritan.dm index 2d0cb5a31a..f511a43442 100644 --- a/code/modules/jobs/job_types/roguetown/church/puritan.dm +++ b/code/modules/jobs/job_types/roguetown/church/puritan.dm @@ -97,7 +97,7 @@ to_chat(src, "Not ready to speak yet.") /mob/living/carbon/human/proc/confession_time() - var/timerid = addtimer(CALLBACK(src, .proc/confess_sins), 6 SECONDS, TIMER_STOPPABLE) + var/timerid = addtimer(CALLBACK(src, PROC_REF(confess_sins)), 6 SECONDS, TIMER_STOPPABLE) var/responsey = alert("Resist torture? (1 TRI)","Yes","No") if(!responsey) responsey = "No" diff --git a/code/modules/jobs/job_types/roguetown/church/templar.dm b/code/modules/jobs/job_types/roguetown/church/templar.dm index 448cad207d..a852dc45fa 100644 --- a/code/modules/jobs/job_types/roguetown/church/templar.dm +++ b/code/modules/jobs/job_types/roguetown/church/templar.dm @@ -10,7 +10,7 @@ "Tiefling", "Aasimar") outfit = /datum/outfit/job/roguetown/templar - min_pq = 5 + min_pq = 2 total_positions = 2 spawn_positions = 2 spells = list(/obj/effect/proc_holder/spell/invoked/heal/lesser, /obj/effect/proc_holder/spell/targeted/churn, /obj/effect/proc_holder/spell/targeted/burialrite) @@ -19,15 +19,22 @@ /datum/outfit/job/roguetown/templar/pre_equip(mob/living/carbon/human/H) ..() - wrists = /obj/item/clothing/neck/roguetown/psicross/astrata + neck = /obj/item/clothing/neck/roguetown/chaincoif armor = /obj/item/clothing/suit/roguetown/armor/chainmail/hauberk - pants = /obj/item/clothing/under/roguetown/chainlegs - shoes = /obj/item/clothing/shoes/roguetown/boots/leather + shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/black + pants = /obj/item/clothing/under/roguetown/tights/black + shoes = /obj/item/clothing/shoes/roguetown/boots head = /obj/item/clothing/head/roguetown/helmet/heavy/bucket - belt = /obj/item/storage/belt/rogue/leather/hand - beltl = /obj/item/storage/belt/rogue/pouch/coins/mid + backr = /obj/item/rogueweapon/shield/tower/metal + backl = /obj/item/storage/backpack/rogue/satchel + belt = /obj/item/storage/belt/rogue/leather/black + beltl = /obj/item/roguekey/church + beltr = /obj/item/rogueweapon/sword/long id = /obj/item/clothing/ring/silver - cloak = /obj/item/clothing/cloak/tabard/crusader + cloak = /obj/item/clothing/cloak/tabard/crusader/tief + gloves = /obj/item/clothing/gloves/roguetown/chain + wrists = /obj/item/clothing/wrists/roguetown/bracers + backpack_contents = list(/obj/item/storage/belt/rogue/pouch/coins/mid = 1, /obj/item/clothing/neck/roguetown/psicross/astrata = 1) if(H.mind) H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) @@ -50,9 +57,9 @@ if(H.dna?.species) if(H.dna.species.id == "human") H.dna.species.soundpack_m = new /datum/voicepack/male/knight() - if(H.dna.species.id == "tiefling") - cloak = /obj/item/clothing/cloak/tabard/crusader/tief var/datum/devotion/cleric_holder/C = new /datum/devotion/cleric_holder(H, H.PATRON) - C.update_devotion(80) + //Max devotion limit - Templars are stronger but cannot pray to gain more abilities + C.max_devotion = 200 + C.update_devotion(50, 50) C.holder_mob = H - H.verbs += list(/mob/living/carbon/human/proc/devotionreport) + H.verbs += list(/mob/living/carbon/human/proc/devotionreport, /mob/living/carbon/human/proc/clericpray) diff --git a/code/modules/jobs/job_types/roguetown/nobility/knight.dm b/code/modules/jobs/job_types/roguetown/nobility/knight.dm index 8092f47e71..de743c697c 100644 --- a/code/modules/jobs/job_types/roguetown/nobility/knight.dm +++ b/code/modules/jobs/job_types/roguetown/nobility/knight.dm @@ -22,11 +22,10 @@ ..() if(ishuman(L)) var/mob/living/carbon/human/H = L - var/prev_name = H.name var/prev_real_name = H.real_name - H.name = "Sir [prev_name]" + var/prev_name = H.name H.real_name = "Sir [prev_real_name]" - + H.name = "Sir [prev_name]" /datum/outfit/job/roguetown/knight/pre_equip(mob/living/carbon/human/H) ..() diff --git a/code/modules/jobs/job_types/roguetown/nobility/lady.dm b/code/modules/jobs/job_types/roguetown/nobility/lady.dm index 1956664c57..09ecfa8938 100644 --- a/code/modules/jobs/job_types/roguetown/nobility/lady.dm +++ b/code/modules/jobs/job_types/roguetown/nobility/lady.dm @@ -62,4 +62,4 @@ SSticker.select_ruler() if(L) to_chat(world, "[L.real_name] is Queen of Rockhill.") - addtimer(CALLBACK(L, /mob/.proc/lord_color_choice), 50) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, lord_color_choice)), 50) diff --git a/code/modules/jobs/job_types/roguetown/nobility/lord.dm b/code/modules/jobs/job_types/roguetown/nobility/lord.dm index 33ee8239ad..404904f6c7 100644 --- a/code/modules/jobs/job_types/roguetown/nobility/lord.dm +++ b/code/modules/jobs/job_types/roguetown/nobility/lord.dm @@ -23,7 +23,7 @@ if(L) SSticker.select_ruler() to_chat(world, "[L.real_name] is King of Rockhill.") - addtimer(CALLBACK(L, /mob/.proc/lord_color_choice), 50) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, lord_color_choice)), 50) /datum/outfit/job/roguetown/lord/pre_equip(mob/living/carbon/human/H) diff --git a/code/modules/jobs/job_types/roguetown/peasants/beggar.dm b/code/modules/jobs/job_types/roguetown/peasants/beggar.dm index af5b24b01d..6fed88c4cb 100644 --- a/code/modules/jobs/job_types/roguetown/peasants/beggar.dm +++ b/code/modules/jobs/job_types/roguetown/peasants/beggar.dm @@ -1,4 +1,3 @@ - /datum/job/roguetown/vagrant title = "Beggar" flag = APPRENTICE @@ -27,21 +26,70 @@ . = ..() peopleknowme = list() +/datum/outfit/job/roguetown/vagrant + /// Chance to become a wise beggar, if we still have space for more wise beggars + var/wise_chance = 10 + /// Amount of wise beggars spawned as of now + var/wise_amount = 0 + /// Maximum amount of wise beggars that can be spawned + var/wise_max = 3 + /datum/outfit/job/roguetown/vagrant/pre_equip(mob/living/carbon/human/H) ..() + // wise beggar!!! + // guaranteed full beggar gear + random stats + if((wise_amount < wise_max) && prob(wise_chance)) + head = /obj/item/clothing/head/roguetown/wizhat/gen/wise //wise hat + beltr = /obj/item/reagent_containers/powder/moondust + beltl = /obj/item/clothing/mask/cigarette/rollie/cannabis + cloak = /obj/item/clothing/cloak/raincloak/brown + gloves = /obj/item/clothing/gloves/roguetown/fingerless + armor = /obj/item/clothing/suit/roguetown/shirt/rags + shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/vagrant + pants = /obj/item/clothing/under/roguetown/tights/vagrant + r_hand = /obj/item/rogueweapon/woodstaff/wise // dog beating staff + if(H.mind) + H.mind.adjust_skillrank(/datum/skill/misc/sneaking, rand(2,5), TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/stealing, rand(2,5), TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/climbing, rand(2,5), TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/reading, 4, TRUE) //very good reading he is wise + H.mind.adjust_skillrank(/datum/skill/combat/polearms, rand(2,5), TRUE) // dog beating staff + H.STASTR = rand(1, 20) + H.STAINT = rand(5, 20) + H.STALUC = rand(1, 20) + H.change_stat("constitution", -rand(0, 3)) + H.change_stat("endurance", -rand(0, 3)) + H.real_name = "[H.real_name] the Wise" + H.name = "[H.name] the Wise" + H.facial_hairstyle = "Knowledge" + H.update_hair() + H.age = AGE_OLD + wise_amount++ + return if(prob(20)) head = /obj/item/clothing/head/roguetown/knitcap + else + head = null if(prob(5)) beltr = /obj/item/reagent_containers/powder/moondust + else + beltr = null if(prob(10)) beltl = /obj/item/clothing/mask/cigarette/rollie/cannabis + else + beltl = null if(prob(10)) cloak = /obj/item/clothing/cloak/raincloak/brown + else + cloak = null if(prob(10)) gloves = /obj/item/clothing/gloves/roguetown/fingerless + else + gloves = null if(H.gender == FEMALE) armor = /obj/item/clothing/suit/roguetown/shirt/rags else + armor = null pants = /obj/item/clothing/under/roguetown/tights/vagrant if(prob(50)) pants = /obj/item/clothing/under/roguetown/tights/vagrant/l @@ -49,14 +97,18 @@ if(prob(50)) shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/vagrant/l if(H.mind) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, pick(1,2,3,4,5), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/stealing, pick(1,2,3,4,5), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, pick(1,2,3,4,5), TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/sneaking, rand(1,5), TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/stealing, rand(1,5), TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/climbing, rand(1,5), TRUE) H.STALUC = rand(1, 20) if(prob(5)) r_hand = /obj/item/rogueweapon/mace/woodclub + else + r_hand = null if(prob(5)) l_hand = /obj/item/rogueweapon/mace/woodclub + else + l_hand = null H.change_stat("strength", -1) H.change_stat("intelligence", -4) H.change_stat("constitution", -3) diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index 78e50f4573..7807225011 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -71,7 +71,7 @@ return FALSE if(action == "search") SStgui.close_uis(src) - addtimer(CALLBACK(src, .proc/perform_research, usr, currentName), 0) + addtimer(CALLBACK(src, PROC_REF(perform_research), usr, currentName), 0) currentName = "" currentSection = PRE_TITLE return FALSE diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 6413eba45e..2db46e2874 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -139,11 +139,18 @@ new /obj/effect/dummy/lighting_obj (src, _range, _power, _color, _duration) -/obj/flash_lighting_fx(_range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, _color = COLOR_WHITE, _duration = FLASH_LIGHT_DURATION) +/obj/flash_lighting_fx(_range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, _color = LIGHT_COLOR_WHITE, _duration = FLASH_LIGHT_DURATION, _reset_lighting = TRUE) if(!_duration) stack_trace("Lighting FX obj created on a obj without a duration") - new /obj/effect/dummy/lighting_obj (get_turf(src), _range, _power, _color, _duration) - + var/temp_color + var/temp_power + var/temp_range + if(!_reset_lighting) //incase the obj already has a lighting color that you don't want cleared out after, ie computer monitors. + temp_color = light_color + temp_power = light_power + temp_range = light_range + set_light(_range, _power, _color) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, set_light), _reset_lighting ? initial(light_range) : temp_range, _reset_lighting ? initial(light_power) : temp_power, _reset_lighting ? initial(light_color) : temp_color), _duration, TIMER_OVERRIDE|TIMER_UNIQUE) /mob/living/flash_lighting_fx(_range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, _color = COLOR_WHITE, _duration = FLASH_LIGHT_DURATION) mob_light(_range, _power, _color, _duration) diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 14f67fbe31..544c68d3be 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -285,7 +285,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also return anti_spam_cd = 1 - addtimer(CALLBACK(src, .proc/clear_cooldown), 50) + addtimer(CALLBACK(src, PROC_REF(clear_cooldown)), 50) var/turf/landing_spot = get_turf(src) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 89a6193919..993279ed26 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -94,7 +94,7 @@ D.fire() charged = FALSE update_icon() - addtimer(CALLBACK(src, .proc/Recharge), charge_time) + addtimer(CALLBACK(src, PROC_REF(Recharge)), charge_time) return if(proximity_flag && isliving(target)) var/mob/living/L = target @@ -344,7 +344,7 @@ continue playsound(L, 'sound/blank.ogg', 20, TRUE) new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, .proc/pushback, L, user), 1) //no free backstabs, we push AFTER module stuff is done + addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done L.adjustFireLoss(bonus_value, forced = TRUE) /obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user) @@ -410,7 +410,7 @@ /obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/crusher_trophy/blaster_tubes/proc/reset_deadly_shot() deadly_shot = FALSE diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 4d104a8a64..26f12f694f 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -33,7 +33,7 @@ /obj/item/organ/regenerative_core/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/inert_check), 2400) + addtimer(CALLBACK(src, PROC_REF(inert_check)), 2400) /obj/item/organ/regenerative_core/proc/inert_check() if(!preserved) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index 628ff4750d..0308cba738 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -70,7 +70,7 @@ transform = matrix()*0.75 animate(src, transform = matrix()*1.5, time = duration) deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/burst), duration, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(burst)), duration, TIMER_STOPPABLE) /obj/effect/temp_visual/resonance/Destroy() if(res) diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index d515a0a2e3..ece3521c0b 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -96,4 +96,4 @@ L.Paralyze(60) if(ishuman(L)) shake_camera(L, 20, 1) - addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living/carbon, vomit)), 20) diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 6e7ed78c36..14f73fb692 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -30,7 +30,7 @@ GLOBAL_LIST(labor_sheet_values) if(!initial(sheet.point_value) || (initial(sheet.merge_type) && initial(sheet.merge_type) != sheet_type)) //ignore no-value sheets and x/fifty subtypes continue sheet_list += list(list("ore" = initial(sheet.name), "value" = initial(sheet.point_value))) - GLOB.labor_sheet_values = sortList(sheet_list, /proc/cmp_sheet_list) + GLOB.labor_sheet_values = sortList(sheet_list, GLOBAL_PROC_REF(cmp_sheet_list)) /proc/cmp_sheet_list(list/a, list/b) return a["value"] - b["value"] diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 66a7fffa38..5d736cbc98 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -48,7 +48,7 @@ name = harvested_name desc = harvested_desc harvested = TRUE - addtimer(CALLBACK(src, .proc/regrow), rand(regrowth_time_low, regrowth_time_high)) + addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high)) return 1 /obj/structure/flora/ash/proc/regrow() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 6f280978e8..7e47709bf2 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -308,7 +308,7 @@ /obj/effect/wisp/orbit(atom/thing) . = ..() // if(ismob(thing)) -// RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, .proc/update_user_sight) +// RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, PROC_REF(update_user_sight)) // var/mob/being = thing // being.update_sight() // to_chat(thing, "The wisp enhances my vision.") @@ -506,7 +506,7 @@ can_destroy = FALSE - addtimer(CALLBACK(src, .proc/unvanish, user), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(unvanish), user), 10 SECONDS) /obj/effect/immortality_talisman/proc/unvanish(mob/user) user.status_flags &= ~GODMODE @@ -1013,7 +1013,7 @@ /obj/item/mayhem/attack_self(mob/user) for(var/mob/living/carbon/human/H in range(7,user)) var/obj/effect/mine/pickup/bloodbath/B = new(H) - INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, H) + INVOKE_ASYNC(B, TYPE_PROC_REF(/obj/effect/mine/pickup/bloodbath, mineEffect), H) to_chat(user, "I shatter the bottle!") playsound(user.loc, 'sound/blank.ogg', 100, TRUE) message_admins("[ADMIN_LOOKUPFLW(user)] has activated a bottle of mayhem!") @@ -1140,11 +1140,11 @@ calculate_anger_mod(user) timer = world.time + CLICK_CD_MELEE //by default, melee attacks only cause melee blasts, and have an accordingly short cooldown if(proximity_flag) - INVOKE_ASYNC(src, .proc/aoe_burst, T, user) + INVOKE_ASYNC(src, PROC_REF(aoe_burst), T, user) log_combat(user, target, "fired 3x3 blast at", src) else if(ismineralturf(target) && get_dist(user, target) < 6) //target is minerals, we can hit it(even if we can't see it) - INVOKE_ASYNC(src, .proc/cardinal_blasts, T, user) + INVOKE_ASYNC(src, PROC_REF(cardinal_blasts), T, user) timer = world.time + cooldown_time else if(target in view(5, get_turf(user))) //if the target is in view, hit it timer = world.time + cooldown_time @@ -1155,12 +1155,12 @@ C.monster_damage_boost = FALSE log_combat(user, target, "fired a chaser at", src) else - INVOKE_ASYNC(src, .proc/cardinal_blasts, T, user) //otherwise, just do cardinal blast + INVOKE_ASYNC(src, PROC_REF(cardinal_blasts), T, user) //otherwise, just do cardinal blast log_combat(user, target, "fired cardinal blast at", src) else to_chat(user, "That target is out of range!" ) timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) /obj/item/hierophant_club/proc/calculate_anger_mod(mob/user) //we get stronger as the user loses health chaser_cooldown = initial(chaser_cooldown) @@ -1203,7 +1203,7 @@ user.visible_message("[user] starts fiddling with [src]'s pommel...", \ "I start detaching the hierophant beacon...") timer = world.time + 51 - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) if(do_after(user, 50, target = user) && !beacon) var/turf/T = get_turf(user) playsound(T,'sound/blank.ogg', 200, TRUE, -4) @@ -1215,7 +1215,7 @@ I can remove the beacon to place it again by striking it with the club.") else timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) else to_chat(user, "I need to be on solid ground to detach the beacon!") return @@ -1232,7 +1232,7 @@ user.update_action_buttons_icon() user.visible_message("[user] starts to glow faintly...") timer = world.time + 50 - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) beacon.icon_state = "hierophant_tele_on" var/obj/effect/temp_visual/hierophant/telegraph/edge/TE1 = new /obj/effect/temp_visual/hierophant/telegraph/edge(user.loc) var/obj/effect/temp_visual/hierophant/telegraph/edge/TE2 = new /obj/effect/temp_visual/hierophant/telegraph/edge(beacon.loc) @@ -1244,7 +1244,7 @@ to_chat(user, "The beacon is blocked by something, preventing teleportation!") user.update_action_buttons_icon() timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) beacon.icon_state = "hierophant_tele_off" return new /obj/effect/temp_visual/hierophant/telegraph(T, user) @@ -1256,7 +1256,7 @@ if(user) user.update_action_buttons_icon() timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) if(beacon) beacon.icon_state = "hierophant_tele_off" return @@ -1265,7 +1265,7 @@ to_chat(user, "The beacon is blocked by something, preventing teleportation!") user.update_action_buttons_icon() timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) beacon.icon_state = "hierophant_tele_off" return user.log_message("teleported self from [AREACOORD(source)] to [beacon]", LOG_GAME) @@ -1278,7 +1278,7 @@ var/obj/effect/temp_visual/hierophant/blast/B = new /obj/effect/temp_visual/hierophant/blast(t, user, TRUE) //but absolutely will hurt enemies B.damage = 30 for(var/mob/living/L in range(1, source)) - INVOKE_ASYNC(src, .proc/teleport_mob, source, L, T, user) //regardless, take all mobs near us along + INVOKE_ASYNC(src, PROC_REF(teleport_mob), source, L, T, user) //regardless, take all mobs near us along sleep(6) //at this point the blasts detonate if(beacon) beacon.icon_state = "hierophant_tele_off" @@ -1286,7 +1286,7 @@ qdel(TE1) qdel(TE2) timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) if(beacon) beacon.icon_state = "hierophant_tele_off" teleporting = FALSE @@ -1327,7 +1327,7 @@ B.damage = HIEROPHANT_CLUB_CARDINAL_DAMAGE B.monster_damage_boost = FALSE for(var/d in GLOB.cardinals) - INVOKE_ASYNC(src, .proc/blast_wall, T, d, user) + INVOKE_ASYNC(src, PROC_REF(blast_wall), T, d, user) /obj/item/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long if(!T) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index a6d0f1bfa3..8b03c6df5b 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -286,7 +286,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ else user.visible_message("[user] strikes \the [src], causing a chain reaction!", "I strike \the [src], causing a chain reaction.") log_bomber(user, "has primed a", src, "for detonation", notify_admins) - det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE) + det_timer = addtimer(CALLBACK(src, PROC_REF(detonate), notify_admins), det_time, TIMER_STOPPABLE) /obj/item/twohanded/required/gibtonite/proc/detonate(notify_admins) if(primed) @@ -354,7 +354,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ if (!attack_self(user)) user.visible_message("[user] couldn't flip \the [src]!") return SHAME - addtimer(CALLBACK(src, .proc/manual_suicide, user), 10)//10 = time takes for flip animation + addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 10)//10 = time takes for flip animation return MANUAL_SUICIDE_NONLETHAL /obj/item/coin/proc/manual_suicide(mob/living/user) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index c7344fa819..ca491b212a 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -21,6 +21,10 @@ INITIALIZE_IMMEDIATE(/mob/dead) set_focus(src) return INITIALIZE_HINT_NORMAL +/mob/dead/Destroy() + GLOB.mob_list -= src + return ..() + /mob/dead/canUseStorage() return FALSE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 85ffa1cbcd..30c6a7fdbd 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -247,7 +247,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/old_color = color color = "#960000" animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 10) /mob/dead/observer/Destroy() GLOB.ghost_images_default -= ghostimage_default diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index a207ca18ed..2939b45e48 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -7,7 +7,7 @@ return else bleedsuppress = TRUE - addtimer(CALLBACK(src, .proc/resume_bleeding), amount) + addtimer(CALLBACK(src, PROC_REF(resume_bleeding)), amount) /mob/living/proc/resume_bleeding() bleedsuppress = 0 diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index 665442fe1a..1e6eb71d69 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -38,7 +38,7 @@ C.regenerate_icons() notransform = TRUE - INVOKE_ASYNC(src, .proc/bloodpool_sink, B) + INVOKE_ASYNC(src, PROC_REF(bloodpool_sink), B) return TRUE @@ -155,7 +155,7 @@ newcolor = rgb(43, 186, 0) add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY) // but only for a few seconds - addtimer(CALLBACK(src, /atom/.proc/remove_atom_colour, TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, remove_atom_colour), TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS) /mob/living/proc/phasein(obj/effect/decal/cleanable/B) if(notransform) diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 6d262d2956..e50e7064e2 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -55,7 +55,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) next_ask = world.time + askDelay searching = TRUE update_icon() - addtimer(CALLBACK(src, .proc/check_success), askDelay) + addtimer(CALLBACK(src, PROC_REF(check_success)), askDelay) /obj/item/mmi/posibrain/proc/check_success() searching = FALSE diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 55c329611e..156ee78719 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -47,7 +47,7 @@ leaping = 1 weather_immunities += "lava" update_icons() - throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end)) + throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(leap_end))) /mob/living/carbon/alien/humanoid/hunter/proc/leap_end() leaping = 0 diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 56009fa14f..1463b0fe07 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -145,7 +145,7 @@ recent_queen_death = 1 owner.throw_alert("alien_noqueen", /obj/screen/alert/alien_vulnerable) - addtimer(CALLBACK(src, .proc/clear_queen_death), QUEEN_DEATH_DEBUFF_DURATION) + addtimer(CALLBACK(src, PROC_REF(clear_queen_death)), QUEEN_DEATH_DEBUFF_DURATION) /obj/item/organ/alien/hivenode/proc/clear_queen_death() diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 19c1278947..ade4924a5f 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -53,7 +53,7 @@ /obj/item/organ/body_egg/alien_embryo/egg_process() if(stage < 5 && prob(3)) stage++ - INVOKE_ASYNC(src, .proc/RefreshInfectionImage) + INVOKE_ASYNC(src, PROC_REF(RefreshInfectionImage)) if(stage == 5 && prob(50)) for(var/datum/surgery/S in owner.surgeries) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index ba1517d090..1d33d09a7f 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -107,7 +107,7 @@ return if(stat == CONSCIOUS) icon_state = "[initial(icon_state)]_thrown" - addtimer(CALLBACK(src, .proc/clear_throw_icon_state), 15) + addtimer(CALLBACK(src, PROC_REF(clear_throw_icon_state)), 15) /obj/item/clothing/mask/facehugger/proc/clear_throw_icon_state() if(icon_state == "[initial(icon_state)]_thrown") @@ -179,7 +179,7 @@ // early returns and validity checks done: attach. attached++ //ensure we detach once we no longer need to be attached - addtimer(CALLBACK(src, .proc/detach), MAX_IMPREGNATION_TIME) + addtimer(CALLBACK(src, PROC_REF(detach)), MAX_IMPREGNATION_TIME) if(!sterile) @@ -188,7 +188,7 @@ GoIdle() //so it doesn't jump the people that tear it off - addtimer(CALLBACK(src, .proc/Impregnate, M), rand(MIN_IMPREGNATION_TIME, MAX_IMPREGNATION_TIME)) + addtimer(CALLBACK(src, PROC_REF(Impregnate), M), rand(MIN_IMPREGNATION_TIME, MAX_IMPREGNATION_TIME)) /obj/item/clothing/mask/facehugger/proc/detach() attached = 0 @@ -233,7 +233,7 @@ stat = UNCONSCIOUS icon_state = "[initial(icon_state)]_inactive" - addtimer(CALLBACK(src, .proc/GoActive), rand(MIN_ACTIVE_TIME, MAX_ACTIVE_TIME)) + addtimer(CALLBACK(src, PROC_REF(GoActive)), rand(MIN_ACTIVE_TIME, MAX_ACTIVE_TIME)) /obj/item/clothing/mask/facehugger/proc/Die() if(stat == DEAD) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e6af650a97..bd0a61486a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -552,7 +552,7 @@ mob_timers["puke"] = world.time if(getorgan(/obj/item/organ/stomach)) to_chat(src, "I'm going to puke...") - addtimer(CALLBACK(src, .proc/vomit, 50), rand(8 SECONDS, 15 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(vomit), 50), rand(8 SECONDS, 15 SECONDS)) else if(prob(3)) to_chat(src, "I feel sick...") @@ -560,7 +560,7 @@ if(getorgan(/obj/item/organ/stomach)) mob_timers["puke"] = world.time to_chat(src, "I'm going to puke...") - addtimer(CALLBACK(src, .proc/vomit, 50), rand(8 SECONDS, 15 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(vomit), 50), rand(8 SECONDS, 15 SECONDS)) add_nausea(-1) @@ -1234,7 +1234,7 @@ if(!check_rights(NONE)) return var/list/traumas = subtypesof(/datum/brain_trauma) - var/result = input(usr, "Choose the brain trauma to apply","Traumatize") as null|anything in sortList(traumas, /proc/cmp_typepaths_asc) + var/result = input(usr, "Choose the brain trauma to apply","Traumatize") as null|anything in sortList(traumas, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!usr) return if(QDELETED(src)) @@ -1256,7 +1256,7 @@ if(!check_rights(NONE)) return var/list/hallucinations = subtypesof(/datum/hallucination) - var/result = input(usr, "Choose the hallucination to apply","Send Hallucination") as null|anything in sortList(hallucinations, /proc/cmp_typepaths_asc) + var/result = input(usr, "Choose the hallucination to apply","Send Hallucination") as null|anything in sortList(hallucinations, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!usr) return if(QDELETED(src)) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 0a19f12f28..fa9227e7c7 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -390,7 +390,7 @@ do_jitter_animation(jitteriness) stuttering += 2 emote("painscream") - addtimer(CALLBACK(src, .proc/secondary_shock, should_stun), 20) + addtimer(CALLBACK(src, PROC_REF(secondary_shock), should_stun), 20) return shock_damage ///Called slightly after electrocute act to reduce jittering and apply a secondary stun. diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 8448704a62..fdab56ced1 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -29,7 +29,7 @@ return ..() /mob/living/carbon/proc/inflate_gib() // Plays an animation that makes mobs appear to inflate before finally gibbing - addtimer(CALLBACK(src, .proc/gib, null, null, TRUE, TRUE), 25) + addtimer(CALLBACK(src, PROC_REF(gib), null, null, TRUE, TRUE), 25) var/matrix/M = matrix() M.Scale(1.8, 1.2) animate(src, time = 40, transform = M, easing = SINE_EASING) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 4cf4a8573d..10049a23e5 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -125,7 +125,7 @@ SSblackbox.ReportDeath(src) log_message("has died (BRUTE: [src.getBruteLoss()], BURN: [src.getFireLoss()], TOX: [src.getToxLoss()], OXY: [src.getOxyLoss()], CLONE: [src.getCloneLoss()])", LOG_ATTACK) if(is_devil(src)) - INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) + INVOKE_ASYNC(is_devil(src), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) /mob/living/carbon/human/proc/zombie_check() if(mind && ckey) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d4f3c4a447..c88a67815a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -18,7 +18,7 @@ . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_blood) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_blood)) AddComponent(/datum/component/personal_crafting) AddComponent(/datum/component/footstep, footstep_type, 1, 2) GLOB.human_list += src @@ -850,7 +850,7 @@ electrocution_skeleton_anim = mutable_appearance(icon, "electrocuted_base") electrocution_skeleton_anim.appearance_flags |= RESET_COLOR|KEEP_APART add_overlay(electrocution_skeleton_anim) - addtimer(CALLBACK(src, .proc/end_electrocution_animation, electrocution_skeleton_anim), anim_duration) + addtimer(CALLBACK(src, PROC_REF(end_electrocution_animation), electrocution_skeleton_anim), anim_duration) else //or just do a generic animation flick_overlay_view(image(icon,src,"electrocuted_generic",ABOVE_MOB_LAYER), src, anim_duration) diff --git a/code/modules/mob/living/carbon/human/npc/_npc.dm b/code/modules/mob/living/carbon/human/npc/_npc.dm index 697ee30e29..e2b34a9083 100644 --- a/code/modules/mob/living/carbon/human/npc/_npc.dm +++ b/code/modules/mob/living/carbon/human/npc/_npc.dm @@ -193,7 +193,7 @@ // else if(istype(I, /obj/item/clothing)) // var/obj/item/clothing/C = I // monkeyDrop(C) -// addtimer(CALLBACK(src, .proc/pickup_and_wear, C), 5) +// addtimer(CALLBACK(src, PROC_REF(pickup_and_wear), C), 5) // return TRUE // EVERYTHING ELSE @@ -208,7 +208,7 @@ /mob/living/carbon/human/proc/pickup_and_wear(obj/item/clothing/C) if(!equip_to_appropriate_slot(C)) monkeyDrop(get_item_by_slot(C)) // remove the existing item if worn - addtimer(CALLBACK(src, .proc/equip_to_appropriate_slot, C), 5) + addtimer(CALLBACK(src, PROC_REF(equip_to_appropriate_slot), C), 5) /mob/living/carbon/human/proc/monkeyDrop(obj/item/A) if(A) @@ -268,7 +268,7 @@ back_to_idle() return TRUE m_intent = MOVE_INTENT_WALK - INVOKE_ASYNC(src, .proc/walk2derpless, target) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), target) if(!get_active_held_item() && !get_inactive_held_item()) // pickup any nearby weapon diff --git a/code/modules/mob/living/carbon/human/npc/bum.dm b/code/modules/mob/living/carbon/human/npc/bum.dm index 9f5ae1f882..64ca8f23bd 100644 --- a/code/modules/mob/living/carbon/human/npc/bum.dm +++ b/code/modules/mob/living/carbon/human/npc/bum.dm @@ -37,7 +37,7 @@ GLOBAL_LIST_INIT(bum_aggro, world.file2list("strings/rt/bumaggrolines.txt")) set_species(/datum/species/human/northern) spawn(10) after_creation() - //addtimer(CALLBACK(src, .proc/after_creation), 10) + //addtimer(CALLBACK(src, PROC_REF(after_creation)), 10) /mob/living/carbon/human/species/human/northern/bum/after_creation() ..() diff --git a/code/modules/mob/living/carbon/human/npc/goblin.dm b/code/modules/mob/living/carbon/human/npc/goblin.dm index 52ed5b6da5..1dac3b27cc 100644 --- a/code/modules/mob/living/carbon/human/npc/goblin.dm +++ b/code/modules/mob/living/carbon/human/npc/goblin.dm @@ -184,7 +184,7 @@ . = ..() spawn(10) after_creation() - //addtimer(CALLBACK(src, .proc/after_creation), 10) + //addtimer(CALLBACK(src, PROC_REF(after_creation)), 10) /mob/living/carbon/human/species/goblin/handle_combat() if(mode == AI_HUNT) @@ -402,7 +402,7 @@ update_icon() spawn(2 SECONDS) creategob() - //addtimer(CALLBACK(src, .proc/creategob), 4 SECONDS) + //addtimer(CALLBACK(src, PROC_REF(creategob)), 4 SECONDS) /obj/structure/gob_portal/Destroy() soundloop.stop() diff --git a/code/modules/mob/living/carbon/human/npc/skeleton.dm b/code/modules/mob/living/carbon/human/npc/skeleton.dm index 91fe0f6cbf..33e5f39304 100644 --- a/code/modules/mob/living/carbon/human/npc/skeleton.dm +++ b/code/modules/mob/living/carbon/human/npc/skeleton.dm @@ -26,7 +26,7 @@ spawn(10) after_creation() - addtimer(CALLBACK(src, .proc/after_creation), 10) + addtimer(CALLBACK(src, PROC_REF(after_creation)), 10) /mob/living/carbon/human/species/skeleton/after_creation() ..() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 80e08cece6..f3de48561d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1708,7 +1708,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(radiation > RAD_MOB_HAIRLOSS) if(prob(15) && !(H.hairstyle == "Bald") && (HAIR in species_traits)) to_chat(H, "My hair starts to fall out in clumps...") - addtimer(CALLBACK(src, .proc/go_bald, H), 50) + addtimer(CALLBACK(src, PROC_REF(go_bald), H), 50) /datum/species/proc/go_bald(mob/living/carbon/human/H) if(QDELETED(H)) //may be called from a timer @@ -1955,7 +1955,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) target.visible_message("[user.name] kicks [target.name] onto their side!", "You're kicked onto my side by [user.name]!", "I hear aggressive shuffling followed by a loud thud!", COMBAT_MESSAGE_RANGE, user) to_chat(user, "I kick [target.name] onto their side!") - addtimer(CALLBACK(target, /mob/living/proc/SetKnockdown, 0), SHOVE_CHAIN_PARALYZE) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living, SetKnockdown), 0), SHOVE_CHAIN_PARALYZE) log_combat(user, target, "kicks", "onto their side (paralyzing)")*/ if(shove_blocked && !target.is_shove_knockdown_blocked() && !target.buckled) @@ -2004,7 +2004,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(target_held_item) target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!", "My grip on \the [target_held_item] loosens!", null, COMBAT_MESSAGE_RANGE) - addtimer(CALLBACK(target, /mob/living/carbon/human/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon/human, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) else if(target_held_item) target.dropItemToGround(target_held_item) knocked_item = TRUE @@ -2737,7 +2737,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) buckled_obj.unbuckle_mob(H) step(buckled_obj, olddir) else - new /datum/forced_movement(H, get_ranged_target_turf(H, olddir, 4), 1, FALSE, CALLBACK(H, /mob/living/carbon/.proc/spin, 1, 1)) + new /datum/forced_movement(H, get_ranged_target_turf(H, olddir, 4), 1, FALSE, CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon, spin), 1, 1)) return TRUE //UNSAFE PROC, should only be called through the Activate or other sources that check for CanFly @@ -2794,7 +2794,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) user, \ spin = FALSE, \ force = target.move_force, \ - callback = CALLBACK(target, /mob/living/proc/handle_knockback, get_turf(target))) + callback = CALLBACK(target, TYPE_PROC_REF(/mob/living, handle_knockback), get_turf(target))) else if(!I.force) return @@ -2816,7 +2816,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) user, \ spin = FALSE, \ force = target.move_force, \ - callback = CALLBACK(target, /mob/living/proc/handle_knockback, get_turf(target))) + callback = CALLBACK(target, TYPE_PROC_REF(/mob/living, handle_knockback), get_turf(target))) /mob/living/proc/handle_knockback(turf/starting_turf) var/distance = 0 diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 8823280003..89da3ee1a0 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -39,8 +39,8 @@ g1 = GetGreenPart(default_color) b1 = GetBluePart(default_color) spec_updatehealth(H) - RegisterSignal(C, COMSIG_ATOM_EMAG_ACT, .proc/on_emag_act) - RegisterSignal(C, COMSIG_ATOM_EMP_ACT, .proc/on_emp_act) + RegisterSignal(C, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act)) + RegisterSignal(C, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) /datum/species/ethereal/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) .=..() @@ -75,9 +75,9 @@ to_chat(H, "I feel the light of your body leave you.") switch(severity) if(EMP_LIGHT) - addtimer(CALLBACK(src, .proc/stop_emp, H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds if(EMP_HEAVY) - addtimer(CALLBACK(src, .proc/stop_emp, H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds /datum/species/ethereal/proc/on_emag_act(mob/living/carbon/human/H, mob/user) if(emageffect) @@ -87,7 +87,7 @@ to_chat(user, "I tap [H] on the back with your card.") H.visible_message("[H] starts flickering in an array of colors!") handle_emag(H) - addtimer(CALLBACK(src, .proc/stop_emag, H), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. + addtimer(CALLBACK(src, PROC_REF(stop_emag), H), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. /datum/species/ethereal/spec_life(mob/living/carbon/human/H) @@ -106,7 +106,7 @@ return current_color = pick(ETHEREAL_COLORS) spec_updatehealth(H) - addtimer(CALLBACK(src, .proc/handle_emag, H), 5) //Call ourselves every 0.5 seconds to change color + addtimer(CALLBACK(src, PROC_REF(handle_emag), H), 5) //Call ourselves every 0.5 seconds to change color /datum/species/ethereal/proc/stop_emag(mob/living/carbon/human/H) emageffect = FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 61bc44154b..4973a46f66 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -478,7 +478,7 @@ var/mob/living/carbon/human/H = owner H.visible_message("[H] starts vibrating!", "I start charging my bluespace core...") playsound(get_turf(H), 'sound/blank.ogg', 25, TRUE) - addtimer(CALLBACK(src, .proc/teleport, H), 15) + addtimer(CALLBACK(src, PROC_REF(teleport), H), 15) /datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) H.visible_message("[H] disappears in a shower of sparks!", "I teleport!") @@ -490,7 +490,7 @@ last_teleport = world.time UpdateButtonIcon() //action icon looks unavailable //action icon looks available again - addtimer(CALLBACK(src, .proc/UpdateButtonIcon), cooldown + 5) + addtimer(CALLBACK(src, PROC_REF(UpdateButtonIcon)), cooldown + 5) //honk @@ -519,7 +519,7 @@ ..() last_banana = world.time last_honk = world.time - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/species/golem/bananium/on_species_loss(mob/living/carbon/C) . = ..() @@ -703,7 +703,7 @@ H.forceMove(src) cloth_golem = H to_chat(cloth_golem, "I start gathering my life energy, preparing to rise again...") - addtimer(CALLBACK(src, .proc/revive), revive_time) + addtimer(CALLBACK(src, PROC_REF(revive)), revive_time) else return INITIALIZE_HINT_QDEL @@ -991,7 +991,7 @@ badtime.appearance_flags = RESET_COLOR H.overlays_standing[FIRE_LAYER+0.5] = badtime H.apply_overlay(FIRE_LAYER+0.5) - addtimer(CALLBACK(H, /mob/living/carbon/.proc/remove_overlay, FIRE_LAYER+0.5), 25) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon, remove_overlay), FIRE_LAYER+0.5), 25) else playsound(get_turf(owner),'sound/blank.ogg', 100) for(var/mob/living/L in orange(7, get_turf(owner))) @@ -1078,7 +1078,7 @@ SEND_SOUND(C, sound('sound/blank.ogg')) C.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock ()) - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/species/golem/capitalist/on_species_loss(mob/living/carbon/C) . = ..() @@ -1120,13 +1120,13 @@ SEND_SOUND(C, sound('sound/blank.ogg')) C.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock ()) - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/species/golem/soviet/on_species_loss(mob/living/carbon/C) . = ..() for(var/obj/effect/proc_holder/spell/aoe_turf/knock/spell in C.mob_spell_list) C.RemoveSpell(spell) - UnregisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + UnregisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/species/golem/soviet/spec_unarmedattacked(mob/living/carbon/human/user, mob/living/carbon/human/target) ..() diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/dwarf/_dwarf.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/dwarf/_dwarf.dm index a4a0eb2d0d..7585773567 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/dwarf/_dwarf.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/dwarf/_dwarf.dm @@ -8,7 +8,7 @@ /datum/species/dwarf/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) C.grant_language(/datum/language/common) C.grant_language(/datum/language/dwarvish) diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/elf/_elf.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/elf/_elf.dm index ed61905e4d..5d6d04ad28 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/elf/_elf.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/elf/_elf.dm @@ -9,7 +9,7 @@ /datum/species/elf/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) C.grant_language(/datum/language/common) C.grant_language(/datum/language/elvish) diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/human/_human.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/human/_human.dm index 6b0bb7b772..475959daf5 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/human/_human.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/human/_human.dm @@ -7,7 +7,7 @@ /datum/species/human/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) C.grant_language(/datum/language/common) var/mob/living/carbon/human/H = C diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/other/aasimar.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/other/aasimar.dm index 42215b63c1..da880e8b3b 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/other/aasimar.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/other/aasimar.dm @@ -52,7 +52,7 @@ /datum/species/aasimar/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) C.grant_language(/datum/language/common) /datum/species/aasimar/after_creation(mob/living/carbon/C) diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/other/tiefling.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/other/tiefling.dm index b5d4683456..62b1ff0fb8 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/other/tiefling.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/other/tiefling.dm @@ -56,7 +56,7 @@ /datum/species/tieberian/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) C.grant_language(/datum/language/common) C.grant_language(/datum/language/hellspeak) diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/other/werewolf.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/other/werewolf.dm index ae8a1ccade..ee4772d39e 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/other/werewolf.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/other/werewolf.dm @@ -38,7 +38,7 @@ /datum/species/werewolf/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) C.remove_all_languages() C.grant_language(/datum/language/beast) diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 9dc4f11c19..217a81f6cd 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -33,7 +33,7 @@ /datum/species/synth/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) ..() assume_disguise(old_species, H) - RegisterSignal(H, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(H, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/species/synth/on_species_loss(mob/living/carbon/human/H) . = ..() diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index b175e32d33..67302e6424 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -160,8 +160,8 @@ Immobilize(10) emote("painscream") stuttering += 5 - addtimer(CALLBACK(src, .proc/Stun, 110), 10) - addtimer(CALLBACK(src, .proc/Knockdown, 110), 10) + addtimer(CALLBACK(src, PROC_REF(Stun), 110), 10) + addtimer(CALLBACK(src, PROC_REF(Knockdown), 110), 10) mob_timers["painstun"] = world.time + 160 else emote("painmoan") diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 92ff0d7805..cfb9f12741 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -88,7 +88,7 @@ else if(istype(I, /obj/item/clothing)) var/obj/item/clothing/C = I monkeyDrop(C) - addtimer(CALLBACK(src, .proc/pickup_and_wear, C), 5) + addtimer(CALLBACK(src, PROC_REF(pickup_and_wear), C), 5) return TRUE // EVERYTHING ELSE @@ -103,7 +103,7 @@ /mob/living/carbon/monkey/proc/pickup_and_wear(obj/item/clothing/C) if(!equip_to_appropriate_slot(C)) monkeyDrop(get_item_by_slot(C)) // remove the existing item if worn - addtimer(CALLBACK(src, .proc/equip_to_appropriate_slot, C), 5) + addtimer(CALLBACK(src, PROC_REF(equip_to_appropriate_slot), C), 5) /mob/living/carbon/monkey/resist_restraints() var/obj/item/I = null @@ -140,7 +140,7 @@ pickupTarget = null pickupTimer = 0 else - INVOKE_ASYNC(src, .proc/walk2derpless, pickupTarget.loc) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), pickupTarget.loc) if(Adjacent(pickupTarget) || Adjacent(pickupTarget.loc)) // next to target drop_all_held_items() // who cares about these items, i want that one! if(isturf(pickupTarget.loc)) // on floor @@ -152,7 +152,7 @@ if(!pickpocketing) pickpocketing = TRUE M.visible_message("[src] starts trying to take [pickupTarget] from [M]!", "[src] tries to take [pickupTarget]!") - INVOKE_ASYNC(src, .proc/pickpocket, M) + INVOKE_ASYNC(src, PROC_REF(pickpocket), M) return TRUE switch(mode) @@ -188,7 +188,7 @@ return TRUE if(target != null) - INVOKE_ASYNC(src, .proc/walk2derpless, target) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), target) // pickup any nearby weapon if(!pickupTarget && prob(MONKEY_WEAPON_PROB)) @@ -273,7 +273,7 @@ if(target.pulledby != src && !istype(target.pulledby, /mob/living/carbon/monkey/)) - INVOKE_ASYNC(src, .proc/walk2derpless, target.loc) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), target.loc) if(Adjacent(target) && isturf(target.loc)) a_intent = INTENT_GRAB @@ -286,11 +286,11 @@ frustration = 0 else if(!disposing_body) - INVOKE_ASYNC(src, .proc/walk2derpless, bodyDisposal.loc) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), bodyDisposal.loc) if(Adjacent(bodyDisposal)) disposing_body = TRUE - addtimer(CALLBACK(src, .proc/stuff_mob_in), 5) + addtimer(CALLBACK(src, PROC_REF(stuff_mob_in)), 5) else var/turf/olddist = get_dist(src, bodyDisposal) diff --git a/code/modules/mob/living/carbon/rogfatstam.dm b/code/modules/mob/living/carbon/rogfatstam.dm index 24c400ac45..563f89f624 100644 --- a/code/modules/mob/living/carbon/rogfatstam.dm +++ b/code/modules/mob/living/carbon/rogfatstam.dm @@ -71,8 +71,8 @@ changeNext_move(CLICK_CD_EXHAUSTED) flash_fullscreen("blackflash") if(rogstam <= 0) - addtimer(CALLBACK(src, .proc/Knockdown, 30), 10) - addtimer(CALLBACK(src, .proc/Immobilize, 30), 10) + addtimer(CALLBACK(src, PROC_REF(Knockdown), 30), 10) + addtimer(CALLBACK(src, PROC_REF(Immobilize), 30), 10) if(iscarbon(src)) var/mob/living/carbon/C = src if(C.stress >= 30) @@ -100,7 +100,7 @@ var/stuffy = list("ZIZO GRABS MY WEARY HEART!","ARGH! MY HEART BEATS NO MORE!","NO... MY HEART HAS BEAT IT'S LAST!","MY HEART HAS GIVEN UP!","MY HEART BETRAYS ME!","THE METRONOME OF MY LIFE STILLS!") to_chat(src, "[pick(stuffy)]") emote("breathgasp", forced = TRUE) - addtimer(CALLBACK(src, .proc/adjustOxyLoss, 110), 30) + addtimer(CALLBACK(src, PROC_REF(adjustOxyLoss), 110), 30) /mob/living/proc/freak_out() return @@ -123,7 +123,7 @@ else emote("fatigue", forced = TRUE) if(stress > 15) - addtimer(CALLBACK(src, /mob/.proc/do_freakout_scream), rand(30,50)) + addtimer(CALLBACK(src, TYPE_PROC_REF(/mob, do_freakout_scream)), rand(30,50)) if(hud_used) // var/list/screens = list(hud_used.plane_masters["[OPENSPACE_BACKDROP_PLANE]"],hud_used.plane_masters["[BLACKNESS_PLANE]"],hud_used.plane_masters["[GAME_PLANE_UPPER]"],hud_used.plane_masters["[GAME_PLANE_FOV_HIDDEN]"], hud_used.plane_masters["[FLOOR_PLANE]"], hud_used.plane_masters["[GAME_PLANE]"], hud_used.plane_masters["[LIGHTING_PLANE]"]) var/matrix/skew = matrix() diff --git a/code/modules/mob/living/carbon/spirit/combat.dm b/code/modules/mob/living/carbon/spirit/combat.dm index 33a7024aed..591631ef93 100644 --- a/code/modules/mob/living/carbon/spirit/combat.dm +++ b/code/modules/mob/living/carbon/spirit/combat.dm @@ -81,7 +81,7 @@ else if(istype(I, /obj/item/clothing)) var/obj/item/clothing/C = I monkeyDrop(C) - addtimer(CALLBACK(src, .proc/pickup_and_wear, C), 5) + addtimer(CALLBACK(src, PROC_REF(pickup_and_wear), C), 5) return TRUE // EVERYTHING ELSE @@ -96,7 +96,7 @@ /mob/living/carbon/spirit/proc/pickup_and_wear(obj/item/clothing/C) if(!equip_to_appropriate_slot(C)) monkeyDrop(get_item_by_slot(C)) // remove the existing item if worn - addtimer(CALLBACK(src, .proc/equip_to_appropriate_slot, C), 5) + addtimer(CALLBACK(src, PROC_REF(equip_to_appropriate_slot), C), 5) /mob/living/carbon/spirit/resist_restraints() var/obj/item/I = null diff --git a/code/modules/mob/living/carbon/spirit/spirit.dm b/code/modules/mob/living/carbon/spirit/spirit.dm index 72f2e08890..7e434b935f 100644 --- a/code/modules/mob/living/carbon/spirit/spirit.dm +++ b/code/modules/mob/living/carbon/spirit/spirit.dm @@ -11,6 +11,7 @@ bodyparts = list(/obj/item/bodypart/chest/spirit, /obj/item/bodypart/head/spirit, /obj/item/bodypart/l_arm/spirit, /obj/item/bodypart/r_arm/spirit, /obj/item/bodypart/r_leg/spirit, /obj/item/bodypart/l_leg/spirit) hud_type = /datum/hud/spirit + density = FALSE // ghosts can pass through other mobs var/paid = FALSE var/beingmoved = FALSE var/livingname = null @@ -54,6 +55,20 @@ var/L = new /obj/item/flashlight/lantern/shrunken(src.loc) put_in_hands(L) AddComponent(/datum/component/footstep, FOOTSTEP_MOB_BAREFOOT, 1, 2) + addtimer(CALLBACK(src, PROC_REF(give_patron_toll)), 15 MINUTES) + +/mob/living/carbon/spirit/proc/give_patron_toll() + if(QDELETED(src) || paid) + return + for(var/item in held_items) + if(istype(item, /obj/item/underworld/coin)) + return + put_in_hands(new /obj/item/underworld/coin/notracking(get_turf(src))) + if(PATRON) + to_chat(src, "Your suffering has not gone unnoticed, [PATRON] has rewarded you with your toll.") + else + to_chat(src, "Your suffering has not gone unnoticed, your patron has rewarded you with your toll.") + playsound(src, 'sound/combat/caught.ogg', 80, TRUE, -1) /mob/living/carbon/spirit/create_internal_organs() internal_organs += new /obj/item/organ/lungs @@ -127,6 +142,6 @@ beingmoved = TRUE to_chat(src, "Your soul is dragged to an infathomably cruel place where it endures severe torment. You've all but given up hope when you feel a presence drag you back to that Forest.") playsound(src, 'sound/combat/caught.ogg', 80, TRUE, -1) - for(var/obj/effect/landmark/underworld/A in world) + for(var/obj/effect/landmark/underworld/A in GLOB.landmarks_list) forceMove(A.loc) beingmoved = FALSE diff --git a/code/modules/mob/living/carbon/spirit/spirit_defense.dm b/code/modules/mob/living/carbon/spirit/spirit_defense.dm index 34cbab0b43..f02e8233a6 100644 --- a/code/modules/mob/living/carbon/spirit/spirit_defense.dm +++ b/code/modules/mob/living/carbon/spirit/spirit_defense.dm @@ -37,6 +37,13 @@ if(INTENT_GRAB) grabbedby(M) if(INTENT_HARM) + if(HAS_TRAIT(M, TRAIT_PACIFISM)) + playsound(loc, 'sound/combat/shove.ogg', 100, TRUE, -1) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + visible_message("[M]'s punch goes through [name]!", \ + "[M]'s punch goes through you!", "I hear the sound of scuffling of the damned!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "My punch goes through [name]!") + return M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) if (prob(75)) visible_message("[M] punches [name]!", \ @@ -64,6 +71,12 @@ "I avoid [M]'s punch!", "I hear a swoosh!", COMBAT_MESSAGE_RANGE, M) to_chat(M, "My punch misses [name]!") if(INTENT_DISARM) + if(HAS_TRAIT(M, TRAIT_PACIFISM)) + playsound(loc, 'sound/combat/shove.ogg', 100, TRUE, -1) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + visible_message("[M]'s shove goes through [name]!", \ + "[M]'s shove goes through you!", "I hear the sound scuffling of the damned!", COMBAT_MESSAGE_RANGE, M) + to_chat(M, "My shove goes through [name]!") if(!IsUnconscious()) M.do_attack_animation(src, ATTACK_EFFECT_DISARM) if (prob(25)) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index b811eb39de..f286db496a 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -89,7 +89,7 @@ med_hud_set_health() med_hud_set_status() if(!gibbed && !QDELETED(src)) - addtimer(CALLBACK(src, .proc/med_hud_set_status), (DEFIB_TIME_LIMIT * 10) + 1) + addtimer(CALLBACK(src, PROC_REF(med_hud_set_status)), (DEFIB_TIME_LIMIT * 10) + 1) stop_pulling() . = ..() @@ -100,11 +100,11 @@ H.layer = SPLASHSCREEN_LAYER+0.1 client.screen += H // flick("gameover",H) -// addtimer(CALLBACK(H, /obj/screen/gameover/proc/Fade), 29) +// addtimer(CALLBACK(H, TYPE_PROC_REF(/obj/screen/gameover, Fade)), 29) H.Fade() mob_timers["lastdied"] = world.time - addtimer(CALLBACK(H, /obj/screen/gameover/proc/Fade, TRUE), 100) -// addtimer(CALLBACK(client, .proc/ghostize, 1, src), 150) + addtimer(CALLBACK(H, TYPE_PROC_REF(/obj/screen/gameover, Fade), TRUE), 100) +// addtimer(CALLBACK(client, PROC_REF(ghostize), 1, src), 150) add_client_colour(/datum/client_colour/monochrome) client.verbs += /client/proc/descend diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 0eefa47294..0396942294 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -319,7 +319,7 @@ H.CloseWings() else H.OpenWings() - addtimer(CALLBACK(H, open ? /mob/living/carbon/human.proc/OpenWings : /mob/living/carbon/human.proc/CloseWings), wing_time) + addtimer(CALLBACK(H, open ? TYPE_PROC_REF(/mob/living/carbon/human, OpenWings) : TYPE_PROC_REF(/mob/living/carbon/human, CloseWings)), wing_time) /datum/emote/living/flap/aflap key = "aflap" diff --git a/code/modules/mob/living/grabbing.dm b/code/modules/mob/living/grabbing.dm index 5f89557063..cfe97b87e3 100644 --- a/code/modules/mob/living/grabbing.dm +++ b/code/modules/mob/living/grabbing.dm @@ -409,12 +409,11 @@ var/mob/living/carbon/human/H = C if(prob(25) && H) H.werewolf_infect() - //addtimer(CALLBACK(C, .mob/living/carbon/human/proc/werewolf_infect), 3 MINUTES) + //addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon/human, werewolf_infect)), 3 MINUTES) if(user.mind.has_antag_datum(/datum/antagonist/zombie)) var/mob/living/carbon/human/H = C - if(prob(25)) //Delay is handled in zombie infect anyways - H.zombie_infect() - //addtimer(CALLBACK(C, .mob/living/carbon/human/proc/zombie_infect), 3 MINUTES) + H.zombie_infect_attempt() + //addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon/human, zombie_infect)), 3 MINUTES) if(C.stat) if(istype(limb_grabbed, /obj/item/bodypart/head)) var/obj/item/bodypart/head/HE = limb_grabbed @@ -473,7 +472,7 @@ if(VDrinker) if(zomwerewolf) to_chat(user, "I'm going to puke...") - addtimer(CALLBACK(user, .mob/living/carbon/proc/vomit, 0, TRUE), rand(8 SECONDS, 15 SECONDS)) + addtimer(CALLBACK(user, TYPE_PROC_REF(/mob/living/carbon, vomit), 0, TRUE), rand(8 SECONDS, 15 SECONDS)) else if(VVictim) to_chat(user, "It's vitae, just like mine.") @@ -485,7 +484,7 @@ VDrinker.handle_vitae(500) else to_chat(user, "I'm going to puke...") - addtimer(CALLBACK(user, .mob/living/carbon/proc/vomit, 0, TRUE), rand(8 SECONDS, 15 SECONDS)) + addtimer(CALLBACK(user, TYPE_PROC_REF(/mob/living/carbon, vomit), 0, TRUE), rand(8 SECONDS, 15 SECONDS)) else if(user.mind) if(user.mind.has_antag_datum(/datum/antagonist/vampirelord)) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index ee5badde80..2753a66b78 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -178,7 +178,7 @@ /mob/living/proc/gravity_animate() if(!get_filter("gravity")) add_filter("gravity",1,list("type"="motion_blur", "x"=0, "y"=0)) - INVOKE_ASYNC(src, .proc/gravity_pulse_animation) + INVOKE_ASYNC(src, PROC_REF(gravity_pulse_animation)) /mob/living/proc/gravity_pulse_animation() animate(get_filter("gravity"), y = 1, time = 10) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8ffa66f7b9..795bf9c11d 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1898,7 +1898,7 @@ return reset_perspective(ceiling) update_cone_show() -// RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, .proc/stop_looking) //We stop looking up if we move. +// RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(stop_looking)) //We stop looking up if we move. /mob/living/proc/look_further(turf/T) @@ -1929,7 +1929,7 @@ if(m_intent != MOVE_INTENT_SNEAK) visible_message("[src] looks into the distance.") animate(client, pixel_x = world.icon_size*_x, pixel_y = world.icon_size*_y, ttime) -// RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, .proc/stop_looking) +// RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(stop_looking)) update_cone_show() /mob/proc/look_down(turf/T) @@ -1966,7 +1966,7 @@ changeNext_move(CLICK_CD_MELEE) reset_perspective(OS) update_cone_show() -// RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, .proc/stop_looking) +// RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(stop_looking)) /mob/living/proc/stop_looking() // animate(client, pixel_x = 0, pixel_y = 0, 2, easing = SINE_EASING) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index f7ab2eb2ba..b1dd8354f1 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -543,8 +543,8 @@ if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE)) GLOB.cult_narsie.resolved = TRUE sound_to_playing_players('sound/blank.ogg') - addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper, 1), 120) - addtimer(CALLBACK(GLOBAL_PROC, .proc/ending_helper), 270) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 1), 120) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 270) if(client) makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE) else @@ -565,7 +565,7 @@ return FALSE if(get_eye_protection() < intensity && (override_blindness_check || !(HAS_TRAIT(src, TRAIT_BLIND)))) overlay_fullscreen("flash", type) - addtimer(CALLBACK(src, .proc/clear_fullscreen, "flash", 25), 25) + addtimer(CALLBACK(src, PROC_REF(clear_fullscreen), "flash", 25), 25) return TRUE return FALSE diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 30a62c1616..c9225d561c 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -330,7 +330,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( speech_bubble_recipients.Add(M.client) var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_recipients, 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), I, speech_bubble_recipients, 30) /mob/proc/binarycheck() return FALSE diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index b42f6cfa30..03b7015a6a 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -28,7 +28,7 @@ ShutOffDoomsdayDevice() if(explosive) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, loc, 3, 6, 12, 15), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), loc, 3, 6, 12, 15), 1 SECONDS) if(src.key) for(var/each in GLOB.ai_status_displays) //change status diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 4591720b79..1240280091 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -50,7 +50,7 @@ /datum/camerachunk/proc/hasChanged(update_now = 0) if(seenby.len || update_now) - addtimer(CALLBACK(src, .proc/update), UPDATE_BUFFER, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(update)), UPDATE_BUFFER, TIMER_UNIQUE) else changed = 1 diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 44e1b40dd5..894036b576 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -172,7 +172,7 @@ blind_eyes(1) update_sight() to_chat(src, "You've lost power!") - addtimer(CALLBACK(src, .proc/start_RestorePowerRoutine), 20) + addtimer(CALLBACK(src, PROC_REF(start_RestorePowerRoutine)), 20) #undef POWER_RESTORATION_OFF #undef POWER_RESTORATION_START diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 3522b1b8b7..d7a798b3b1 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -9,7 +9,7 @@ throw_alert("newlaw", /obj/screen/alert/newlaw) if(announce && last_lawchange_announce != world.time) to_chat(src, "My laws have been changed.") - addtimer(CALLBACK(src, .proc/show_laws), 0) + addtimer(CALLBACK(src, PROC_REF(show_laws)), 0) last_lawchange_announce = world.time /mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 86d39f1387..782d245f3b 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -119,12 +119,12 @@ aicamera = new /obj/item/camera/siliconcam/ai_camera(src) aicamera.flash_enabled = TRUE - addtimer(CALLBACK(src, .proc/pdaconfig), 5) + addtimer(CALLBACK(src, PROC_REF(pdaconfig)), 5) . = ..() emittersemicd = TRUE - addtimer(CALLBACK(src, .proc/emittercool), 600) + addtimer(CALLBACK(src, PROC_REF(emittercool)), 600) /mob/living/silicon/pai/proc/pdaconfig() //PDA diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index 321438d086..7eac606a04 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -17,7 +17,7 @@ return FALSE emittersemicd = TRUE - addtimer(CALLBACK(src, .proc/emittercool), emittercd) + addtimer(CALLBACK(src, PROC_REF(emittercool)), emittercd) mobility_flags = MOBILITY_FLAGS_DEFAULT density = TRUE if(istype(card.loc, /obj/item/pda)) @@ -45,9 +45,9 @@ /mob/living/silicon/pai/proc/fold_in(force = FALSE) emittersemicd = TRUE if(!force) - addtimer(CALLBACK(src, .proc/emittercool), emittercd) + addtimer(CALLBACK(src, PROC_REF(emittercool)), emittercd) else - addtimer(CALLBACK(src, .proc/emittercool), emitteroverloadcd) + addtimer(CALLBACK(src, PROC_REF(emittercool)), emitteroverloadcd) icon_state = "[chassis]" if(!holoform) . = fold_out(force) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 1ca558c3c1..f4b7695c09 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -98,7 +98,7 @@ wires = new /datum/wires/robot(src) AddComponent(/datum/component/empprotection, EMP_PROTECT_WIRES) - RegisterSignal(src, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/charge) + RegisterSignal(src, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(charge)) robot_modules_background = new() robot_modules_background.icon_state = "block" @@ -821,7 +821,7 @@ /mob/living/silicon/robot/modules/syndicate/Initialize() . = ..() laws = new /datum/ai_laws/syndicate_override() - addtimer(CALLBACK(src, .proc/show_playstyle), 5) + addtimer(CALLBACK(src, PROC_REF(show_playstyle)), 5) /mob/living/silicon/robot/modules/syndicate/proc/show_playstyle() if(playstyle_string) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 102089632d..42127279a0 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -78,7 +78,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real return spark_system.start() step_away(src, user, 15) - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_away, src, get_turf(user), 15), 3) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step_away), src, get_turf(user), 15), 3) /mob/living/silicon/robot/fire_act() if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a5967d182d..497dd44488 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -184,7 +184,7 @@ R.module = RM R.update_module_innate() RM.rebuild_modules() - INVOKE_ASYNC(RM, .proc/do_transform_animation) + INVOKE_ASYNC(RM, PROC_REF(do_transform_animation)) qdel(src) return RM diff --git a/code/modules/mob/living/silicon/silicon_movement.dm b/code/modules/mob/living/silicon/silicon_movement.dm index 590326eda1..cc0a01aa37 100644 --- a/code/modules/mob/living/silicon/silicon_movement.dm +++ b/code/modules/mob/living/silicon/silicon_movement.dm @@ -18,5 +18,5 @@ oldLoc = get_turf(oldLoc) if(!QDELETED(builtInCamera) && !updating && oldLoc != get_turf(src)) updating = TRUE - addtimer(CALLBACK(src, .proc/do_camera_update, oldLoc), SILICON_CAMERA_BUFFER) + addtimer(CALLBACK(src, PROC_REF(do_camera_update), oldLoc), SILICON_CAMERA_BUFFER) #undef SILICON_CAMERA_BUFFER diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm index d6de709404..6c5a03c03d 100644 --- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm +++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm @@ -51,7 +51,7 @@ weapon.attack(C, src) playsound(src, 'sound/blank.ogg', 50, TRUE, -1) if(C.stat == DEAD) - addtimer(CALLBACK(src, /atom/.proc/update_icon), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 2) back_to_idle() @@ -107,7 +107,7 @@ if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) if(!threatlevel) continue @@ -122,7 +122,7 @@ icon_state = "grievous-c" visible_message("[src] points at [C.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index f8c04f32b3..dc71e1f04a 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -490,7 +490,7 @@ Pass a positive integer as an argument to override a bot's default speed. if(step_count >= 1 && tries < BOT_STEP_MAX_RETRIES) for(var/step_number = 0, step_number < step_count,step_number++) - addtimer(CALLBACK(src, .proc/bot_step, dest), BOT_STEP_DELAY*step_number) + addtimer(CALLBACK(src, PROC_REF(bot_step), dest), BOT_STEP_DELAY*step_number) else return FALSE return TRUE @@ -535,7 +535,7 @@ Pass a positive integer as an argument to override a bot's default speed. turn_on() //Saves the AI the hassle of having to activate a bot manually. access_card = all_access //Give the bot all-access while under the AI's command. if(client) - reset_access_timer_id = addtimer(CALLBACK (src, .proc/bot_reset), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time + reset_access_timer_id = addtimer(CALLBACK(src, PROC_REF(bot_reset)), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time to_chat(src, "Priority waypoint set by [icon2html(calling_ai, src)] [caller]. Proceed to [end_area].
[path.len-1] meters to destination. You have been granted additional door access for 60 seconds.
") if(message) to_chat(calling_ai, "[icon2html(src, calling_ai)] [name] called to [end_area]. [path.len-1] meters to destination.") @@ -601,7 +601,7 @@ Pass a positive integer as an argument to override a bot's default speed. return if(patrol_target) // has patrol target - INVOKE_ASYNC(src, .proc/target_patrol) + INVOKE_ASYNC(src, PROC_REF(target_patrol)) else // no patrol target, so need a new one speak("Engaging patrol mode.") find_patrol_target() diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index cd4ac25044..92cc3d1e6c 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -278,7 +278,7 @@ var/mob/living/simple_animal/bot/honkbot/S = new(drop_location()) S.name = created_name S.spam_flag = TRUE // only long enough to hear the first ping. - addtimer(CALLBACK (S, .mob/living/simple_animal/bot/honkbot/proc/react_ping), 5) + addtimer(CALLBACK(S, TYPE_PROC_REF(/mob/living/simple_animal/bot/honkbot, react_ping)), 5) S.bikehorn = I.type qdel(I) qdel(src) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index c4bd6ab9b1..7f6c092fab 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -44,7 +44,7 @@ var/threatlevel = 0 if(C.incapacitated()) continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) //speak(C.real_name + text(": threat: []", threatlevel)) if(threatlevel < 4 ) continue diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 20750584cd..36b6c96192 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -239,7 +239,7 @@ mode = BOT_REPAIRING F.ReplaceWithLattice() audible_message("[src] makes an excited booping sound.") - addtimer(CALLBACK(src, .proc/go_idle), 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(go_idle)), 0.5 SECONDS) path = list() return if(path.len == 0) diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 3dd6ffcd5b..1f4e1b172b 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -50,14 +50,14 @@ /mob/living/simple_animal/bot/honkbot/proc/sensor_blink() icon_state = "honkbot-c" - addtimer(CALLBACK(src, /atom/.proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5, TIMER_OVERRIDE|TIMER_UNIQUE) //honkbots react with sounds. /mob/living/simple_animal/bot/honkbot/proc/react_ping() playsound(src, 'sound/blank.ogg', 50, TRUE, -1) //the first sound upon creation! spam_flag = TRUE sensor_blink() - addtimer(CALLBACK(src, .proc/spam_flag_false), 18) // calibrates before starting the honk + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), 18) // calibrates before starting the honk /mob/living/simple_animal/bot/honkbot/proc/react_buzz() playsound(src, 'sound/blank.ogg', 50, TRUE, -1) @@ -115,14 +115,14 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, /mob/living/simple_animal/bot/honkbot/attack_hand(mob/living/carbon/human/H) if(H.used_intent.type == INTENT_HARM) retaliate(H) - addtimer(CALLBACK(src, .proc/react_buzz), 5) + addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5) return ..() /mob/living/simple_animal/bot/honkbot/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour != TOOL_SCREWDRIVER && (W.force) && (!target) && (W.damtype != STAMINA) ) retaliate(user) - addtimer(CALLBACK(src, .proc/react_buzz), 5) + addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5) ..() /mob/living/simple_animal/bot/honkbot/emag_act(mob/user) @@ -170,21 +170,21 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, playsound(src, honksound, 50, TRUE, -1) spam_flag = TRUE //prevent spam sensor_blink() - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) else if (emagged == 2) //emagged honkbots will spam short and memorable sounds. if (!spam_flag) playsound(src, "honkbot_e", 50, FALSE) spam_flag = TRUE // prevent spam icon_state = "honkbot-e" - addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE) - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 30, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) /mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack if(!spam_flag) playsound(loc, honksound, 50, TRUE, -1) spam_flag = TRUE // prevent spam sensor_blink() - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) /mob/living/simple_animal/bot/honkbot/proc/stun_attack(mob/living/carbon/C) // airhorn stun if(!spam_flag) @@ -206,7 +206,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, target = oldtarget_name else // you really don't want to hit an emagged honkbot threatlevel = 6 // will never let you go - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime) log_combat(src,C,"honked") @@ -215,7 +215,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, else C.stuttering = 20 C.Paralyze(80) - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime) /mob/living/simple_animal/bot/honkbot/handle_automated_action() @@ -279,13 +279,13 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, target = null last_found = world.time frustration = 0 - INVOKE_ASYNC(src, .proc/handle_automated_action) //responds quickly + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) //responds quickly /mob/living/simple_animal/bot/honkbot/proc/back_to_hunt() anchored = FALSE frustration = 0 mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) // responds quickly + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) // responds quickly /mob/living/simple_animal/bot/honkbot/proc/look_for_perp() anchored = FALSE @@ -315,7 +315,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, speak("Honk!") visible_message("[src] starts chasing [C.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index b0a85133d6..c2f802a9f1 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -455,8 +455,8 @@ process_bot() num_steps-- if(mode != BOT_IDLE) - var/process_timer = addtimer(CALLBACK(src, .proc/process_bot), 2, TIMER_LOOP|TIMER_STOPPABLE) - addtimer(CALLBACK(GLOBAL_PROC, /proc/deltimer, process_timer), (num_steps*2) + 1) + var/process_timer = addtimer(CALLBACK(src, PROC_REF(process_bot)), 2, TIMER_LOOP|TIMER_STOPPABLE) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(deltimer), process_timer), (num_steps*2) + 1) /mob/living/simple_animal/bot/mulebot/proc/process_bot() if(!on || client) @@ -520,7 +520,7 @@ buzz(SIGH) mode = BOT_WAIT_FOR_NAV blockcount = 0 - addtimer(CALLBACK(src, .proc/process_blocked, next), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(process_blocked), next), 2 SECONDS) return return else @@ -533,7 +533,7 @@ if(BOT_NAV) // calculate new path mode = BOT_WAIT_FOR_NAV - INVOKE_ASYNC(src, .proc/process_nav) + INVOKE_ASYNC(src, PROC_REF(process_nav)) /mob/living/simple_animal/bot/mulebot/proc/process_blocked(turf/next) calc_path(avoid=next) @@ -582,7 +582,7 @@ /mob/living/simple_animal/bot/mulebot/proc/start_home() if(!on) return - INVOKE_ASYNC(src, .proc/do_start_home) + INVOKE_ASYNC(src, PROC_REF(do_start_home)) update_icon() /mob/living/simple_animal/bot/mulebot/proc/do_start_home() @@ -799,7 +799,7 @@ update_icon() if(istype(AM, /mob/dead/observer)) ghost_rider = TRUE - RegisterSignal(AM, COMSIG_MOVABLE_MOVED, .proc/ghostmoved) + RegisterSignal(AM, COMSIG_MOVABLE_MOVED, PROC_REF(ghostmoved)) /mob/living/simple_animal/bot/mulebot/paranormal/update_icon() if(load && isobserver(load) && isnull(ghost_overlay))//there are issues with adding a ghost as an overlay, and this prevents metagaming to see who is dead diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 4d95ca8fdb..2f32bac03d 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -172,7 +172,7 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/proc/retaliate(mob/living/carbon/human/H) var/judgement_criteria = judgement_criteria() - threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) threatlevel += 6 if(threatlevel >= 4) target = H @@ -257,7 +257,7 @@ Auto Patrol: []"}, playsound(src, 'sound/blank.ogg', 30, TRUE, -2) C.visible_message("[src] is trying to put zipties on [C]!",\ "[src] is trying to put zipties on you!") - addtimer(CALLBACK(src, .proc/attempt_handcuff, C), 60) + addtimer(CALLBACK(src, PROC_REF(attempt_handcuff), C), 60) /mob/living/simple_animal/bot/secbot/proc/attempt_handcuff(mob/living/carbon/C) if( !on || !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. @@ -272,7 +272,7 @@ Auto Patrol: []"}, var/judgement_criteria = judgement_criteria() playsound(src, 'sound/blank.ogg', 50, TRUE, -1) icon_state = "[initial(icon_state)]-c" - addtimer(CALLBACK(src, /atom/.proc/update_icon), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 2) var/threat = 5 if(harm) @@ -281,11 +281,11 @@ Auto Patrol: []"}, C.stuttering = 5 C.Paralyze(100) var/mob/living/carbon/human/H = C - threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) else C.Paralyze(100) C.stuttering = 5 - threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) log_combat(src,C,"stunned") if(declare_arrests) @@ -394,13 +394,13 @@ Auto Patrol: []"}, target = null last_found = world.time frustration = 0 - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) /mob/living/simple_animal/bot/secbot/proc/back_to_hunt() anchored = FALSE frustration = 0 mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) // look for a criminal in view of the bot /mob/living/simple_animal/bot/secbot/proc/look_for_perp() @@ -413,7 +413,7 @@ Auto Patrol: []"}, if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) if(!threatlevel) continue @@ -428,7 +428,7 @@ Auto Patrol: []"}, playsound(src, pick('sound/blank.ogg'), 50, FALSE) visible_message("[src] points at [C.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index d71a9c591f..3c735019be 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -70,7 +70,7 @@ if(prob(1)) emote("me", 1, pick("dances around.","chases its tail!")) - INVOKE_ASYNC(GLOBAL_PROC, .proc/dance_rotate, src) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(dance_rotate), src) //Corgis and pugs are now under one dog subtype diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index e0d4ad98fd..8a9d0b1b11 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -33,7 +33,7 @@ /mob/living/simple_animal/hostile/guardian/charger/Shoot(atom/targeted_atom) charging = 1 - throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/charging_end)) + throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(charging_end))) /mob/living/simple_animal/hostile/guardian/charger/proc/charging_end() charging = 0 diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index 79d70a9f41..f85834b383 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -47,9 +47,9 @@ if(bomb_cooldown <= world.time && !stat) to_chat(src, "Success! Bomb armed!") bomb_cooldown = world.time + 200 - RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/display_examine) - RegisterSignal(A, boom_signals, .proc/kaboom) - addtimer(CALLBACK(src, .proc/disable, A), 600, TIMER_UNIQUE|TIMER_OVERRIDE) + RegisterSignal(A, COMSIG_PARENT_EXAMINE, PROC_REF(display_examine)) + RegisterSignal(A, boom_signals, PROC_REF(kaboom)) + addtimer(CALLBACK(src, PROC_REF(disable), A), 600, TIMER_UNIQUE|TIMER_OVERRIDE) else to_chat(src, "My powers are on cooldown! You must wait 20 seconds between bombs.") diff --git a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm index 9a1c356bf8..eb978f6a1c 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm @@ -49,7 +49,7 @@ /mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/add_gravity(atom/A, new_gravity = 2) var/datum/component/C = A.AddComponent(/datum/component/forced_gravity,new_gravity) - RegisterSignal(A, COMSIG_MOVABLE_MOVED, .proc/__distance_check) + RegisterSignal(A, COMSIG_MOVABLE_MOVED, PROC_REF(__distance_check)) gravito_targets.Add(C) playsound(src, 'sound/blank.ogg', 100, TRUE) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 231b49aa24..9e957a1197 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -315,4 +315,4 @@ /mob/living/simple_animal/hostile/poison/bees/short/Initialize(mapload, timetolive=50 SECONDS) . = ..() - addtimer(CALLBACK(src, .proc/death), timetolive) + addtimer(CALLBACK(src, PROC_REF(death)), timetolive) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index a2900df4e3..03f9674845 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -246,7 +246,7 @@ if(!busy && prob(1)) stop_automated_movement = TRUE Goto(pick(urange(20, src, 1)), move_to_delay) - addtimer(CALLBACK(src, .proc/do_action), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_action)), 5 SECONDS) return 1 /mob/living/simple_animal/hostile/poison/giant_spider/proc/do_action() @@ -271,7 +271,7 @@ busy = MOVING_TO_TARGET Goto(C, move_to_delay) //give up if we can't reach them after 10 seconds - addtimer(CALLBACK(src, .proc/GiveUp, C), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(GiveUp), C), 10 SECONDS) return //second, spin a sticky spiderweb on this tile @@ -295,7 +295,7 @@ stop_automated_movement = 1 Goto(O, move_to_delay) //give up if we can't reach them after 10 seconds - addtimer(CALLBACK(src, .proc/GiveUp, O), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(GiveUp), O), 10 SECONDS) else if(busy == MOVING_TO_TARGET && cocoon_target) if(get_dist(src, cocoon_target) <= 1) @@ -430,7 +430,7 @@ if(target_atom.anchored) return user.cocoon_target = target_atom - INVOKE_ASYNC(user, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/.proc/cocoon) + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living/simple_animal/hostile/poison/giant_spider/nurse, cocoon)) remove_ranged_ability() return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index 6fdbf6fc2d..dff1107a56 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -66,7 +66,7 @@ . = ..() goosevomit = new goosevomit.Grant(src) - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/goosement) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(goosement)) // 5% chance every round to have anarchy mode deadchat control on birdboat. if(prob(5)) desc = "" @@ -136,13 +136,13 @@ /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_prestart(duration) flick("vomit_start",src) - addtimer(CALLBACK(src, .proc/vomit_start, duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi + addtimer(CALLBACK(src, PROC_REF(vomit_start), duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_start(duration) vomiting = TRUE icon_state = "vomit" vomit() - addtimer(CALLBACK(src, .proc/vomit_preend), duration) + addtimer(CALLBACK(src, PROC_REF(vomit_preend)), duration) /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_preend() for (var/obj/item/consumed in contents) //Get rid of any food left in the poor thing @@ -178,11 +178,11 @@ /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/deadchat_plays_goose() stop_automated_movement = TRUE AddComponent(/datum/component/deadchat_control, ANARCHY_MODE, list( - "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), - "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), - "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), - "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST), - "vomit" = CALLBACK(src, .proc/vomit_prestart, 25)), 12 SECONDS, 4 SECONDS) + "up" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, NORTH), + "down" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, SOUTH), + "left" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, WEST), + "right" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, EAST), + "vomit" = CALLBACK(src, PROC_REF(vomit_prestart), 25)), 12 SECONDS, 4 SECONDS) /datum/action/cooldown/vomit name = "Vomit" diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index ef48938175..0f4c1b3835 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -48,7 +48,7 @@ return Infect(target) to_chat(src, "With our egg laid, our death approaches rapidly...") - addtimer(CALLBACK(src, .proc/death), 100) + addtimer(CALLBACK(src, PROC_REF(death)), 100) /obj/item/organ/body_egg/changeling_egg name = "changeling egg" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 5f0336ace4..e9809afbde 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -125,7 +125,7 @@ /mob/living/simple_animal/hostile/handle_automated_movement() . = ..() if(dodging && target && in_melee && isturf(loc) && isturf(target.loc)) - var/datum/cb = CALLBACK(src,.proc/sidestep) + var/datum/cb = CALLBACK(src,PROC_REF(sidestep)) if(sidestep_per_cycle > 1) //For more than one just spread them equally - this could changed to some sensible distribution later var/sidestep_delay = SSnpcpool.wait / sidestep_per_cycle for(var/i in 1 to sidestep_per_cycle) @@ -287,7 +287,7 @@ //What we do after closing in /mob/living/simple_animal/hostile/proc/MeleeAction(patience = TRUE) if(rapid_melee > 1) - var/datum/callback/cb = CALLBACK(src, .proc/CheckAndAttack) + var/datum/callback/cb = CALLBACK(src, PROC_REF(CheckAndAttack)) var/delay = SSnpcpool.wait / rapid_melee for(var/i in 1 to rapid_melee) addtimer(cb, (i - 1)*delay) @@ -433,7 +433,7 @@ if(rapid > 1) - var/datum/callback/cb = CALLBACK(src, .proc/Shoot, A) + var/datum/callback/cb = CALLBACK(src, PROC_REF(Shoot), A) for(var/i in 1 to rapid) addtimer(cb, (i - 1)*rapid_fire_delay) else @@ -575,7 +575,7 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega /mob/living/simple_animal/hostile/proc/GainPatience() if(lose_patience_timeout) LosePatience() - lose_patience_timer_id = addtimer(CALLBACK(src, .proc/LoseTarget), lose_patience_timeout, TIMER_STOPPABLE) + lose_patience_timer_id = addtimer(CALLBACK(src, PROC_REF(LoseTarget)), lose_patience_timeout, TIMER_STOPPABLE) /mob/living/simple_animal/hostile/proc/LosePatience() @@ -586,7 +586,7 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega /mob/living/simple_animal/hostile/proc/LoseSearchObjects() search_objects = 0 deltimer(search_objects_timer_id) - search_objects_timer_id = addtimer(CALLBACK(src, .proc/RegainSearchObjects), search_objects_regain_time, TIMER_STOPPABLE) + search_objects_timer_id = addtimer(CALLBACK(src, PROC_REF(RegainSearchObjects)), search_objects_regain_time, TIMER_STOPPABLE) /mob/living/simple_animal/hostile/proc/RegainSearchObjects(value) diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index 54c83d12ba..0c3514311d 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -204,7 +204,7 @@ if(AIStatus == AI_ON && ranged_cooldown <= world.time) projectile_ready = TRUE update_icons() - throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .proc/FinishHop)) + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, PROC_REF(FinishHop))) /mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() density = TRUE @@ -214,18 +214,18 @@ playsound(src.loc, 'sound/blank.ogg', 100, TRUE) if(target && AIStatus == AI_ON && projectile_ready && !ckey) face_atom(target) - addtimer(CALLBACK(src, .proc/OpenFire, target), 5) + addtimer(CALLBACK(src, PROC_REF(OpenFire), target), 5) /mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() var/turf/new_turf = get_turf(target) hopping = TRUE notransform = TRUE new /obj/effect/temp_visual/leaper_crush(new_turf) - addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) + addtimer(CALLBACK(src, PROC_REF(BellyFlopHop), new_turf), 30) /mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) density = FALSE - throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) + throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, PROC_REF(Crush))) /mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() hopping = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm index d429013592..962d304641 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -71,9 +71,9 @@ walk(src,0) update_icons() if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo) - addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(SlashCombo)), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3)) + addtimer(CALLBACK(src, PROC_REF(LeapAttack)), ATTACK_INTERMISSION_TIME + rand(0,3)) return attack_state = MOOK_ATTACK_RECOVERY ResetNeutral() @@ -83,9 +83,9 @@ attack_state = MOOK_ATTACK_ACTIVE update_icons() SlashAttack() - addtimer(CALLBACK(src, .proc/SlashAttack), 3) - addtimer(CALLBACK(src, .proc/SlashAttack), 6) - addtimer(CALLBACK(src, .proc/AttackRecovery), 9) + addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 3) + addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 6) + addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 9) /mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack() if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE) @@ -113,7 +113,7 @@ playsound(src, 'sound/blank.ogg', 25, TRUE) playsound(src, 'sound/blank.ogg', 100, TRUE) var/target_turf = get_turf(target) - throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery)) + throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, PROC_REF(AttackRecovery))) return attack_state = MOOK_ATTACK_RECOVERY ResetNeutral() @@ -132,11 +132,11 @@ if(isliving(target)) var/mob/living/L = target if(L.incapacitated() && L.stat != DEAD) - addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(WarmupAttack), TRUE), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(WarmupAttack)), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), ATTACK_INTERMISSION_TIME) /mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral() if(attack_state == MOOK_ATTACK_RECOVERY) diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm index 8263ae958f..4e7e61fadc 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -131,7 +131,7 @@ if(get_dist(src,target) >= 4 && prob(40)) SolarBeamStartup(target) return - addtimer(CALLBACK(src, .proc/Volley), 5) + addtimer(CALLBACK(src, PROC_REF(Volley)), 5) /mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark if(combatant_state == SEEDLING_STATE_WARMUP && target) @@ -142,7 +142,7 @@ if(get_dist(src,living_target) > 7) playsound(living_target,'sound/blank.ogg', 100, FALSE) solar_beam_identifier = world.time - addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35) + addtimer(CALLBACK(src, PROC_REF(Beamu), living_target, solar_beam_identifier), 35) /mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0) if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier) @@ -162,7 +162,7 @@ living_target.adjust_fire_stacks(0.2)//Just here for the showmanship living_target.IgniteMob() playsound(living_target,'sound/blank.ogg', 50, TRUE) - addtimer(CALLBACK(src, .proc/AttackRecovery), 5) + addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 5) return AttackRecovery() @@ -170,10 +170,10 @@ if(combatant_state == SEEDLING_STATE_WARMUP && target) combatant_state = SEEDLING_STATE_ACTIVE update_icons() - var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) + var/datum/callback/cb = CALLBACK(src, PROC_REF(InaccurateShot)) for(var/i in 1 to 13) addtimer(cb, i) - addtimer(CALLBACK(src, .proc/AttackRecovery), 14) + addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 14) /mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot() if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat) @@ -193,7 +193,7 @@ ranged_cooldown = world.time + ranged_cooldown_time if(target) face_atom(target) - addtimer(CALLBACK(src, .proc/ResetNeutral), 10) + addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), 10) /mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral() combatant_state = SEEDLING_STATE_NEUTRAL diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index df823f0380..07335141a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -232,13 +232,13 @@ if(mecha.defense_action && mecha.defense_action.owner && !mecha.defense_mode) mecha.leg_overload_mode = 0 mecha.defense_action.Activate(TRUE) - addtimer(CALLBACK(mecha.defense_action, /datum/action/innate/mecha/mech_defense_mode.proc/Activate, FALSE), 100) //10 seconds of defense, then toggle off + addtimer(CALLBACK(mecha.defense_action, TYPE_PROC_REF(/datum/action/innate/mecha/mech_defense_mode, Activate), FALSE), 100) //10 seconds of defense, then toggle off else if(prob(retreat_chance)) //Speed boost if possible if(mecha.overload_action && mecha.overload_action.owner && !mecha.leg_overload_mode) mecha.overload_action.Activate(TRUE) - addtimer(CALLBACK(mecha.overload_action, /datum/action/innate/mecha/mech_defense_mode.proc/Activate, FALSE), 100) //10 seconds of speeeeed, then toggle off + addtimer(CALLBACK(mecha.overload_action, TYPE_PROC_REF(/datum/action/innate/mecha/mech_defense_mode, Activate), FALSE), 100) //10 seconds of speeeeed, then toggle off retreat_distance = 50 addtimer(VARSET_CALLBACK(src, retreat_distance, 0), 10 SECONDS) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 84eff9feac..e0d41c8cc1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -180,7 +180,7 @@ Difficulty: Medium wander = TRUE /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash_attack() - INVOKE_ASYNC(src, .proc/dash, target) + INVOKE_ASYNC(src, PROC_REF(dash), target) shoot_ka() /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/shoot_ka() @@ -262,7 +262,7 @@ Difficulty: Medium /obj/effect/temp_visual/dir_setting/miner_death/Initialize(mapload, set_dir) . = ..() - INVOKE_ASYNC(src, .proc/fade_out) + INVOKE_ASYNC(src, PROC_REF(fade_out)) /obj/effect/temp_visual/dir_setting/miner_death/proc/fade_out() var/matrix/M = new @@ -283,6 +283,6 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget() . = ..() if(. && prob(12)) - INVOKE_ASYNC(src, .proc/dash) + INVOKE_ASYNC(src, PROC_REF(dash)) #undef MINER_DASH_RANGE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index e3a4373cdc..bb13d4309a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -152,7 +152,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/surround_with_hallucinations() for(var/i = 1 to 5) - INVOKE_ASYNC(src, .proc/hallucination_charge_around, 2, 8, 2, 0, 4) + INVOKE_ASYNC(src, PROC_REF(hallucination_charge_around), 2, 8, 2, 0, 4) if(ismob(target)) charge(delay = 6) else @@ -197,7 +197,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/try_bloodattack() var/list/targets = get_mobs_on_blood() if(targets.len) - INVOKE_ASYNC(src, .proc/bloodattack, targets, prob(50)) + INVOKE_ASYNC(src, PROC_REF(bloodattack), targets, prob(50)) return TRUE return FALSE @@ -263,7 +263,7 @@ Difficulty: Hard var/turf/targetturf = get_step(src, dir) L.forceMove(targetturf) playsound(targetturf, 'sound/blank.ogg', 100, TRUE, -1) - addtimer(CALLBACK(src, .proc/devour, L), 2) + addtimer(CALLBACK(src, PROC_REF(devour), L), 2) SLEEP_CHECK_DEATH(1) /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp() @@ -330,7 +330,7 @@ Difficulty: Hard change_move_delay(3.75) var/newcolor = rgb(149, 10, 10) add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY) - var/datum/callback/cb = CALLBACK(src, .proc/blood_enrage_end) + var/datum/callback/cb = CALLBACK(src, PROC_REF(blood_enrage_end)) addtimer(cb, enrage_time) /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_enrage_end(newcolor = rgb(149, 10, 10)) @@ -377,7 +377,7 @@ Difficulty: Hard continue var/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/B = new /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination(src.loc) B.forceMove(place) - INVOKE_ASYNC(B, .proc/charge, chargeat, delay, chargepast) + INVOKE_ASYNC(B, PROC_REF(charge), chargeat, delay, chargepast) if(useoriginal) charge(chargeat, delay, chargepast) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 5da54d36e8..f3f8084360 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -151,8 +151,8 @@ Difficulty: Very Hard visible_message("\"Die.\"") SLEEP_CHECK_DEATH(10) - INVOKE_ASYNC(src, .proc/spiral_shoot, FALSE) - INVOKE_ASYNC(src, .proc/spiral_shoot, TRUE) + INVOKE_ASYNC(src, PROC_REF(spiral_shoot), FALSE) + INVOKE_ASYNC(src, PROC_REF(spiral_shoot), TRUE) /mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = pick(TRUE, FALSE), counter_start = 8) var/turf/start_turf = get_step(src, pick(GLOB.alldirs)) @@ -234,7 +234,7 @@ Difficulty: Very Hard /obj/effect/temp_visual/at_shield/Initialize(mapload, new_target) . = ..() target = new_target - INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, orbit), target, 0, FALSE, 0, 0, FALSE, TRUE) /mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/projectile/P) if(!stat) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index c5df852547..6b724ab191 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -155,7 +155,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/proc/lava_swoop(amount = 30) if(health < maxHealth * 0.5) return swoop_attack(lava_arena = TRUE, swoop_cooldown = 60) - INVOKE_ASYNC(src, .proc/lava_pools, amount) + INVOKE_ASYNC(src, PROC_REF(lava_pools), amount) swoop_attack(FALSE, target, 1000) // longer cooldown until it gets reset below SLEEP_CHECK_DEATH(0) fire_cone() @@ -174,7 +174,7 @@ Difficulty: Medium var/increment = 360 / spiral_count for(var/j = 1 to spiral_count) var/list/turfs = line_target(j * increment + i * increment / 2, range, src) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) SLEEP_CHECK_DEATH(25) SetRecoveryTime(30) @@ -241,15 +241,15 @@ Difficulty: Medium playsound(get_turf(src),'sound/blank.ogg', 200, TRUE) SLEEP_CHECK_DEATH(0) if(prob(50) && meteors) - INVOKE_ASYNC(src, .proc/fire_rain) + INVOKE_ASYNC(src, PROC_REF(fire_rain)) var/range = 15 var/list/turfs = list() turfs = line_target(-40, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) turfs = line_target(0, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) turfs = line_target(40, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) /mob/living/simple_animal/hostile/megafauna/dragon/proc/line_target(offset, range, atom/at = target) if(!at) @@ -425,7 +425,7 @@ Difficulty: Medium /obj/effect/temp_visual/lava_warning/Initialize(mapload, reset_time = 10) . = ..() - INVOKE_ASYNC(src, .proc/fall, reset_time) + INVOKE_ASYNC(src, PROC_REF(fall), reset_time) src.alpha = 63.75 animate(src, alpha = 255, time = duration) @@ -450,7 +450,7 @@ Difficulty: Medium var/lava_turf = /turf/open/lava/smooth var/reset_turf = T.type T.ChangeTurf(lava_turf, flags = CHANGETURF_INHERIT_AIR) - addtimer(CALLBACK(T, /turf.proc/ChangeTurf, reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(T, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/effect/temp_visual/drakewall desc = "" @@ -492,7 +492,7 @@ Difficulty: Medium /obj/effect/temp_visual/dragon_flight/Initialize(mapload, negative) . = ..() - INVOKE_ASYNC(src, .proc/flight, negative) + INVOKE_ASYNC(src, PROC_REF(flight), negative) /obj/effect/temp_visual/dragon_flight/proc/flight(negative) if(negative) @@ -544,7 +544,7 @@ obj/effect/temp_visual/fireball /obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit) . = ..() - INVOKE_ASYNC(src, .proc/fall, flame_hit) + INVOKE_ASYNC(src, PROC_REF(fall), flame_hit) /obj/effect/temp_visual/target/proc/fall(list/flame_hit) var/turf/T = get_turf(src) @@ -635,7 +635,7 @@ obj/effect/temp_visual/fireball var/range = 20 var/list/turfs = list() turfs = line_target(0, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) /mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/OpenFire() if(swooping) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 488aea4984..50181193a7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -189,13 +189,13 @@ Difficulty: Hard else if(prob(70 - anger_modifier)) //a cross blast of some type if(prob(anger_modifier * (2 / target_slowness)) && health < maxHealth * 0.5) //we're super angry do it at all dirs - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.alldirs) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.alldirs) else if(prob(60)) - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.cardinals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.cardinals) else - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.diagonals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) else //just release a burst of power - INVOKE_ASYNC(src, .proc/burst, get_turf(src)) + INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src)) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/blink_spam(blink_counter, target_slowness, cross_counter) ranged_cooldown = world.time + max(5, major_attack_cooldown - anger_modifier * 0.75) @@ -213,7 +213,7 @@ Difficulty: Hard blinking = TRUE SLEEP_CHECK_DEATH(4 + target_slowness) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8) blinking = FALSE else @@ -229,12 +229,12 @@ Difficulty: Hard while(!QDELETED(target) && cross_counter) cross_counter-- if(prob(60)) - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.cardinals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.cardinals) else - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.diagonals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) SLEEP_CHECK_DEATH(6 + target_slowness) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8) blinking = FALSE @@ -262,7 +262,7 @@ Difficulty: Hard SLEEP_CHECK_DEATH(8 + target_slowness) chaser_cooldown = world.time + initial(chaser_cooldown) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8) blinking = FALSE @@ -280,7 +280,7 @@ Difficulty: Hard SLEEP_CHECK_DEATH(2) new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE) for(var/d in directions) - INVOKE_ASYNC(src, .proc/blast_wall, T, d) + INVOKE_ASYNC(src, PROC_REF(blast_wall), T, d) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/blast_wall(turf/T, set_dir) //make a wall of blasts beam_range tiles long var/range = beam_range @@ -299,13 +299,13 @@ Difficulty: Hard return arena_cooldown = world.time + initial(arena_cooldown) for(var/d in GLOB.cardinals) - INVOKE_ASYNC(src, .proc/arena_squares, T, d) + INVOKE_ASYNC(src, PROC_REF(arena_squares), T, d) for(var/t in RANGE_TURFS(11, T)) if(t && get_dist(t, T) == 11) new /obj/effect/temp_visual/hierophant/wall(t, src) new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE) if(get_dist(src, T) >= 11) //hey you're out of range I need to get closer to you! - INVOKE_ASYNC(src, .proc/blink, T) + INVOKE_ASYNC(src, PROC_REF(blink), T) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/arena_squares(turf/T, set_dir) //make a fancy effect extending from the arena target var/turf/previousturf = T @@ -451,10 +451,10 @@ Difficulty: Hard if(ranged_cooldown <= world.time) calculate_rage() ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75) - INVOKE_ASYNC(src, .proc/burst, get_turf(src)) + INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src)) else burst_range = 3 - INVOKE_ASYNC(src, .proc/burst, get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown + INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown else devour(L) else @@ -563,7 +563,7 @@ Difficulty: Hard friendly_fire_check = is_friendly_fire if(new_speed) speed = new_speed - addtimer(CALLBACK(src, .proc/seek_target), 1) + addtimer(CALLBACK(src, PROC_REF(seek_target)), 1) /obj/effect/temp_visual/hierophant/chaser/proc/get_target_dir() . = get_cardinal_dir(src, targetturf) @@ -646,7 +646,7 @@ Difficulty: Hard if(ismineralturf(loc)) //drill mineral turfs var/turf/closed/mineral/M = loc M.gets_drilled(caster) - INVOKE_ASYNC(src, .proc/blast) + INVOKE_ASYNC(src, PROC_REF(blast)) /obj/effect/temp_visual/hierophant/blast/proc/blast() var/turf/T = get_turf(src) @@ -719,7 +719,7 @@ Difficulty: Hard if(H.beacon == src) to_chat(user, "I start removing my hierophant beacon...") H.timer = world.time + 51 - INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/prepare_icon_update) + INVOKE_ASYNC(H, TYPE_PROC_REF(/obj/item/hierophant_club, prepare_icon_update)) if(do_after(user, 50, target = src)) playsound(src,'sound/blank.ogg', 200, TRUE, -4) new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user) @@ -729,7 +729,7 @@ Difficulty: Hard qdel(src) else H.timer = world.time - INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/prepare_icon_update) + INVOKE_ASYNC(H, TYPE_PROC_REF(/obj/item/hierophant_club, prepare_icon_update)) else to_chat(user, "I touch the beacon with the club, but nothing happens.") else diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 88047fc469..8d92b068c3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -120,15 +120,15 @@ minimum_distance = 0 set_varspeed(0) charging = TRUE - addtimer(CALLBACK(src, .proc/reset_charge), 60) + addtimer(CALLBACK(src, PROC_REF(reset_charge)), 60) var/mob/living/L = target if(!istype(L) || L.stat != DEAD) //I know, weird syntax, but it just works. - addtimer(CALLBACK(src, .proc/throw_thyself), 20) + addtimer(CALLBACK(src, PROC_REF(throw_thyself)), 20) ///This is the proc that actually does the throwing. Charge only adds a timer for this. /mob/living/simple_animal/hostile/megafauna/legion/proc/throw_thyself() playsound(src, 'sound/blank.ogg', 50, TRUE) - throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/blank.ogg', 50 * size, TRUE, 2), INFINITY) + throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/blank.ogg', 50 * size, TRUE, 2), INFINITY) ///Deals some extra damage on throw impact. /mob/living/simple_animal/hostile/megafauna/legion/throw_impact(mob/living/hit_atom, datum/thrownthing/throwingdatum) @@ -329,7 +329,7 @@ /obj/structure/legionturret/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/set_up_shot), initial_firing_time) + addtimer(CALLBACK(src, PROC_REF(set_up_shot)), initial_firing_time) ///Handles an extremely basic AI /obj/structure/legionturret/proc/set_up_shot() @@ -353,7 +353,7 @@ var/datum/point/vector/V = new(T1.x, T1.y, T1.z, 0, 0, angle) generate_tracer_between_points(V, V.return_vector_after_increments(6), /obj/effect/projectile/tracer/legion/tracer, 0, shot_delay, 0, 0, 0, null) playsound(src, 'sound/blank.ogg', 100, TRUE) - addtimer(CALLBACK(src, .proc/fire_beam, angle), shot_delay) + addtimer(CALLBACK(src, PROC_REF(fire_beam), angle), shot_delay) ///Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction. /obj/structure/legionturret/proc/fire_beam(angle) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index 184431a185..bccdbc5e90 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa /mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0) stop_automated_movement = TRUE AIStatus = AI_OFF - addtimer(CALLBACK(src, .proc/EndAction), deci) + addtimer(CALLBACK(src, PROC_REF(EndAction)), deci) /mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 6e59ef0cda..ab3e326c20 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -150,15 +150,15 @@ While using this makes the system rely on OnFire, it still gives options for tim if(boosted) mychild.playsound_local(get_turf(mychild), 'sound/blank.ogg', 40, 0) to_chat(mychild, "Someone has activated my tumor. You will be returned to fight shortly, get ready!") - addtimer(CALLBACK(src, .proc/return_elite), 30) - INVOKE_ASYNC(src, .proc/arena_checks) + addtimer(CALLBACK(src, PROC_REF(return_elite)), 30) + INVOKE_ASYNC(src, PROC_REF(arena_checks)) if(TUMOR_INACTIVE) activity = TUMOR_ACTIVE var/mob/dead/observer/elitemind = null visible_message("[src] begins to convulse. Your instincts tell you to step back.") activator = user if(!boosted) - addtimer(CALLBACK(src, .proc/spawn_elite), 30) + addtimer(CALLBACK(src, PROC_REF(spawn_elite)), 30) return visible_message("Something within [src] stirs...") var/list/candidates = pollCandidatesForMob("Do you want to play as a lavaland elite?", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, src, POLL_IGNORE_SENTIENCE_POTION) @@ -167,7 +167,7 @@ While using this makes the system rely on OnFire, it still gives options for tim elitemind = pick(candidates) elitemind.playsound_local(get_turf(elitemind), 'sound/blank.ogg', 40, 0) to_chat(elitemind, "I have been chosen to play as a Lavaland Elite.\nIn a few seconds, you will be summoned on Lavaland as a monster to fight my activator, in a fight to the death.\nYour attacks can be switched using the buttons on the top left of the HUD, and used by clicking on targets or tiles similar to a gun.\nWhile the opponent might have an upper hand with powerful mining equipment and tools, you have great power normally limited by AI mobs.\nIf you want to win, you'll have to use my powers in creative ways to ensure the kill. It's suggested you try using them all as soon as possible.\nShould you win, you'll receive extra information regarding what to do after. Good luck!") - addtimer(CALLBACK(src, .proc/spawn_elite, elitemind), 100) + addtimer(CALLBACK(src, PROC_REF(spawn_elite), elitemind), 100) else visible_message("The stirring stops, and nothing emerges. Perhaps try again later.") activity = TUMOR_INACTIVE @@ -183,7 +183,7 @@ obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind) mychild.key = elitemind.key mychild.sentience_act() icon_state = "tumor_popped" - INVOKE_ASYNC(src, .proc/arena_checks) + INVOKE_ASYNC(src, PROC_REF(arena_checks)) obj/structure/elite_tumor/proc/return_elite() mychild.forceMove(loc) @@ -230,10 +230,10 @@ obj/structure/elite_tumor/proc/return_elite() /obj/structure/elite_tumor/proc/arena_checks() if(activity != TUMOR_ACTIVE || QDELETED(src)) return - INVOKE_ASYNC(src, .proc/fighters_check) //Checks to see if our fighters died. - INVOKE_ASYNC(src, .proc/arena_trap) //Gets another arena trap queued up for when this one runs out. - INVOKE_ASYNC(src, .proc/border_check) //Checks to see if our fighters got out of the arena somehow. - addtimer(CALLBACK(src, .proc/arena_checks), 50) + INVOKE_ASYNC(src, PROC_REF(fighters_check)) //Checks to see if our fighters died. + INVOKE_ASYNC(src, PROC_REF(arena_trap)) //Gets another arena trap queued up for when this one runs out. + INVOKE_ASYNC(src, PROC_REF(border_check)) //Checks to see if our fighters got out of the arena somehow. + addtimer(CALLBACK(src, PROC_REF(arena_checks)), 50) /obj/structure/elite_tumor/proc/fighters_check() if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 1117fd5cc1..25880f180c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -136,7 +136,7 @@ color = "#FF0000" set_varspeed(0) move_to_delay = 3 - addtimer(CALLBACK(src, .proc/reset_rage), 65) + addtimer(CALLBACK(src, PROC_REF(reset_rage)), 65) /mob/living/simple_animal/hostile/asteroid/elite/broodmother/proc/reset_rage() color = "#FFFFFF" @@ -213,7 +213,7 @@ retract() else deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/broodmother/patch/Initialize(mapload, new_spawner) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 35b70fdcc6..e4c1d8ff46 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -52,7 +52,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/herald/death() . = ..() if(!is_mirror) - addtimer(CALLBACK(src, .proc/become_ghost), 8) + addtimer(CALLBACK(src, PROC_REF(become_ghost)), 8) if(my_mirror != null) qdel(my_mirror) @@ -141,13 +141,13 @@ var/target_turf = get_turf(target) var/angle_to_target = Get_Angle(src, target_turf) shoot_projectile(target_turf, angle_to_target, FALSE) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 2) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 4) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 2) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 4) if(health < maxHealth * 0.5) playsound(get_turf(src), 'sound/blank.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 10) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 12) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 14) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 10) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 12) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 14) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_circleshot() var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) @@ -164,11 +164,11 @@ if(!is_mirror) icon_state = "herald_enraged" playsound(get_turf(src), 'sound/blank.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/herald_circleshot), 5) + addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 5) if(health < maxHealth * 0.5) playsound(get_turf(src), 'sound/blank.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/herald_circleshot), 15) - addtimer(CALLBACK(src, .proc/unenrage), 20) + addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 15) + addtimer(CALLBACK(src, PROC_REF(unenrage)), 20) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target) ranged_cooldown = world.time + 30 @@ -271,4 +271,4 @@ owner.visible_message("[owner]'s [src] emits a loud noise as [owner] is struck!") var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) playsound(get_turf(owner), 'sound/blank.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/reactionshot, owner), 10) + addtimer(CALLBACK(src, PROC_REF(reactionshot), owner), 10) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 8ed84c145d..bb16c3a910 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -104,7 +104,7 @@ T = get_step(T, dir_to_target) playsound(src,'sound/blank.ogg', 200, 1) visible_message("[src] prepares to charge!") - addtimer(CALLBACK(src, .proc/legionnaire_charge_2, dir_to_target, 0), 5) + addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), dir_to_target, 0), 5) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/legionnaire_charge_2(move_dir, times_ran) if(times_ran >= 4) @@ -132,7 +132,7 @@ L.safe_throw_at(throwtarget, 10, 1, src) L.Paralyze(20) L.adjustBruteLoss(50) - addtimer(CALLBACK(src, .proc/legionnaire_charge_2, move_dir, (times_ran + 1)), 2) + addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), move_dir, (times_ran + 1)), 2) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/head_detach(target) ranged_cooldown = world.time + 10 @@ -160,7 +160,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/onHeadDeath() myhead = null - addtimer(CALLBACK(src, .proc/regain_head), 50) + addtimer(CALLBACK(src, PROC_REF(regain_head)), 50) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/regain_head() has_head = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 89db93428a..782d9dacc8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -117,7 +117,7 @@ new /obj/effect/temp_visual/hierophant/blast/pandora(T, src) T = get_step(T, angleused) procsleft = procsleft - 1 - addtimer(CALLBACK(src, .proc/singular_shot_line, procsleft, angleused, T), 2) + addtimer(CALLBACK(src, PROC_REF(singular_shot_line), procsleft, angleused, T), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/magic_box(target) ranged_cooldown = world.time + cooldown_time @@ -133,7 +133,7 @@ new /obj/effect/temp_visual/hierophant/telegraph(T, src) new /obj/effect/temp_visual/hierophant/telegraph(source, src) playsound(source,'sound/blank.ogg', 200, 1) - addtimer(CALLBACK(src, .proc/pandora_teleport_2, T, source), 2) + addtimer(CALLBACK(src, PROC_REF(pandora_teleport_2), T, source), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_2(turf/T, turf/source) new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src) @@ -145,7 +145,7 @@ animate(src, alpha = 0, time = 2, easing = EASE_OUT) //fade out visible_message("[src] fades out!") density = FALSE - addtimer(CALLBACK(src, .proc/pandora_teleport_3, T), 2) + addtimer(CALLBACK(src, PROC_REF(pandora_teleport_3), T), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_3(turf/T) forceMove(T) @@ -158,7 +158,7 @@ var/turf/T = get_turf(target) new /obj/effect/temp_visual/hierophant/blast/pandora(T, src) var/max_size = 2 - addtimer(CALLBACK(src, .proc/aoe_squares_2, T, 0, max_size), 2) + addtimer(CALLBACK(src, PROC_REF(aoe_squares_2), T, 0, max_size), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/aoe_squares_2(turf/T, ring, max_size) if(ring > max_size) @@ -166,7 +166,7 @@ for(var/t in spiral_range_turfs(ring, T)) if(get_dist(t, T) == ring) new /obj/effect/temp_visual/hierophant/blast/pandora(t, src) - addtimer(CALLBACK(src, .proc/aoe_squares_2, T, (ring + 1), max_size), 2) + addtimer(CALLBACK(src, PROC_REF(aoe_squares_2), T, (ring + 1), max_size), 2) //The specific version of hiero's squares pandora uses /obj/effect/temp_visual/hierophant/blast/pandora diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 2879de0c8f..90448e245a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -52,7 +52,7 @@ retreat_distance = 10 minimum_distance = 10 if(will_burrow) - addtimer(CALLBACK(src, .proc/Burrow), chase_time) + addtimer(CALLBACK(src, PROC_REF(Burrow)), chase_time) /mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget() if(istype(target, /obj/item/stack/ore)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 06cb0b2bf2..e9dd0d6aad 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -167,7 +167,7 @@ var/turf/closed/mineral/M = loc M.gets_drilled() deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/tripanim), 7, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(tripanim)), 7, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/original/Initialize(mapload, new_spawner) . = ..() @@ -181,7 +181,7 @@ /obj/effect/temp_visual/goliath_tentacle/proc/tripanim() icon_state = "Goliath_tentacle_wiggle" deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/trip), 3, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(trip)), 3, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/proc/trip() var/latched = FALSE @@ -196,7 +196,7 @@ retract() else deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/proc/retract() icon_state = "Goliath_tentacle_retract" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b3bf760432..8c1d0d9f05 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -90,7 +90,7 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/death), 100) + addtimer(CALLBACK(src, PROC_REF(death)), 100) AddComponent(/datum/component/swarming) //Legion diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index d51facf037..8e7de20c8b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -88,7 +88,7 @@ /mob/living/simple_animal/hostile/mushroom/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //Possibility to flee from a fight just to make it more visually interesting if(!retreat_distance && prob(33)) retreat_distance = 5 - addtimer(CALLBACK(src, .proc/stop_retreat), 30) + addtimer(CALLBACK(src, PROC_REF(stop_retreat)), 30) . = ..() /mob/living/simple_animal/hostile/mushroom/proc/stop_retreat() @@ -137,7 +137,7 @@ revive(full_heal = TRUE, admin_revive = FALSE) UpdateMushroomCap() recovery_cooldown = 1 - addtimer(CALLBACK(src, .proc/recovery_recharge), 300) + addtimer(CALLBACK(src, PROC_REF(recovery_recharge)), 300) /mob/living/simple_animal/hostile/mushroom/proc/recovery_recharge() recovery_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index c97517f63d..32d2d780a6 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -103,7 +103,7 @@ /mob/living/simple_animal/hostile/retaliate/gaseousform/Initialize() . = ..() set_light(1, 2) - addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/retaliate/gaseousform/.proc/revert, "VAMPIRE LORD"), 10 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal/hostile/retaliate/gaseousform, revert), "VAMPIRE LORD"), 10 SECONDS) /mob/living/simple_animal/hostile/retaliate/gaseousform/proc/revert() qdel() diff --git a/code/modules/mob/living/simple_animal/hostile/roguetown/haunt.dm b/code/modules/mob/living/simple_animal/hostile/roguetown/haunt.dm index 0e185842f5..025e99d514 100644 --- a/code/modules/mob/living/simple_animal/hostile/roguetown/haunt.dm +++ b/code/modules/mob/living/simple_animal/hostile/roguetown/haunt.dm @@ -144,7 +144,7 @@ return spawning = TRUE update_icon() - addtimer(CALLBACK(src, .proc/createhaunt), 4 SECONDS) + addtimer(CALLBACK(src, PROC_REF(createhaunt)), 4 SECONDS) /obj/structure/bonepile/Destroy() soundloop.stop() diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 8eb9e80245..44b7a9df99 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -23,7 +23,7 @@ for(var/turf/T in anchors) var/datum/beam/B = Beam(T, "vine", time=INFINITY, maxdistance=5, beam_type=/obj/effect/ebeam/vine) B.sleep_time = 10 //these shouldn't move, so let's slow down updates to 1 second (any slower and the deletion of the vines would be too slow) - addtimer(CALLBACK(src, .proc/bear_fruit), growth_time) + addtimer(CALLBACK(src, PROC_REF(bear_fruit)), growth_time) /obj/structure/alien/resin/flower_bud_enemy/proc/bear_fruit() visible_message("the plant has borne fruit!") diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 8c5e5469db..8f388f9a3e 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -93,7 +93,7 @@ F.environment_smash = ENVIRONMENT_SMASH_WALLS F.mob_size = MOB_SIZE_LARGE F.speed = 1 - addtimer(CALLBACK(F, /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate), 100) + addtimer(CALLBACK(F, TYPE_PROC_REF(/mob/living/simple_animal/hostile/asteroid/fugu, Deflate)), 100) /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate() if(wumbo) diff --git a/code/modules/mob/living/simple_animal/rogue/farm/chicken.dm b/code/modules/mob/living/simple_animal/rogue/farm/chicken.dm index 1cc94898ed..2092e159d5 100644 --- a/code/modules/mob/living/simple_animal/rogue/farm/chicken.dm +++ b/code/modules/mob/living/simple_animal/rogue/farm/chicken.dm @@ -147,11 +147,11 @@ if(foundchaff.len) stop_automated_movement = TRUE Goto(pick(foundchaff),move_to_delay) - addtimer(CALLBACK(src, .proc/return_action), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(return_action)), 15 SECONDS) else stop_automated_movement = TRUE Goto(pick(foundnests),move_to_delay) - addtimer(CALLBACK(src, .proc/return_action), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(return_action)), 15 SECONDS) /obj/structure/fluff/nest diff --git a/code/modules/mob/living/simple_animal/rogue/rogueanimals.dm b/code/modules/mob/living/simple_animal/rogue/rogueanimals.dm index 992f5a8cb0..1197437c77 100644 --- a/code/modules/mob/living/simple_animal/rogue/rogueanimals.dm +++ b/code/modules/mob/living/simple_animal/rogue/rogueanimals.dm @@ -255,7 +255,7 @@ if(tame && !stop_automated_movement) stop_automated_movement = TRUE Goto(user,move_to_delay) - addtimer(CALLBACK(src, .proc/return_action), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(return_action)), 3 SECONDS) /mob/living/simple_animal/hostile/retaliate/rogue/food_tempted(obj/item/O, mob/user) testing("tempted") @@ -263,4 +263,4 @@ testing("infoodtype") stop_automated_movement = TRUE Goto(user,move_to_delay) - addtimer(CALLBACK(src, .proc/return_action), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(return_action)), 3 SECONDS) diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 870e789978..67ca7a8a27 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -395,7 +395,7 @@ else if((mobility_flags & MOBILITY_MOVE) && isturf(loc) && prob(33)) step(src, pick(GLOB.cardinals)) else if(!AIproc) - INVOKE_ASYNC(src, .proc/AIprocess) + INVOKE_ASYNC(src, PROC_REF(AIprocess)) /mob/living/simple_animal/slime/handle_automated_movement() return //slime random movement is currently handled in handle_targets() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index a89f88469b..b76a40db87 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -500,7 +500,7 @@ if(user) step_away(src,user,15) - addtimer(CALLBACK(src, .proc/slime_move, user), 3) + addtimer(CALLBACK(src, PROC_REF(slime_move), user), 3) /mob/living/simple_animal/slime/proc/slime_move(mob/user) if(user) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 07653737c4..50c764479d 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -552,7 +552,7 @@ /mob/living/carbon/human/Animalize() var/list/mobtypes = typesof(/mob/living/simple_animal) - var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in sortList(mobtypes, /proc/cmp_typepaths_asc) + var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in sortList(mobtypes, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!safe_animal(mobpath)) to_chat(usr, "Sorry but this mob type is currently unavailable.") @@ -586,7 +586,7 @@ /mob/proc/Animalize() var/list/mobtypes = typesof(/mob/living/simple_animal) - var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in sortList(mobtypes, /proc/cmp_typepaths_asc) + var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in sortList(mobtypes, GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!safe_animal(mobpath)) to_chat(usr, "Sorry but this mob type is currently unavailable.") diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index 8debb2d7eb..8e8cbac81c 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -41,7 +41,7 @@ /datum/computer_file/program/card_mod/New() ..() - addtimer(CALLBACK(src, .proc/SetConfigCooldown), 0) + addtimer(CALLBACK(src, PROC_REF(SetConfigCooldown)), 0) /datum/computer_file/program/card_mod/proc/SetConfigCooldown() change_position_cooldown = CONFIG_GET(number/id_console_jobslot_delay) diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index df9ea3cf7e..12c6a2e84f 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -306,6 +306,6 @@ credits -= total_price say("Enjoy your new product!") state = 3 - addtimer(CALLBACK(src, .proc/reset_order), 100) + addtimer(CALLBACK(src, PROC_REF(reset_order)), 100) return TRUE return FALSE diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm index 0b2c98cdeb..b87eb85427 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm @@ -18,7 +18,7 @@ a_boost-- to_chat(H, "There are [a_boost] adrenaline boosts remaining.") s_coold = 3 - addtimer(CALLBACK(src, .proc/ninjaboost_after), 70) + addtimer(CALLBACK(src, PROC_REF(ninjaboost_after)), 70) /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost_after() var/mob/living/carbon/human/H = affecting diff --git a/code/modules/ninja/suit/suit_initialisation.dm b/code/modules/ninja/suit/suit_initialisation.dm index 1e624561ee..20118ea48f 100644 --- a/code/modules/ninja/suit/suit_initialisation.dm +++ b/code/modules/ninja/suit/suit_initialisation.dm @@ -13,18 +13,18 @@ return //Not sure how this could happen. s_busy = TRUE to_chat(U, "Now initializing...") - addtimer(CALLBACK(src, .proc/ninitialize_two, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize_two), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_two(delay, mob/living/carbon/human/U) if(!lock_suit(U))//To lock the suit onto wearer. s_busy = FALSE return to_chat(U, "Securing external locking mechanism...\nNeural-net established.") - addtimer(CALLBACK(src, .proc/ninitialize_three, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize_three), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_three(delay, mob/living/carbon/human/U) to_chat(U, "Extending neural-net interface...\nNow monitoring brain wave pattern...") - addtimer(CALLBACK(src, .proc/ninitialize_four, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize_four), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_four(delay, mob/living/carbon/human/U) if(U.stat == DEAD|| U.health <= 0) @@ -35,15 +35,15 @@ lockIcons(U)//Check for icons. U.regenerate_icons() to_chat(U, "Linking neural-net interface...\nPattern\green GREEN, continuing operation.") - addtimer(CALLBACK(src, .proc/ninitialize_five, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize_five), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_five(delay, mob/living/carbon/human/U) to_chat(U, "VOID-shift device status: ONLINE.\nCLOAK-tech device status: ONLINE.") - addtimer(CALLBACK(src, .proc/ninitialize_six, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize_six), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_six(delay, mob/living/carbon/human/U) to_chat(U, "Primary system status: ONLINE.\nBackup system status: ONLINE.\nCurrent energy capacity: [DisplayEnergy(cell.charge)].") - addtimer(CALLBACK(src, .proc/ninitialize_seven, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize_seven), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_seven(delay, mob/living/carbon/human/U) to_chat(U, "All systems operational. Welcome to SpiderOS, [U.real_name].") @@ -59,32 +59,32 @@ if(alert("Are you certain you wish to remove the suit? This will take time and remove all abilities.",,"Yes","No")=="No") return s_busy = TRUE - addtimer(CALLBACK(src, .proc/deinitialize_two, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_two), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_two(delay, mob/living/carbon/human/U) to_chat(U, "Now de-initializing...") - addtimer(CALLBACK(src, .proc/deinitialize_three, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_three), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_three(delay, mob/living/carbon/human/U) to_chat(U, "Logging off, [U.real_name]. Shutting down SpiderOS.") - addtimer(CALLBACK(src, .proc/deinitialize_four, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_four), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_four(delay, mob/living/carbon/human/U) to_chat(U, "Primary system status: OFFLINE.\nBackup system status: OFFLINE.") - addtimer(CALLBACK(src, .proc/deinitialize_five, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_five), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_five(delay, mob/living/carbon/human/U) to_chat(U, "VOID-shift device status: OFFLINE.\nCLOAK-tech device status: OFFLINE.") cancel_stealth()//Shutdowns stealth. - addtimer(CALLBACK(src, .proc/deinitialize_six, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_six), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_six(delay, mob/living/carbon/human/U) to_chat(U, "Disconnecting neural-net interface...\greenSuccess.") - addtimer(CALLBACK(src, .proc/deinitialize_seven, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_seven), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_seven(delay, mob/living/carbon/human/U) to_chat(U, "Disengaging neural-net interface...\greenSuccess.") - addtimer(CALLBACK(src, .proc/deinitialize_eight, delay, U), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize_eight), delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_eight(delay, mob/living/carbon/human/U) to_chat(U, "Unsecuring external locking mechanism...\nNeural-net abolished.\nOperation status: FINISHED.") diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 4df48df50f..32680c1c5d 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -239,7 +239,7 @@ user.visible_message("With a sudden blaze, [H] stands back up.") H.fakefire() fulfillContract(H, TRUE)//Revival contracts are always signed in blood - addtimer(CALLBACK(H, /mob/living/carbon/human.proc/fakefireextinguish), 5, TIMER_UNIQUE) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, fakefireextinguish)), 5, TIMER_UNIQUE) addtimer(CALLBACK(src, "resetcooldown"), 300, TIMER_UNIQUE) else ..() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index e4c1f5d7d2..f29a918fea 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -218,7 +218,7 @@ if(!spam_flag) spam_flag = TRUE playsound(loc, 'sound/blank.ogg', 50, TRUE) - addtimer(CALLBACK(src, .proc/reset_spamflag), 20) + addtimer(CALLBACK(src, PROC_REF(reset_spamflag)), 20) /obj/item/paper/attack_ai(mob/living/silicon/ai/user) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 0547e1927a..090248b920 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -86,7 +86,7 @@ c.copy_overlays(copy, TRUE) toner-- busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), 1.5 SECONDS) else break updateUsrDialog() @@ -95,7 +95,7 @@ if(toner >= 5 && !busy && photocopy) //Was set to = 0, but if there was say 3 toner left and this ran, you would get -2 which would be weird for ink new /obj/item/photo (loc, photocopy.picture.Copy(greytoggle == "Greyscale"? TRUE : FALSE)) busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), 1.5 SECONDS) else break else if(doccopy) @@ -104,7 +104,7 @@ new /obj/item/documents/photocopy(loc, doccopy) toner-= 6 // the sprite shows 6 papers, yes I checked busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), 1.5 SECONDS) else break updateUsrDialog() @@ -172,7 +172,7 @@ photo.pixel_y = rand(-10, 10) toner -= 5 //AI prints color pictures only, thus they can do it more efficiently busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 1.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), 1.5 SECONDS) updateUsrDialog() else if(href_list["colortoggle"]) if(greytoggle == "Greyscale") diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index cb18fb009b..8b011752f2 100644 --- a/code/modules/paperwork/ticketmachine.dm +++ b/code/modules/paperwork/ticketmachine.dm @@ -186,7 +186,7 @@ tickets += theirticket if(obj_flags & EMAGGED) //Emag the machine to destroy the HOP's life. ready = FALSE - addtimer(CALLBACK(src, .proc/reset_cooldown), cooldown)//Small cooldown to prevent piles of flaming tickets + addtimer(CALLBACK(src, PROC_REF(reset_cooldown)), cooldown)//Small cooldown to prevent piles of flaming tickets theirticket.fire_act() user.dropItemToGround(theirticket) user.adjust_fire_stacks(1) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 419a17a48f..47f06a356e 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -139,11 +139,11 @@ var/mob/living/carbon/human/H = user if (HAS_TRAIT(H, TRAIT_PHOTOGRAPHER)) realcooldown *= 0.5 - addtimer(CALLBACK(src, .proc/cooldown), realcooldown) + addtimer(CALLBACK(src, PROC_REF(cooldown)), realcooldown) icon_state = state_off - INVOKE_ASYNC(src, .proc/captureimage, target, user, flag, picture_size_x - 1, picture_size_y - 1) + INVOKE_ASYNC(src, PROC_REF(captureimage), target, user, flag, picture_size_x - 1, picture_size_y - 1) /obj/item/camera/proc/cooldown() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 109cf4a954..168732128e 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -191,7 +191,7 @@ name = "\improper [get_area_name(area, TRUE)] APC" stat |= MAINT update_icon() - addtimer(CALLBACK(src, .proc/update), 5) + addtimer(CALLBACK(src, PROC_REF(update)), 5) /obj/machinery/power/apc/Destroy() GLOB.apcs_list -= src @@ -253,7 +253,7 @@ make_terminal() - addtimer(CALLBACK(src, .proc/update), 5) + addtimer(CALLBACK(src, PROC_REF(update)), 5) /obj/machinery/power/apc/examine(mob/user) . = ..() @@ -980,7 +980,7 @@ for(var/obj/machinery/light/L in area) if(!initial(L.no_emergency)) //If there was an override set on creation, keep that override L.no_emergency = emergency_lights - INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) + INVOKE_ASYNC(L, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) CHECK_TICK return 1 @@ -1003,7 +1003,7 @@ return to_chat(malf, "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process.") malf.malfhack = src - malf.malfhacking = addtimer(CALLBACK(malf, /mob/living/silicon/ai/.proc/malfhacked, src), 600, TIMER_STOPPABLE) + malf.malfhacking = addtimer(CALLBACK(malf, TYPE_PROC_REF(/mob/living/silicon/ai, malfhacked), src), 600, TIMER_STOPPABLE) var/obj/screen/alert/hackingapc/A A = malf.throw_alert("hackingapc", /obj/screen/alert/hackingapc) @@ -1321,7 +1321,7 @@ environ = 0 update_icon() update() - addtimer(CALLBACK(src, .proc/reset, APC_RESET_EMP), 600) + addtimer(CALLBACK(src, PROC_REF(reset), APC_RESET_EMP), 600) /obj/machinery/power/apc/blob_act(obj/structure/blob/B) set_broken() @@ -1347,7 +1347,7 @@ return if( cell && cell.charge>=20) cell.use(20) - INVOKE_ASYNC(src, .proc/break_lights) + INVOKE_ASYNC(src, PROC_REF(break_lights)) /obj/machinery/power/apc/proc/break_lights() for(var/obj/machinery/light/L in area) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 1f245be24d..3557ffa2e4 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -366,7 +366,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri if(first) first = FALSE continue - addtimer(CALLBACK(O, .proc/auto_propogate_cut_cable, O), 0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables + addtimer(CALLBACK(O, PROC_REF(auto_propogate_cut_cable), O), 0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables /////////////////////////////////////////////// // The cable coil object, used for laying cable @@ -441,7 +441,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list(new/datum/stack_recipe("cable restrain "Layer 2" = image(icon = 'icons/mob/radial.dmi', icon_state = "coil-yellow"), "Layer 3" = image(icon = 'icons/mob/radial.dmi', icon_state = "coil-blue") ) - var/layer_result = show_radial_menu(user, src, layer_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/layer_result = show_radial_menu(user, src, layer_list, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(layer_result) diff --git a/code/modules/power/lanternpost.dm b/code/modules/power/lanternpost.dm index 4737f44709..f8feceeb29 100644 --- a/code/modules/power/lanternpost.dm +++ b/code/modules/power/lanternpost.dm @@ -23,7 +23,7 @@ update_icon() if(soundloop) soundloop.start() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) return TRUE /obj/machinery/light/rogue/lanternpost/Initialize() @@ -83,7 +83,7 @@ on = TRUE update() update_icon() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) return if(!LR.on && on) if(LR.fuel > 0) @@ -97,7 +97,7 @@ on = TRUE update() update_icon() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) else LR.forceMove(src) torchy = LR diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index e82ec06cd4..37697b6251 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -317,7 +317,7 @@ // brightness = 4 // if(prob(5)) // break_light_tube(1) - addtimer(CALLBACK(src, .proc/update, 0), 1) + addtimer(CALLBACK(src, PROC_REF(update), 0), 1) /obj/machinery/light/Destroy() var/area/A = get_area(src) @@ -429,7 +429,7 @@ if(!start_only) do_sparks(3, TRUE, src) var/delay = rand(BROKEN_SPARKS_MIN, BROKEN_SPARKS_MAX) - addtimer(CALLBACK(src, .proc/broken_sparks), delay, TIMER_UNIQUE | TIMER_NO_HASH_WAIT) + addtimer(CALLBACK(src, PROC_REF(broken_sparks)), delay, TIMER_UNIQUE | TIMER_NO_HASH_WAIT) /obj/machinery/light/process() if(on) diff --git a/code/modules/power/multiz.dm b/code/modules/power/multiz.dm index bafc5dbde6..222902ebc1 100644 --- a/code/modules/power/multiz.dm +++ b/code/modules/power/multiz.dm @@ -38,13 +38,13 @@ icon_state = "cablerelay-off" to_chat(user, "Powernet connection lost. Attempting to re-establish. Ensure the relays below this one are connected too.") find_relays() - addtimer(CALLBACK(src, .proc/refresh), 20) //Wait a bit so we can find the one below, then get powering + addtimer(CALLBACK(src, PROC_REF(refresh)), 20) //Wait a bit so we can find the one below, then get powering return TRUE /obj/machinery/power/deck_relay/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/find_relays), 30) - addtimer(CALLBACK(src, .proc/refresh), 50) //Wait a bit so we can find the one below, then get powering + addtimer(CALLBACK(src, PROC_REF(find_relays)), 30) + addtimer(CALLBACK(src, PROC_REF(refresh)), 50) //Wait a bit so we can find the one below, then get powering ///Handles re-acquiring + merging powernets found by find_relays() /obj/machinery/power/deck_relay/proc/refresh() diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 64bd835a92..528a101f30 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -18,7 +18,7 @@ /obj/machinery/power/Destroy() disconnect_from_network() - addtimer(CALLBACK(GLOBAL_PROC, .proc/update_cable_icons_on_turf, get_turf(src)), 3) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(update_cable_icons_on_turf), get_turf(src)), 3) return ..() /////////////////////////////// diff --git a/code/modules/power/roguelighting.dm b/code/modules/power/roguelighting.dm index a173d3c4d3..1b367aefcc 100644 --- a/code/modules/power/roguelighting.dm +++ b/code/modules/power/roguelighting.dm @@ -108,7 +108,7 @@ on = FALSE set_light(0) update_icon() - addtimer(CALLBACK(src, .proc/lights_on), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(lights_on)), 5 MINUTES) /obj/machinery/light/roguestreet/proc/lights_on() on = TRUE @@ -238,7 +238,7 @@ update_icon() if(soundloop) soundloop.start() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) return TRUE /obj/proc/trigger_weather() @@ -502,7 +502,7 @@ update_icon() if(soundloop) soundloop.start() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) return TRUE /obj/machinery/light/rogue/torchholder/Initialize() @@ -562,7 +562,7 @@ on = TRUE update() update_icon() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) return if(!LR.on && on) if(LR.fuel > 0) @@ -576,7 +576,7 @@ on = TRUE update() update_icon() - addtimer(CALLBACK(src, .proc/trigger_weather), rand(5,20)) + addtimer(CALLBACK(src, PROC_REF(trigger_weather)), rand(5,20)) else LR.forceMove(src) torchy = LR diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 1f4bc0b033..cc0c294b22 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -76,7 +76,7 @@ "I hear a loud electrical crack!") playsound(src.loc, 'sound/blank.ogg', 100, TRUE, extrarange = 5) tesla_zap(src, 5, power_gen * 0.05) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. /obj/machinery/power/rtg/abductor/bullet_act(obj/projectile/Proj) . = ..() diff --git a/code/modules/power/singularity/boh_tear.dm b/code/modules/power/singularity/boh_tear.dm index 437d757758..a3679401b0 100644 --- a/code/modules/power/singularity/boh_tear.dm +++ b/code/modules/power/singularity/boh_tear.dm @@ -39,4 +39,4 @@ to_chat(user, "I don't feel like you are real anymore.") user.dust_animation() user.spawn_dust() - addtimer(CALLBACK(src, .proc/consume, user), 5) + addtimer(CALLBACK(src, PROC_REF(consume), user), 5) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index f5f6be21c9..5d239f6ee3 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -139,4 +139,4 @@ do_sparks(5, TRUE, AM.loc) var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src))) AM.throw_at(target, 200, 4) - addtimer(CALLBACK(src, .proc/clear_shock), 5) + addtimer(CALLBACK(src, PROC_REF(clear_shock)), 5) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index dcf291658f..0e0bb62937 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -96,7 +96,7 @@ /obj/machinery/power/emitter/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/machinery/power/emitter/proc/can_be_rotated(mob/user,rotation_type) if (anchored) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 38bf7e256c..3eb79df5a4 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -182,8 +182,8 @@ field_generator power level display active = FG_OFFLINE CanAtmosPass = ATMOS_PASS_YES air_update_turf(TRUE) - INVOKE_ASYNC(src, .proc/cleanup) - addtimer(CALLBACK(src, .proc/cool_down), 50) + INVOKE_ASYNC(src, PROC_REF(cleanup)) + addtimer(CALLBACK(src, PROC_REF(cool_down)), 50) /obj/machinery/field/generator/proc/cool_down() if(active || warming_up <= 0) @@ -191,11 +191,11 @@ field_generator power level display warming_up-- update_icon() if(warming_up > 0) - addtimer(CALLBACK(src, .proc/cool_down), 50) + addtimer(CALLBACK(src, PROC_REF(cool_down)), 50) /obj/machinery/field/generator/proc/turn_on() active = FG_CHARGING - addtimer(CALLBACK(src, .proc/warm_up), 50) + addtimer(CALLBACK(src, PROC_REF(warm_up)), 50) /obj/machinery/field/generator/proc/warm_up() if(!active) @@ -205,7 +205,7 @@ field_generator power level display if(warming_up >= 3) start_fields() else - addtimer(CALLBACK(src, .proc/warm_up), 50) + addtimer(CALLBACK(src, PROC_REF(warm_up)), 50) /obj/machinery/field/generator/proc/calc_power(set_power_draw) var/power_draw = 2 + fields.len @@ -260,10 +260,10 @@ field_generator power level display move_resist = INFINITY CanAtmosPass = ATMOS_PASS_NO air_update_turf(TRUE) - addtimer(CALLBACK(src, .proc/setup_field, 1), 1) - addtimer(CALLBACK(src, .proc/setup_field, 2), 2) - addtimer(CALLBACK(src, .proc/setup_field, 4), 3) - addtimer(CALLBACK(src, .proc/setup_field, 8), 4) + addtimer(CALLBACK(src, PROC_REF(setup_field), 1), 1) + addtimer(CALLBACK(src, PROC_REF(setup_field), 2), 2) + addtimer(CALLBACK(src, PROC_REF(setup_field), 4), 3) + addtimer(CALLBACK(src, PROC_REF(setup_field), 8), 4) addtimer(VARSET_CALLBACK(src, active, FG_ONLINE), 5) /obj/machinery/field/generator/proc/setup_field(NSEW) @@ -337,7 +337,7 @@ field_generator power level display //This is here to help fight the "hurr durr, release singulo cos nobody will notice before the //singulo eats the evidence". It's not fool-proof but better than nothing. //I want to avoid using global variables. - INVOKE_ASYNC(src, .proc/notify_admins) + INVOKE_ASYNC(src, PROC_REF(notify_admins)) move_resist = initial(move_resist) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 083eeb997a..02ce96ecfe 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -35,7 +35,7 @@ if(A) var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/cult_effects.dmi', "ghostalertsie") notify_ghosts("Nar'Sie has risen in \the [A.name]. Reach out to the Geometer to be given a new shell for your soul.", source = src, alert_overlay = alert_overlay, action=NOTIFY_ATTACK) - INVOKE_ASYNC(src, .proc/narsie_spawn_animation) + INVOKE_ASYNC(src, PROC_REF(narsie_spawn_animation)) UnregisterSignal(src, COMSIG_ATOM_BSA_BEAM) //set up in /singularity/Initialize() /obj/singularity/narsie/large/cult // For the new cult ending, guaranteed to end the round within 3 minutes @@ -66,7 +66,7 @@ if(player.stat != DEAD && player.loc && is_station_level(player.loc.z) && !iscultist(player) && !isanimal(player)) souls_needed[player] = TRUE soul_goal = round(1 + LAZYLEN(souls_needed) * 0.75) - INVOKE_ASYNC(src, .proc/begin_the_end) + INVOKE_ASYNC(src, PROC_REF(begin_the_end)) /obj/singularity/narsie/large/cult/proc/begin_the_end() sleep(50) @@ -81,7 +81,7 @@ if(resolved == FALSE) resolved = TRUE sound_to_playing_players('sound/blank.ogg') - addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper), 120) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper)), 120) /obj/singularity/narsie/large/cult/Destroy() GLOB.cult_narsie = null @@ -92,9 +92,9 @@ /proc/cult_ending_helper(no_explosion = 0) if(no_explosion) - Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) + Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) else - Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) + Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 037d399bd2..c8cc4ce981 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -25,7 +25,7 @@ /obj/effect/accelerated_particle/New(loc) ..() - addtimer(CALLBACK(src, .proc/move), 1) + addtimer(CALLBACK(src, PROC_REF(move)), 1) /obj/effect/accelerated_particle/Bump(atom/A) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index b9b007d3ae..145a54188c 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -44,7 +44,7 @@ target = singubeacon break AddElement(/datum/element/bsa_blocker) - RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, .proc/bluespace_reaction) + RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, PROC_REF(bluespace_reaction)) /obj/singularity/Destroy() STOP_PROCESSING(SSobj, src) @@ -458,7 +458,7 @@ /obj/singularity/deadchat_controlled/Initialize(mapload, starting_energy) . = ..() AddComponent(/datum/component/deadchat_control, DEMOCRACY_MODE, list( - "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), - "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), - "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), - "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST))) + "up" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, NORTH), + "down" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, SOUTH), + "left" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, WEST), + "right" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, EAST))) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 2a88349c4b..932746a217 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -180,7 +180,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) GLOB.main_supermatter_engine = src AddElement(/datum/element/bsa_blocker) - RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, .proc/call_explode) + RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, PROC_REF(call_explode)) soundloop = new(list(src), TRUE) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 3075756442..393af06a4c 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -93,7 +93,7 @@ D.adjust_money(min(power_produced, 1)) if(istype(linked_techweb)) linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 1)) // x4 coils = ~240/m point bonus for R&D - addtimer(CALLBACK(src, .proc/reset_shocked), 10) + addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) tesla_buckle_check(power) else ..() @@ -131,7 +131,7 @@ D.adjust_money(min(power_produced, 3)) if(istype(linked_techweb)) linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 3)) // x4 coils with a pulse per second or so = ~720/m point bonus for R&D - addtimer(CALLBACK(src, .proc/reset_shocked), 10) + addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) tesla_buckle_check(power) else ..() diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index fcf2dd6756..31d59e69f1 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -97,7 +97,7 @@ energy_to_raise = energy_to_raise * 1.25 playsound(src.loc, 'sound/blank.ogg', 100, TRUE, extrarange = 30) - addtimer(CALLBACK(src, .proc/new_mini_ball), 100) + addtimer(CALLBACK(src, PROC_REF(new_mini_ball)), 100) else if(energy < energy_to_lower && orbiting_balls.len) energy_to_raise = energy_to_raise / 1.25 diff --git a/code/modules/procedural_mapping/mapGenerator.dm b/code/modules/procedural_mapping/mapGenerator.dm index ca7c2576b5..b2c73cc2f7 100644 --- a/code/modules/procedural_mapping/mapGenerator.dm +++ b/code/modules/procedural_mapping/mapGenerator.dm @@ -110,7 +110,7 @@ if(!modules || !modules.len) return for(var/datum/mapGeneratorModule/mod in modules) - INVOKE_ASYNC(mod, /datum/mapGeneratorModule.proc/generate) + INVOKE_ASYNC(mod, TYPE_PROC_REF(/datum/mapGeneratorModule, generate)) //Requests the mapGeneratorModule(s) to (re)generate this one turf @@ -121,7 +121,7 @@ if(!modules || !modules.len) return for(var/datum/mapGeneratorModule/mod in modules) - INVOKE_ASYNC(mod, /datum/mapGeneratorModule.proc/place, T) + INVOKE_ASYNC(mod, TYPE_PROC_REF(/datum/mapGeneratorModule, place), T) //Replaces all paths in the module list with actual module datums diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index c962bd010e..38d02e853b 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -83,6 +83,6 @@ SpinAnimation(10, 1) var/turf/T = get_turf(src) if(still_warm && T && T.bullet_sizzle) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/blank.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/blank.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. else if(T && T.bullet_bounce_sound) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, T.bullet_bounce_sound, 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, T.bullet_bounce_sound, 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index a7ead11aca..6c5c4d0187 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -246,7 +246,7 @@ else if(G.can_trigger_gun(user)) bonus_spread += dual_wield_spread loop_counter++ - addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread), loop_counter) + addtimer(CALLBACK(G, TYPE_PROC_REF(/obj/item/gun, process_fire), target, user, TRUE, params, null, bonus_spread), loop_counter) return process_fire(target, user, TRUE, params, null, bonus_spread) @@ -326,7 +326,7 @@ if(burst_size > 1) firing_burst = TRUE for(var/i = 1 to burst_size) - addtimer(CALLBACK(src, .proc/process_burst, user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i), fire_delay * (i - 1)) + addtimer(CALLBACK(src, PROC_REF(process_burst), user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i), fire_delay * (i - 1)) else if(chambered) if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal. @@ -349,7 +349,7 @@ process_chamber() update_icon() semicd = TRUE - addtimer(CALLBACK(src, .proc/reset_semicd), fire_delay) + addtimer(CALLBACK(src, PROC_REF(reset_semicd)), fire_delay) if(user) user.update_inv_hands() diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 82cd5844ab..314ae86f01 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -416,7 +416,7 @@ var/turf/target = get_ranged_target_turf(user, turn(user.dir, 180), BRAINS_BLOWN_THROW_RANGE) B.Remove(user) B.forceMove(T) - var/datum/callback/gibspawner = CALLBACK(GLOBAL_PROC, /proc/spawn_atom_to_turf, /obj/effect/gibspawner/generic, B, 1, FALSE, user) + var/datum/callback/gibspawner = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(spawn_atom_to_turf), /obj/effect/gibspawner/generic, B, 1, FALSE, user) B.throw_at(target, BRAINS_BLOWN_THROW_RANGE, BRAINS_BLOWN_THROW_SPEED, callback=gibspawner) return(BRUTELOSS) else diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index f215619cc5..07c78850b3 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -103,7 +103,7 @@ if(!QDELING(src) && !holds_charge) // Put it on a delay because moving item from slot to hand // calls dropped(). - addtimer(CALLBACK(src, .proc/empty_if_not_held), 2) + addtimer(CALLBACK(src, PROC_REF(empty_if_not_held)), 2) /obj/item/gun/energy/kinetic_accelerator/proc/empty_if_not_held() if(!ismob(loc)) @@ -141,7 +141,7 @@ if(H.mind) skill_modifier = H.mind.get_skill_speed_modifier(/datum/skill/mining) - recharge_timerid = addtimer(CALLBACK(src, .proc/reload), recharge_time * carried * skill_modifier, TIMER_STOPPABLE) + recharge_timerid = addtimer(CALLBACK(src, PROC_REF(reload)), recharge_time * carried * skill_modifier, TIMER_STOPPABLE) /obj/item/gun/energy/kinetic_accelerator/emp_act(severity) return diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 0a55ae294d..c41dd72314 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -272,7 +272,7 @@ current_user = null if(istype(user)) current_user = user - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) listeningTo = user /obj/item/gun/energy/beam_rifle/onMouseDrag(src_object, over_object, src_location, over_location, params, mob) diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm index ab0b189d49..5966dffe11 100644 --- a/code/modules/projectiles/guns/misc/grenade_launcher.dm +++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm @@ -43,4 +43,4 @@ F.active = 1 F.icon_state = initial(F.icon_state) + "_active" playsound(user.loc, 'sound/blank.ogg', 75, TRUE, -3) - addtimer(CALLBACK(F, /obj/item/grenade.proc/prime), 15) + addtimer(CALLBACK(F, TYPE_PROC_REF(/obj/item/grenade, prime)), 15) diff --git a/code/modules/projectiles/guns/misc/medbeam.dm b/code/modules/projectiles/guns/misc/medbeam.dm index 489d81c05c..e76cad800b 100644 --- a/code/modules/projectiles/guns/misc/medbeam.dm +++ b/code/modules/projectiles/guns/misc/medbeam.dm @@ -53,7 +53,7 @@ current_target = target active = TRUE current_beam = new(user,current_target,time=6000,beam_icon_state="medbeam",btype=/obj/effect/ebeam/medical) - INVOKE_ASYNC(current_beam, /datum/beam.proc/Start) + INVOKE_ASYNC(current_beam, TYPE_PROC_REF(/datum/beam, Start)) SSblackbox.record_feedback("tally", "gun_fired", 1, type) diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index f851f94fa9..3c0f67ec68 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -37,7 +37,7 @@ if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) teletarget = com.target - addtimer(CALLBACK(src, .proc/pop, teletarget), 30) + addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 30) /obj/effect/nettingportal/proc/pop(teletarget) if(teletarget) diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index e9119865ba..69872af62a 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -23,7 +23,7 @@ if(C.dna && C.dna.check_mutation(HULK)) C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") else if((C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE)) - addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5) + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), jitter), 5) /obj/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet do_sparks(1, TRUE, src) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 2a1278a2c8..471ccfd288 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -438,8 +438,8 @@ /obj/structure/closet/decay/Initialize() . = ..() if(auto_destroy) - addtimer(CALLBACK(src, .proc/bust_open), 5 MINUTES) - addtimer(CALLBACK(src, .proc/magicly_lock), 5) + addtimer(CALLBACK(src, PROC_REF(bust_open)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(magicly_lock)), 5) /obj/structure/closet/decay/proc/magicly_lock() if(!welded) @@ -453,7 +453,7 @@ /obj/structure/closet/decay/proc/decay() animate(src, alpha = 0, time = 30) - addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, src), 30) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 30) /obj/structure/closet/decay/open(mob/living/user) . = ..() @@ -461,12 +461,12 @@ if(icon_state == magic_icon) //check if we used the magic icon at all before giving it the lesser magic icon unmagify() else - addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(decay)), 15 SECONDS) /obj/structure/closet/decay/proc/unmagify() icon_state = weakened_icon update_icon() - addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(decay)), 15 SECONDS) icon_welded = "welded" /obj/projectile/magic/flying @@ -706,7 +706,7 @@ return BULLET_ACT_BLOCK var/turf/T = get_turf(target) for(var/i=0, i<50, i+=10) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i) //still magic related, but a different path diff --git a/code/modules/projectiles/projectile/special/hallucination.dm b/code/modules/projectiles/projectile/special/hallucination.dm index aaabeec605..0acb9503ca 100644 --- a/code/modules/projectiles/projectile/special/hallucination.dm +++ b/code/modules/projectiles/projectile/special/hallucination.dm @@ -100,7 +100,7 @@ layer = ABOVE_MOB_LAYER hal_target.client.images += blood animate(blood, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = 5) - addtimer(CALLBACK(src, .proc/cleanup_blood), 5) + addtimer(CALLBACK(src, PROC_REF(cleanup_blood)), 5) /obj/projectile/hallucination/proc/cleanup_blood(image/blood) hal_target.client.images -= blood @@ -171,7 +171,7 @@ if(hal_target.dna && hal_target.dna.check_mutation(HULK)) hal_target.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") else if((hal_target.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(hal_target, TRAIT_STUNIMMUNE)) - addtimer(CALLBACK(hal_target, /mob/living/carbon.proc/do_jitter_animation, 20), 5) + addtimer(CALLBACK(hal_target, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 20), 5) /obj/projectile/hallucination/disabler name = "disabler beam" diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 66a83f83ab..3d2c9c95d3 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -87,11 +87,11 @@ /obj/machinery/chem_dispenser/Initialize() . = ..() - dispensable_reagents = sortList(dispensable_reagents, /proc/cmp_reagents_asc) + dispensable_reagents = sortList(dispensable_reagents, GLOBAL_PROC_REF(cmp_reagents_asc)) if(emagged_reagents) - emagged_reagents = sortList(emagged_reagents, /proc/cmp_reagents_asc) + emagged_reagents = sortList(emagged_reagents, GLOBAL_PROC_REF(cmp_reagents_asc)) if(upgrade_reagents) - upgrade_reagents = sortList(upgrade_reagents, /proc/cmp_reagents_asc) + upgrade_reagents = sortList(upgrade_reagents, GLOBAL_PROC_REF(cmp_reagents_asc)) update_icon() /obj/machinery/chem_dispenser/Destroy() diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 8cd7628830..1199bf8403 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -224,7 +224,7 @@ update_icon() var/turf/source_turf = get_turf(src) log_virus("A culture bottle was printed for the virus [A.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]") - addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 50) + addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 50) . = TRUE if("create_vaccine_bottle") if (wait) @@ -236,7 +236,7 @@ B.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id)) wait = TRUE update_icon() - addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 200) + addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 200) . = TRUE if("symptom_details") var/picked_symptom_index = text2num(params["picked_symptom"]) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index c5cfbbdace..8be16aa832 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -228,7 +228,7 @@ var/offset = prob(50) ? -2 : 2 var/old_pixel_x = pixel_x animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = -1) //start shaking - addtimer(CALLBACK(src, .proc/stop_shaking, old_pixel_x), duration) + addtimer(CALLBACK(src, PROC_REF(stop_shaking), old_pixel_x), duration) /obj/machinery/reagentgrinder/proc/stop_shaking(old_px) animate(src) @@ -242,7 +242,7 @@ playsound(src, 'sound/blank.ogg', 50, TRUE) else playsound(src, 'sound/blank.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/stop_operating), time / speed) + addtimer(CALLBACK(src, PROC_REF(stop_operating)), time / speed) /obj/machinery/reagentgrinder/proc/stop_operating() operating = FALSE @@ -301,7 +301,7 @@ if(!beaker || stat & (NOPOWER|BROKEN)) return operate_for(50, juicing = TRUE) - addtimer(CALLBACK(src, /obj/machinery/reagentgrinder/proc/mix_complete), 50) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50) /obj/machinery/reagentgrinder/proc/mix_complete() if(beaker?.reagents.total_volume) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index bb0ab3c48a..d797af7a26 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1863,7 +1863,7 @@ All effects don't start immediately, but rather get worse over time; the rate is var/minimum_name_percent = 0.35 name = "" - var/list/names_in_order = sortTim(names, /proc/cmp_numeric_dsc, TRUE) + var/list/names_in_order = sortTim(names, GLOBAL_PROC_REF(cmp_numeric_dsc), TRUE) var/named = FALSE for(var/fruit_name in names) if(names[fruit_name] >= minimum_name_percent) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index fee552ef9c..5ced6c0add 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -141,7 +141,7 @@ M.emote("scream") playsound(M, 'sound/blank.ogg', 25, TRUE) ADD_TRAIT(M, TRAIT_OIL_FRIED, "cooking_oil_react") - addtimer(CALLBACK(M, /mob/living/proc/unfry_mob), 3) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) if(FryLoss) M.adjustFireLoss(FryLoss) return TRUE @@ -296,7 +296,7 @@ victim.confused = max(M.confused, 5) // 10 seconds victim.Knockdown(3 SECONDS) victim.add_movespeed_modifier(MOVESPEED_ID_PEPPER_SPRAY, update=TRUE, priority=100, multiplicative_slowdown=0.25, blacklisted_movetypes=(FLYING|FLOATING)) - addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, MOVESPEED_ID_PEPPER_SPRAY), 10 SECONDS) + addtimer(CALLBACK(victim, TYPE_PROC_REF(/mob, remove_movespeed_modifier), MOVESPEED_ID_PEPPER_SPRAY), 10 SECONDS) victim.update_damage_hud() /datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 0ad926a0e8..fdeb413940 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -717,8 +717,8 @@ M.visible_message("[M]'s body starts convulsing!") M.notify_ghost_cloning(source = M) M.do_jitter_animation(10) - addtimer(CALLBACK(M, /mob/living/carbon.proc/do_jitter_animation, 10), 40) //jitter immediately, then again after 4 and 8 seconds - addtimer(CALLBACK(M, /mob/living/carbon.proc/do_jitter_animation, 10), 80) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 10), 40) //jitter immediately, then again after 4 and 8 seconds + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 10), 80) sleep(100) //so the ghost has time to re-enter diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 7ace706a0f..a2fc0dccce 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -996,7 +996,7 @@ to_chat(M, "I feel unstable...") M.Jitter(2) current_cycle = 1 - addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, bluespace_shuffle)), 30) ..() /mob/living/proc/bluespace_shuffle() @@ -1651,7 +1651,7 @@ var/can_colour_mobs = TRUE /datum/reagent/colorful_reagent/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateColor)) + SSticker.OnRoundstart(CALLBACK(src,PROC_REF(UpdateColor))) /datum/reagent/colorful_reagent/proc/UpdateColor() color = pick(random_color_list) @@ -1685,7 +1685,7 @@ taste_description = "sourness" /datum/reagent/hair_dye/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateColor)) + SSticker.OnRoundstart(CALLBACK(src,PROC_REF(UpdateColor))) /datum/reagent/hair_dye/proc/UpdateColor() color = pick(potential_colors) diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 6a1e58ab89..c39d925792 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -70,7 +70,7 @@ else if(setting_type) if(step_away(X, T) && moving_power > 1) //Can happen twice at most. So this is fine. - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_away, X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step_away), X, T), 2) else if(step_towards(X, T) && moving_power > 1) - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_towards, X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step_towards), X, T), 2) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 494aaa5b9b..61edf8ca32 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -104,7 +104,7 @@ strengthdiv = 3 /datum/chemical_reaction/reagent_explosion/tatp/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) //method used by secret sauce. + SSticker.OnRoundstart(CALLBACK(src,PROC_REF(UpdateInfo))) //method used by secret sauce. /datum/chemical_reaction/reagent_explosion/tatp/proc/UpdateInfo() required_temp = 450 + rand(-49,49) //this gets loaded only on round start @@ -124,7 +124,7 @@ strengthdiv = 3 /datum/chemical_reaction/reagent_explosion/tatp_explosion/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) + SSticker.OnRoundstart(CALLBACK(src,PROC_REF(UpdateInfo))) /datum/chemical_reaction/reagent_explosion/tatp_explosion/proc/UpdateInfo() diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 021d1d9935..f2df3fc5cd 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -112,11 +112,11 @@ var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimemobspawn/proc/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate violently!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime", HOSTILE_SPAWN), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 5, "Gold Slime", HOSTILE_SPAWN), 50) /datum/chemical_reaction/slime/slimemobspawn/lesser name = "Slime Crit Lesser" @@ -125,7 +125,7 @@ /datum/chemical_reaction/slime/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate violently!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50) /datum/chemical_reaction/slime/slimemobspawn/friendly name = "Slime Crit Friendly" @@ -134,7 +134,7 @@ /datum/chemical_reaction/slime/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate adorably!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50) /datum/chemical_reaction/slime/slimemobspawn/spider name = "Slime Crit Traitor Spider" @@ -143,7 +143,7 @@ /datum/chemical_reaction/slime/slimemobspawn/spider/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate crikey-ingly!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Traitor Spider Slime", /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife, "neutral", FALSE), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 3, "Traitor Spider Slime", /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife, "neutral", FALSE), 50) //Silver @@ -229,11 +229,11 @@ /datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder) var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract starts to feel extremely cold!") - addtimer(CALLBACK(src, .proc/freeze, holder), 50) + addtimer(CALLBACK(src, PROC_REF(freeze), holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimefreeze/proc/freeze(datum/reagents/holder) if(holder && holder.my_atom) @@ -273,11 +273,11 @@ /datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder) var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract begins to vibrate adorably!") - addtimer(CALLBACK(src, .proc/slime_burn, holder), 50) + addtimer(CALLBACK(src, PROC_REF(slime_burn), holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimefire/proc/slime_burn(datum/reagents/holder) if(holder && holder.my_atom) @@ -454,11 +454,11 @@ message_admins("Slime Explosion reaction started at [ADMIN_VERBOSEJMP(T)]. Last Fingerprint: [touch_msg]") log_game("Slime Explosion reaction started at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"].") T.visible_message("The slime extract begins to vibrate violently !") - addtimer(CALLBACK(src, .proc/boom, holder), 50) + addtimer(CALLBACK(src, PROC_REF(boom), holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimeexplosion/proc/boom(datum/reagents/holder) if(holder && holder.my_atom) @@ -651,7 +651,7 @@ S.visible_message("Infused with plasma, the core begins to expand uncontrollably!") S.icon_state = "[S.base_state]_active" S.active = TRUE - addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60)) + addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) else var/mob/living/simple_animal/slime/random/S = new (get_turf(holder.my_atom)) S.visible_message("Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!") @@ -670,7 +670,7 @@ S.visible_message("Infused with slime jelly, the core begins to expand uncontrollably!") S.icon_state = "[S.base_state]_active" S.active = TRUE - addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60)) + addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) var/lastkey = holder.my_atom.fingerprintslast var/touch_msg = "N/A" if(lastkey) diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index 891d75962d..a9fe816fce 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -180,7 +180,7 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related if(SSpersistence.initialized) UpdateInfo() else - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) + SSticker.OnRoundstart(CALLBACK(src,PROC_REF(UpdateInfo))) /obj/item/paper/secretrecipe/proc/UpdateInfo() var/datum/chemical_reaction/recipe = get_chemical_reaction(recipe_id) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 3a33e468f5..d3f8b0fc7f 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -77,7 +77,7 @@ log_combat(user, M, "fed", reagents.log_list()) else to_chat(user, "I swallow a gulp of [src].") - addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, min(amount_per_transfer_from_this,5), TRUE, TRUE, FALSE, user, FALSE, INGEST), 5) + addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), M, min(amount_per_transfer_from_this,5), TRUE, TRUE, FALSE, user, FALSE, INGEST), 5) playsound(M.loc,pick(drinksounds), 100, TRUE) return /obj/item/reagent_containers/glass/attack_obj(obj/target, mob/living/user) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 83fb1efb40..3da872c688 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -47,7 +47,7 @@ "[user] forces you to [apply_method] [src].") if(icon_state == "pill4" && prob(5)) //you take the red pill - you stay in Wonderland, and I show you how deep the rabbit hole goes - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, M, "[pick(strings(REDPILL_FILE, "redpill_questions"))]"), 50) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), M, "[pick(strings(REDPILL_FILE, "redpill_questions"))]"), 50) if(reagents.total_volume) reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = apply_type) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index e254a0ef0f..8e62ea3351 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -81,7 +81,7 @@ target.visible_message("[user] is trying to take a blood sample from [target]!", \ "[user] is trying to take a blood sample from you!") busy = TRUE - if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, target, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) busy = FALSE return if(reagents.total_volume >= reagents.maximum_volume) @@ -131,7 +131,7 @@ if(L != user) L.visible_message("[user] is trying to inject [L]!", \ "[user] is trying to inject you!") - if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return if(!reagents.total_volume) return diff --git a/code/modules/reagents/roguespill.dm b/code/modules/reagents/roguespill.dm index b503216210..b78358be9b 100644 --- a/code/modules/reagents/roguespill.dm +++ b/code/modules/reagents/roguespill.dm @@ -2,7 +2,7 @@ . = ..() for(var/obj/item/reagent_containers/I in contents) if(I.reagents && I.spillable) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_spill, override = TRUE) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(check_spill), override = TRUE) break /obj/item/storage/proc/check_spill() @@ -26,4 +26,4 @@ var/obj/item/storage/I = real_location if(ismob(I.loc)) var/mob/M = I.loc - I.RegisterSignal(M, COMSIG_MOVABLE_MOVED, /obj/item/storage/.proc/check_spill, override = TRUE) \ No newline at end of file + I.RegisterSignal(M, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/obj/item/storage, check_spill), override = TRUE) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 8853b92c8d..91c404aafb 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -131,7 +131,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) return use_power(6) affecting = loc.contents - src // moved items will be all in loc - addtimer(CALLBACK(src, .proc/convey, affecting), 1) + addtimer(CALLBACK(src, PROC_REF(convey), affecting), 1) /obj/machinery/conveyor/proc/convey(list/affecting) for(var/atom/movable/A in affecting) diff --git a/code/modules/recycling/disposal/construction.dm b/code/modules/recycling/disposal/construction.dm index 1e80a4d389..ee813f9d2d 100644 --- a/code/modules/recycling/disposal/construction.dm +++ b/code/modules/recycling/disposal/construction.dm @@ -89,7 +89,7 @@ /obj/structure/disposalconstruct/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated), CALLBACK(src, .proc/after_rot)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)), CALLBACK(src, PROC_REF(after_rot))) /obj/structure/disposalconstruct/proc/after_rot(mob/user,rotation_type) if(rotation_type == ROTATION_FLIP) diff --git a/code/modules/recycling/disposal/outlet.dm b/code/modules/recycling/disposal/outlet.dm index c98586c803..eccb39f7cb 100644 --- a/code/modules/recycling/disposal/outlet.dm +++ b/code/modules/recycling/disposal/outlet.dm @@ -44,9 +44,9 @@ if((start_eject + 30) < world.time) start_eject = world.time playsound(src, 'sound/blank.ogg', 50, FALSE, FALSE) - addtimer(CALLBACK(src, .proc/expel_holder, H, TRUE), 20) + addtimer(CALLBACK(src, PROC_REF(expel_holder), H, TRUE), 20) else - addtimer(CALLBACK(src, .proc/expel_holder, H), 20) + addtimer(CALLBACK(src, PROC_REF(expel_holder), H), 20) /obj/structure/disposaloutlet/proc/expel_holder(obj/structure/disposalholder/H, playsound=FALSE) if(playsound) diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 91b93a16d7..a1539d4353 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -43,7 +43,7 @@ Note: Must be placed within 3 tiles of the R&D Console loaded_item = O to_chat(user, "I add the [O.name] to the [src.name]!") flick("d_analyzer_la", src) - addtimer(CALLBACK(src, .proc/finish_loading), 10) + addtimer(CALLBACK(src, PROC_REF(finish_loading)), 10) if (linked_console) linked_console.updateUsrDialog() @@ -74,7 +74,7 @@ Note: Must be placed within 3 tiles of the R&D Console if(!innermode) flick("d_analyzer_process", src) busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 24) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), 24) use_power(250) if(thing == loaded_item) loaded_item = null diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index dee816860c..a562e47303 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -522,7 +522,7 @@ use_power(500000) investigate_log("Experimentor has drained power from its APC", INVESTIGATE_EXPERIMENTOR) - addtimer(CALLBACK(src, .proc/reset_exp), resetTime) + addtimer(CALLBACK(src, PROC_REF(reset_exp)), resetTime) /obj/machinery/rnd/experimentor/proc/reset_exp() update_icon() @@ -587,7 +587,7 @@ else if(loc == user) cooldown = TRUE call(src,realProc)(user) - addtimer(CALLBACK(src, .proc/cd), cooldownMax) + addtimer(CALLBACK(src, PROC_REF(cd)), cooldownMax) else to_chat(user, "I aren't quite sure what to do with this yet.") @@ -604,7 +604,7 @@ /obj/item/relic/proc/corgicannon(mob/user) playsound(src, "sparks", rand(25,50), TRUE) var/mob/living/simple_animal/pet/dog/corgi/C = new/mob/living/simple_animal/pet/dog/corgi(get_turf(user)) - C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .proc/throwSmoke, C)) + C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, PROC_REF(throwSmoke), C)) warn_admins(user, "Corgi Cannon", 0) /obj/item/relic/proc/clean(mob/user) @@ -654,7 +654,7 @@ /obj/item/relic/proc/explode(mob/user) to_chat(user, "[src] begins to heat up!") - addtimer(CALLBACK(src, .proc/do_explode, user), rand(35, 100)) + addtimer(CALLBACK(src, PROC_REF(do_explode), user), rand(35, 100)) /obj/item/relic/proc/do_explode(mob/user) if(loc == user) @@ -665,7 +665,7 @@ /obj/item/relic/proc/teleport(mob/user) to_chat(user, "[src] begins to vibrate!") - addtimer(CALLBACK(src, .proc/do_the_teleport, user), rand(10, 30)) + addtimer(CALLBACK(src, PROC_REF(do_the_teleport), user), rand(10, 30)) /obj/item/relic/proc/do_the_teleport(mob/user) var/turf/userturf = get_turf(user) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index b4be71685a..16fbd6f6cc 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -160,8 +160,8 @@ if(production_animation) flick(production_animation, src) var/timecoeff = D.lathe_time_factor / efficiency_coeff - addtimer(CALLBACK(src, .proc/reset_busy), (30 * timecoeff * amount) ** 0.5) - addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), (30 * timecoeff * amount) ** 0.5) + addtimer(CALLBACK(src, PROC_REF(do_print), D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8) return TRUE /obj/machinery/rnd/production/proc/search(string) diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index 9225883d68..a28eb24c77 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -63,11 +63,11 @@ //TODO OMINOUS MACHINE SOUNDS set_busy(TRUE, "Initializing injection protocol...", "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Priming nanites...", "[initial(icon_state)]_active"),40) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Injecting...", "[initial(icon_state)]_active"),70) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Activating nanites...", "[initial(icon_state)]_falling"),110) - addtimer(CALLBACK(src, .proc/complete_injection, locked_state),130) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Priming nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Injecting...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Activating nanites...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, PROC_REF(complete_injection), locked_state),130) /obj/machinery/nanite_chamber/proc/complete_injection(locked_state) //TODO MACHINE DING @@ -90,11 +90,11 @@ //TODO OMINOUS MACHINE SOUNDS set_busy(TRUE, "Initializing cleanup protocol...", "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110) - addtimer(CALLBACK(src, .proc/complete_removal, locked_state),130) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, PROC_REF(complete_removal), locked_state),130) /obj/machinery/nanite_chamber/proc/complete_removal(locked_state) //TODO MACHINE DING diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 105ec3fd62..9bab9c78fb 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -219,7 +219,7 @@ return host_mob.notify_ghost_cloning("Your heart is being defibrillated by nanites. Re-enter your corpse if you want to be revived!") - addtimer(CALLBACK(src, .proc/zap), 50) + addtimer(CALLBACK(src, PROC_REF(zap)), 50) /datum/nanite_program/triggered/defib/proc/check_revivable() if(!iscarbon(host_mob)) //nonstandard biology diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm index 8bc43f5ba8..06b4b7c3de 100644 --- a/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/code/modules/research/nanites/nanite_programs/sensor.dm @@ -69,7 +69,7 @@ /datum/nanite_program/sensor/repeat/trigger() if(!..()) return - addtimer(CALLBACK(src, .proc/send_code), delay) + addtimer(CALLBACK(src, PROC_REF(send_code)), delay) /datum/nanite_program/sensor/relay_repeat name = "Relay Signal Repeater" @@ -115,7 +115,7 @@ /datum/nanite_program/sensor/relay_repeat/trigger() if(!..()) return - addtimer(CALLBACK(src, .proc/send_code), delay) + addtimer(CALLBACK(src, PROC_REF(send_code)), delay) /datum/nanite_program/sensor/relay_repeat/send_code() if(activated && relay_channel) @@ -382,10 +382,10 @@ /datum/nanite_program/sensor/voice/on_mob_add() . = ..() - RegisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) + RegisterSignal(host_mob, COMSIG_MOVABLE_HEAR, PROC_REF(on_hear)) /datum/nanite_program/sensor/voice/on_mob_remove() - UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) + UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, PROC_REF(on_hear)) /datum/nanite_program/sensor/voice/set_extra_setting(user, setting) if(setting == NES_SENT_CODE) diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm index 55596c6c1d..51eb0eb092 100644 --- a/code/modules/research/nanites/nanite_programs/suppression.dm +++ b/code/modules/research/nanites/nanite_programs/suppression.dm @@ -12,7 +12,7 @@ return to_chat(host_mob, "I start to feel very sleepy...") host_mob.drowsyness += 20 - addtimer(CALLBACK(host_mob, /mob/living.proc/Sleeping, 200), rand(60,200)) + addtimer(CALLBACK(host_mob, TYPE_PROC_REF(/mob/living, Sleeping), 200), rand(60,200)) /datum/nanite_program/paralyzing name = "Paralysis" diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm index a0deb51894..fef75ebe3f 100644 --- a/code/modules/research/nanites/nanite_programs/weapon.dm +++ b/code/modules/research/nanites/nanite_programs/weapon.dm @@ -85,7 +85,7 @@ return host_mob.visible_message("[host_mob] starts emitting a high-pitched buzzing, and [host_mob.p_their()] skin begins to glow...",\ "I start emitting a high-pitched buzzing, and my skin begins to glow...") - addtimer(CALLBACK(src, .proc/boom), CLAMP((nanites.nanite_volume * 0.35), 25, 150)) + addtimer(CALLBACK(src, PROC_REF(boom)), CLAMP((nanites.nanite_volume * 0.35), 25, 150)) /datum/nanite_program/triggered/explosive/proc/boom() var/nanite_amount = nanites.nanite_volume @@ -203,7 +203,7 @@ sent_directive = directive brainwash(host_mob, sent_directive) log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[directive]'.") - addtimer(CALLBACK(src, .proc/end_brainwashing), 600) + addtimer(CALLBACK(src, PROC_REF(end_brainwashing)), 600) /datum/nanite_program/triggered/comm/mind_control/proc/end_brainwashing() if(host_mob.mind && host_mob.mind.has_antag_datum(/datum/antagonist/brainwashed)) diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm index de10a43c0d..3dd60be2f4 100644 --- a/code/modules/research/nanites/public_chamber.dm +++ b/code/modules/research/nanites/public_chamber.dm @@ -45,9 +45,9 @@ //TODO OMINOUS MACHINE SOUNDS set_busy(TRUE, "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),60) - addtimer(CALLBACK(src, .proc/complete_injection, locked_state, attacker),80) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_falling"),60) + addtimer(CALLBACK(src, PROC_REF(complete_injection), locked_state, attacker),80) /obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state, mob/living/attacker) //TODO MACHINE DING @@ -72,9 +72,9 @@ locked = TRUE set_busy(TRUE, "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),40) - addtimer(CALLBACK(src, .proc/complete_cloud_change, locked_state, attacker),60) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_falling"),40) + addtimer(CALLBACK(src, PROC_REF(complete_cloud_change), locked_state, attacker),60) /obj/machinery/public_nanite_chamber/proc/complete_cloud_change(locked_state, mob/living/attacker) locked = locked_state @@ -154,7 +154,7 @@ . = TRUE - addtimer(CALLBACK(src, .proc/try_inject_nanites, attacker), 30) //If someone is shoved in give them a chance to get out before the injection starts + addtimer(CALLBACK(src, PROC_REF(try_inject_nanites), attacker), 30) //If someone is shoved in give them a chance to get out before the injection starts /obj/machinery/public_nanite_chamber/proc/try_inject_nanites(mob/living/attacker) if(occupant) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 55dcbcb951..0dc56cd5b1 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -103,4 +103,4 @@ stack_name = S.name use_power(min(1000, (amount_inserted / 100))) add_overlay("protolathe_[stack_name]") - addtimer(CALLBACK(src, /atom/proc/cut_overlay, "protolathe_[stack_name]"), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "protolathe_[stack_name]"), 10) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 0481b580ae..b0f9371dd3 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -64,7 +64,7 @@ if(. & EMP_PROTECT_SELF) return stat |= EMPED - addtimer(CALLBACK(src, .proc/unemp), 600) + addtimer(CALLBACK(src, PROC_REF(unemp)), 600) refresh_working() /obj/machinery/rnd/server/proc/unemp() diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index f4aae84b78..27ba3e090f 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -66,7 +66,7 @@ var/icon/bluespace /datum/status_effect/slimerecall/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/resistField) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(resistField)) to_chat(owner, "I feel a sudden tug from an unknown force, and feel a pull to bluespace!") to_chat(owner, "Resist if you wish avoid the force!") bluespace = icon('icons/effects/effects.dmi',"chronofield") @@ -98,7 +98,7 @@ var/obj/structure/ice_stasis/cube /datum/status_effect/frozenstasis/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/breakCube) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(breakCube)) cube = new /obj/structure/ice_stasis(get_turf(owner)) owner.forceMove(cube) owner.status_flags |= GODMODE diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index d226a0d9e4..02316e519b 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -260,7 +260,7 @@ Burning extracts: /obj/item/slimecross/burning/oil/do_effect(mob/user) user.visible_message("[user] activates [src]. It's going to explode!", "I activate [src]. It crackles in anticipation") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) /obj/item/slimecross/burning/oil/proc/boom() var/turf/T = get_turf(src) diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index c30f6d1d91..07c589943e 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -168,7 +168,7 @@ Charged extracts: if(!istype(H)) to_chat(user, "I must be a humanoid to use this!") return - var/racechoice = input(H, "Choose your slime subspecies.", "Slime Selection") as null|anything in sortList(subtypesof(/datum/species/jelly), /proc/cmp_typepaths_asc) + var/racechoice = input(H, "Choose your slime subspecies.", "Slime Selection") as null|anything in sortList(subtypesof(/datum/species/jelly), GLOBAL_PROC_REF(cmp_typepaths_asc)) if(!racechoice) to_chat(user, "I decide not to become a slime for now.") return @@ -195,7 +195,7 @@ Charged extracts: /obj/item/slimecross/charged/gold/do_effect(mob/user) user.visible_message("[src] starts shuddering violently!") - addtimer(CALLBACK(src, .proc/startTimer), 50) + addtimer(CALLBACK(src, PROC_REF(startTimer)), 50) /obj/item/slimecross/charged/gold/proc/startTimer() START_PROCESSING(SSobj, src) @@ -220,7 +220,7 @@ Charged extracts: /obj/item/slimecross/charged/oil/do_effect(mob/user) user.visible_message("[src] begins to shake with rapidly increasing force!") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) /obj/item/slimecross/charged/oil/proc/boom() explosion(get_turf(src), 2, 3, 4) //Much smaller effect than normal oils, but devastatingly strong where it does hit. diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index 388af5384d..4ba81b0baa 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -284,7 +284,7 @@ Chilling extracts: /obj/item/slimecross/chilling/oil/do_effect(mob/user) user.visible_message("[src] begins to shake with muted intensity!") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) /obj/item/slimecross/chilling/oil/proc/boom() explosion(get_turf(src), -1, -1, 10, 0) //Large radius, but mostly light damage, and no flash. diff --git a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm index 6f56740e47..d3f8a4772a 100644 --- a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm +++ b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm @@ -32,7 +32,7 @@ Self-sustaining extracts: return ..() /obj/item/autoslime/attack_self(mob/user) - var/reagentselect = input(user, "Choose the reagent the extract will produce.", "Self-sustaining Reaction") as null|anything in sortList(extract.activate_reagents, /proc/cmp_typepaths_asc) + var/reagentselect = input(user, "Choose the reagent the extract will produce.", "Self-sustaining Reaction") as null|anything in sortList(extract.activate_reagents, GLOBAL_PROC_REF(cmp_typepaths_asc)) var/amount = 5 var/secondary diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 842c59060f..9a955d1b74 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -119,12 +119,12 @@ hotkey_help.Grant(user) actions += hotkey_help - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, .proc/XenoSlimeClickCtrl) - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, .proc/XenoSlimeClickAlt) - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, .proc/XenoSlimeClickShift) - RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, .proc/XenoTurfClickShift) - RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, .proc/XenoTurfClickCtrl) - RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, PROC_REF(XenoSlimeClickCtrl)) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, PROC_REF(XenoSlimeClickAlt)) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, PROC_REF(XenoSlimeClickShift)) + RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, PROC_REF(XenoTurfClickShift)) + RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, PROC_REF(XenoTurfClickCtrl)) + RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, PROC_REF(XenoMonkeyClickCtrl)) //Checks for recycler on every interact, prevents issues with load order on certain maps. if(!connected_recycler) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 0655970650..1f7d252e8e 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -252,7 +252,7 @@ to_chat(user, "My glow is already enhanced!") return species.update_glow(user, 5) - addtimer(CALLBACK(species, /datum/species/jelly/luminescent.proc/update_glow, user, LUMINESCENT_DEFAULT_GLOW), 600) + addtimer(CALLBACK(species, TYPE_PROC_REF(/datum/species/jelly/luminescent, update_glow), user, LUMINESCENT_DEFAULT_GLOW), 600) to_chat(user, "I start glowing brighter.") if(SLIME_ACTIVATE_MAJOR) @@ -459,7 +459,7 @@ return to_chat(user, "I feel my skin harden and become more resistant.") species.armor += 25 - addtimer(CALLBACK(src, .proc/reset_armor, species), 1200) + addtimer(CALLBACK(src, PROC_REF(reset_armor), species), 1200) return 450 if(SLIME_ACTIVATE_MAJOR) diff --git a/code/modules/roguetown/roguecrafting/turfs.dm b/code/modules/roguetown/roguecrafting/turfs.dm index 3dfc4714be..20544dcc04 100644 --- a/code/modules/roguetown/roguecrafting/turfs.dm +++ b/code/modules/roguetown/roguecrafting/turfs.dm @@ -10,10 +10,9 @@ /datum/crafting_recipe/roguetown/turfs/woodfloor/TurfCheck(mob/user, turf/T) if(isclosedturf(T)) return - if(!istype(T, /turf/open/floor/rogue/dirt)) + if(!istype(T, /turf/open/floor/rogue)) if(!istype(T, /turf/open/transparent/openspace)) - if(!istype(T, /turf/open/floor/rogue/grass)) - return + return return TRUE /datum/crafting_recipe/roguetown/turfs/woodwall @@ -52,10 +51,9 @@ /datum/crafting_recipe/roguetown/turfs/stonefloor/TurfCheck(mob/user, turf/T) if(isclosedturf(T)) return - if(!istype(T, /turf/open/floor/rogue/dirt)) + if(!istype(T, /turf/open/floor/rogue)) if(!istype(T, /turf/open/transparent/openspace)) - if(!istype(T, /turf/open/floor/rogue/grass)) - return + return return TRUE /datum/crafting_recipe/roguetown/turfs/stonewall @@ -130,4 +128,4 @@ return if(!istype(T, /turf/open/floor/rogue)) return - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/roguetown/roguejobs/alchemist/recipe/reagents.dm b/code/modules/roguetown/roguejobs/alchemist/recipe/reagents.dm index 755464e5fc..f5b5f103d0 100644 --- a/code/modules/roguetown/roguejobs/alchemist/recipe/reagents.dm +++ b/code/modules/roguetown/roguejobs/alchemist/recipe/reagents.dm @@ -73,7 +73,7 @@ else if(setting_type) if(step_away(X, T) && moving_power > 1) - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_away, X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step_away), X, T), 2) else if(step_towards(X, T) && moving_power > 1) - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_towards, X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step_towards), X, T), 2) diff --git a/code/modules/roguetown/roguejobs/blacksmith/forge.dm b/code/modules/roguetown/roguejobs/blacksmith/forge.dm index 62b43651b2..dc343358e0 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/forge.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/forge.dm @@ -16,7 +16,7 @@ if(T.hingot) var/tyme = world.time T.hott = tyme - addtimer(CALLBACK(T, /obj/item/rogueweapon/tongs.proc/make_unhot, tyme), 100) + addtimer(CALLBACK(T, TYPE_PROC_REF(/obj/item/rogueweapon/tongs, make_unhot), tyme), 100) T.update_icon() user.visible_message("[user] heats the bar.") return diff --git a/code/modules/roguetown/roguejobs/blacksmith/smelter.dm b/code/modules/roguetown/roguejobs/blacksmith/smelter.dm index 767dab8af7..abae497db0 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/smelter.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/smelter.dm @@ -31,7 +31,7 @@ if(on) var/tyme = world.time T.hott = tyme - addtimer(CALLBACK(T, /obj/item/rogueweapon/tongs.proc/make_unhot, tyme), 50) + addtimer(CALLBACK(T, TYPE_PROC_REF(/obj/item/rogueweapon/tongs, make_unhot), tyme), 50) T.update_icon() return if(on) diff --git a/code/modules/roguetown/roguejobs/gravedigger/gravemarker.dm b/code/modules/roguetown/roguejobs/gravedigger/gravemarker.dm index a422ff8bf0..bca254fdcf 100644 --- a/code/modules/roguetown/roguejobs/gravedigger/gravemarker.dm +++ b/code/modules/roguetown/roguejobs/gravedigger/gravemarker.dm @@ -45,29 +45,46 @@ to_chat(src, "My soul finds peace buried in creation.") -/obj/structure/gravemarker/OnCrafted(dir) +/obj/structure/gravemarker/OnCrafted(dir, user) icon_state = "gravemarker[rand(1,3)]" for(var/obj/structure/closet/dirthole/D in loc) - bodysearch(D) + bodysearch(D, user) for(var/obj/structure/closet/burial_shroud/B in D) - bodysearch(B) + bodysearch(B, user) ..() -/obj/structure/gravemarker/proc/bodysearch(atom/movable/AM) +/obj/structure/gravemarker/proc/bodysearch(atom/movable/AM, mob/user) if(!AM) return for(var/mob/living/L in AM) if(L.stat == DEAD) + if(ishuman(L) && !HAS_TRAIT(L, TRAIT_BURIED_COIN_GIVEN)) + var/mob/living/carbon/human/H = L + if(istype(H.mouth, /obj/item/roguecoin)) + var/obj/item/roguecoin/coin = H.mouth + if(coin.quantity == 1) // no fucking stuffing their mouth full of a fuck ton of coins + for(var/obj/effect/landmark/underworld/A in GLOB.landmarks_list) + var/turf/T = get_turf(A) + T = locate(T.x + rand(-3, 3), T.y + rand(-3, 3), T.z) + new /obj/item/underworld/coin/notracking(T) + T.visible_message("A coin falls from above.") + ADD_TRAIT(H, TRAIT_BURIED_COIN_GIVEN, TRAIT_GENERIC) + if(user?.ckey) + adjust_playerquality(0.1, user.ckey) + qdel(H.mouth) + H.update_inv_mouth() + break if(L.mind && L.mind.has_antag_datum(/datum/antagonist/zombie)) L.mind.remove_antag_datum(/datum/antagonist/zombie) var/mob/dead/observer/O //We probably went to the underworld if(!L.client) - var/client/friendo = GLOB.directory[lowertext(L.mind.key)] - if(friendo && istype(friendo.mob, /mob/living/carbon/spirit)) - var/mob/living/carbon/spirit/lost_soul = friendo.mob - lost_soul = L.ghostize(force_respawn = TRUE) - qdel(lost_soul) + if(L.mind) + var/client/friendo = GLOB.directory[lowertext(L.mind.key)] + if(friendo && istype(friendo.mob, /mob/living/carbon/spirit)) + var/mob/living/carbon/spirit/lost_soul = friendo.mob + lost_soul = L.ghostize(force_respawn = TRUE) + qdel(lost_soul) else O = L.ghostize(force_respawn = TRUE) if(O) diff --git a/code/modules/roguetown/roguemachine/steward.dm b/code/modules/roguetown/roguemachine/steward.dm index e5d3d5e216..9c82df03a8 100644 --- a/code/modules/roguetown/roguemachine/steward.dm +++ b/code/modules/roguetown/roguemachine/steward.dm @@ -62,7 +62,7 @@ SStreasury.log_to_steward("-[amt] imported [D.name]") scom_announce("Rockhill imports [D.name] for [amt] mammon.", ) D.raise_demand() - addtimer(CALLBACK(src, .proc/do_import, D.type), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_import), D.type), 10 SECONDS) if(href_list["export"]) var/datum/roguestock/D = locate(href_list["export"]) in SStreasury.stockpile_datums if(!D) @@ -196,7 +196,7 @@ playsound(T, 'sound/misc/hiss.ogg', 100, FALSE, -1) number += 1 testing("number2 is [number]") - addtimer(CALLBACK(src, .proc/do_import, D.type, number), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_import), D.type, number), 3 SECONDS) /obj/structure/roguemachine/steward/attack_hand(mob/living/user) . = ..() diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index 2230a0d779..b6c518505f 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -297,7 +297,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) if(break_that_sucker) QDEL_IN(src, 10) else - addtimer(CALLBACK(src, .proc/rebuild), 55) + addtimer(CALLBACK(src, PROC_REF(rebuild)), 55) /obj/structure/stone_tile/proc/rebuild() pixel_x = initial(pixel_x) diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index 50bf9b3e11..7f07ea7697 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -24,7 +24,7 @@ know it'll be worth it.
") icon_state = "slots2" playsound(src, 'sound/blank.ogg', 50, FALSE) - addtimer(CALLBACK(src, .proc/determine_victor, user), 50) + addtimer(CALLBACK(src, PROC_REF(determine_victor), user), 50) /obj/structure/cursed_slot_machine/proc/determine_victor(mob/living/user) icon_state = "slots1" @@ -50,7 +50,7 @@ /obj/structure/cursed_money/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/collapse), 600) + addtimer(CALLBACK(src, PROC_REF(collapse)), 600) /obj/structure/cursed_money/proc/collapse() visible_message("[src] falls in on itself, \ diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 16a038e4b3..9a573be60b 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -26,7 +26,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) /obj/machinery/keycard_auth/Initialize() . = ..() - ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent)) + ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, PROC_REF(triggerEvent))) /obj/machinery/keycard_auth/Destroy() GLOB.keycard_events.clearEvent("triggerEvent", ev) @@ -84,7 +84,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) event = event_type waiting = 1 GLOB.keycard_events.fireEvent("triggerEvent", src) - addtimer(CALLBACK(src, .proc/eventSent), 20) + addtimer(CALLBACK(src, PROC_REF(eventSent)), 20) /obj/machinery/keycard_auth/proc/eventSent() triggerer = null @@ -94,7 +94,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) /obj/machinery/keycard_auth/proc/triggerEvent(source) icon_state = "auth_on" event_source = source - addtimer(CALLBACK(src, .proc/eventTriggered), 20) + addtimer(CALLBACK(src, PROC_REF(eventTriggered)), 20) /obj/machinery/keycard_auth/proc/eventTriggered() icon_state = "auth_off" diff --git a/code/modules/shuttle/arrivals.dm b/code/modules/shuttle/arrivals.dm index 6afa840703..29de97c994 100644 --- a/code/modules/shuttle/arrivals.dm +++ b/code/modules/shuttle/arrivals.dm @@ -194,7 +194,7 @@ if(mode != SHUTTLE_CALL) AnnounceArrival(mob, rank) else - LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, .proc/AnnounceArrival, mob, rank)) + LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(AnnounceArrival), mob, rank)) /obj/docking_port/mobile/arrivals/vv_edit_var(var_name, var_value) switch(var_name) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 31c8bbdba6..c02edb8023 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -118,7 +118,7 @@ if(designate_time && (landing_clear != SHUTTLE_DOCKER_BLOCKED)) to_chat(current_user, "Targeting transit location, please wait [DisplayTimeText(designate_time)]...") designating_target_loc = the_eye.loc - var/wait_completed = do_after(current_user, designate_time, FALSE, designating_target_loc, TRUE, CALLBACK(src, /obj/machinery/computer/camera_advanced/shuttle_docker/proc/canDesignateTarget)) + var/wait_completed = do_after(current_user, designate_time, FALSE, designating_target_loc, TRUE, CALLBACK(src, TYPE_PROC_REF(/obj/machinery/computer/camera_advanced/shuttle_docker, canDesignateTarget))) designating_target_loc = null if(!current_user) return diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index d7f598131f..ddbfab9331 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -179,7 +179,7 @@ All ShuttleMove procs go here for(var/obj/machinery/door/airlock/A in range(1, src)) // includes src A.shuttledocked = FALSE A.air_tight = TRUE - INVOKE_ASYNC(A, /obj/machinery/door/.proc/close) + INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door, close)) /obj/machinery/door/airlock/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() @@ -393,4 +393,4 @@ All ShuttleMove procs go here /obj/effect/abstract/proximity_checker/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) //timer so it only happens once - addtimer(CALLBACK(monitor, /datum/proximity_monitor/proc/SetRange, monitor.current_range, TRUE), 0, TIMER_UNIQUE) + addtimer(CALLBACK(monitor, TYPE_PROC_REF(/datum/proximity_monitor, SetRange), monitor.current_range, TRUE), 0, TIMER_UNIQUE) diff --git a/code/modules/shuttle/ripple.dm b/code/modules/shuttle/ripple.dm index ff1e8f32f2..68f39dfc25 100644 --- a/code/modules/shuttle/ripple.dm +++ b/code/modules/shuttle/ripple.dm @@ -12,7 +12,7 @@ /obj/effect/abstract/ripple/Initialize(mapload, time_left) . = ..() animate(src, alpha=255, time=time_left) - addtimer(CALLBACK(src, .proc/stop_animation), 8, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, PROC_REF(stop_animation)), 8, TIMER_CLIENT_TIME) /obj/effect/abstract/ripple/proc/stop_animation() icon_state = "shieldsparkles" diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 14bd657f7e..80b2f6d0ef 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -94,7 +94,7 @@ L.visible_message("A strange purple glow wraps itself around [L] as [L.p_they()] suddenly fall[L.p_s()] unconscious.", "[desc]") // Don't let them sit suround unconscious forever - addtimer(CALLBACK(src, .proc/sleeper_dreams, L), 100) + addtimer(CALLBACK(src, PROC_REF(sleeper_dreams), L), 100) // Existing sleepers for(var/i in found) @@ -146,7 +146,7 @@ /mob/living/simple_animal/drone/snowflake/bardrone/Initialize() . = ..() access_card.access |= ACCESS_CENT_BAR - RegisterSignal(src, COMSIG_ENTER_AREA, .proc/check_barstaff_godmode) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(check_barstaff_godmode)) check_barstaff_godmode() /mob/living/simple_animal/hostile/alien/maid/barmaid @@ -166,7 +166,7 @@ access_card.access = C.get_access() access_card.access |= ACCESS_CENT_BAR ADD_TRAIT(access_card, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) - RegisterSignal(src, COMSIG_ENTER_AREA, .proc/check_barstaff_godmode) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(check_barstaff_godmode)) check_barstaff_godmode() /mob/living/simple_animal/hostile/alien/maid/barmaid/Destroy() diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index eabfbaef2e..db9f504b4c 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -86,7 +86,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( testing("docked away") sell() buy() - addtimer(CALLBACK(SSshuttle, /datum/controller/subsystem/shuttle/.proc/moveShuttle, "supply", "supply_home", TRUE), 100) + addtimer(CALLBACK(SSshuttle, TYPE_PROC_REF(/datum/controller/subsystem/shuttle, moveShuttle), "supply", "supply_home", TRUE), 100) /obj/docking_port/mobile/supply/proc/buy() var/list/obj/cat_boxes = list() diff --git a/code/modules/spells/roguetown/cleric.dm b/code/modules/spells/roguetown/cleric.dm index 90ae0a83ca..e50d053b4e 100644 --- a/code/modules/spells/roguetown/cleric.dm +++ b/code/modules/spells/roguetown/cleric.dm @@ -177,7 +177,7 @@ return FALSE L.adjust_fire_stacks(5) L.IgniteMob() - addtimer(CALLBACK(L, /mob/living/proc/ExtinguishMob), 4 SECONDS) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, ExtinguishMob)), 4 SECONDS) return TRUE // Spell interaction with ignitable objects (burn wooden things, light torches up) @@ -357,12 +357,12 @@ var/mob/living/carbon/spirit/capturedsoul = null var/list/souloptions = list() var/list/itemstorestore = list() - for(var/mob/living/carbon/spirit/S in world) + for(var/mob/living/carbon/spirit/S in GLOB.mob_list) souloptions += S.livingname var/pickedsoul = input(user, "Which soul should I commune with?", "Available Souls") as null|anything in souloptions if(!pickedsoul) return - for(var/mob/living/carbon/spirit/P in world) + for(var/mob/living/carbon/spirit/P in GLOB.mob_list) if(P.livingname == pickedsoul) to_chat(P, "You feel yourself being pulled out of the underworld.") sleep(20) @@ -383,7 +383,7 @@ spawn(1200) to_chat(user, "The soul returns to the underworld.") to_chat(capturedsoul, "You feel yourself being pulled back to the underworld.") - for(var/obj/effect/landmark/underworld/A in world) + for(var/obj/effect/landmark/underworld/A in GLOB.landmarks_list) capturedsoul.loc = A.loc capturedsoul.invisibility = initial(capturedsoul.invisibility) for(var/I in itemstorestore) diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index ddeba652b5..4ae996b1d9 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -169,7 +169,7 @@ /obj/effect/proc_holder/spell/aimed/spell_cards/on_activation(mob/M) QDEL_NULL(lockon_component) - lockon_component = M.AddComponent(/datum/component/lockon_aiming, 5, typecacheof(list(/mob/living)), 1, null, CALLBACK(src, .proc/on_lockon_component)) + lockon_component = M.AddComponent(/datum/component/lockon_aiming, 5, typecacheof(list(/mob/living)), 1, null, CALLBACK(src, PROC_REF(on_lockon_component))) /obj/effect/proc_holder/spell/aimed/spell_cards/proc/on_lockon_component(list/locked_weakrefs) if(!length(locked_weakrefs)) diff --git a/code/modules/spells/spell_types/area_teleport.dm b/code/modules/spells/spell_types/area_teleport.dm index fee0c3e947..c7ca962a1d 100644 --- a/code/modules/spells/spell_types/area_teleport.dm +++ b/code/modules/spells/spell_types/area_teleport.dm @@ -17,7 +17,7 @@ return invocation(thearea,user) if(charge_type == "recharge" && recharge) - INVOKE_ASYNC(src, .proc/start_recharge) + INVOKE_ASYNC(src, PROC_REF(start_recharge)) cast(targets,thearea,user) after_cast(targets) diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 817a9c275f..3dd6db25fa 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -216,7 +216,7 @@ target.playsound_local(get_turf(target), 'sound/blank.ogg', 50, 1) user.playsound_local(get_turf(user), 'sound/blank.ogg', 50, 1) target.become_blind(ABYSSAL_GAZE_BLIND) - addtimer(CALLBACK(src, .proc/cure_blindness, target), 40) + addtimer(CALLBACK(src, PROC_REF(cure_blindness), target), 40) target.adjust_bodytemperature(-200) /obj/effect/proc_holder/spell/targeted/abyssal_gaze/proc/cure_blindness(mob/target) diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 4683363cf9..3879b3e503 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -161,7 +161,7 @@ client.eye = src visible_message("[src] appears in a fiery blaze!") playsound(get_turf(src), 'sound/blank.ogg', 100, TRUE, -1) - addtimer(CALLBACK(src, .proc/fakefireextinguish), 15, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(fakefireextinguish)), 15, TIMER_UNIQUE) /obj/effect/proc_holder/spell/targeted/sintouch name = "Sin Touch" diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index d4c36fc85d..6661c76bae 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -20,7 +20,7 @@ /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded playsound(get_turf(user), 'sound/blank.ogg', 50, TRUE, -1) for(var/mob/living/target in targets) - INVOKE_ASYNC(src, .proc/do_jaunt, target) + INVOKE_ASYNC(src, PROC_REF(do_jaunt), target) /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/do_jaunt(mob/living/target) target.notransform = 1 diff --git a/code/modules/spells/spell_types/genetic.dm b/code/modules/spells/spell_types/genetic.dm index 17480ee622..9b6e16540f 100644 --- a/code/modules/spells/spell_types/genetic.dm +++ b/code/modules/spells/spell_types/genetic.dm @@ -29,7 +29,7 @@ ADD_TRAIT(target, A, GENETICS_SPELL) active_on += target if(duration < charge_max) - addtimer(CALLBACK(src, .proc/remove, target), duration, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(remove), target), duration, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/effect/proc_holder/spell/targeted/genetic/Destroy() . = ..() diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index 1e54f5ee55..341eae2ec2 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -16,9 +16,9 @@ SEND_SOUND(user, sound('sound/blank.ogg')) for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) - INVOKE_ASYNC(src, .proc/open_door, door) + INVOKE_ASYNC(src, PROC_REF(open_door), door) for(var/obj/structure/closet/C in T.contents) - INVOKE_ASYNC(src, .proc/open_closet, C) + INVOKE_ASYNC(src, PROC_REF(open_closet), C) /obj/effect/proc_holder/spell/aoe_turf/knock/proc/open_door(obj/machinery/door/door) if(istype(door, /obj/machinery/door/airlock)) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 770c05984a..ee6aa7eabd 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -115,7 +115,7 @@ return if(!mind.current || (mind.current && mind.current.stat == DEAD)) - addtimer(CALLBACK(src, .proc/rise), respawn_time, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(rise)), respawn_time, TIMER_UNIQUE) /obj/item/phylactery/proc/rise() if(mind.current && mind.current.stat != DEAD) diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index e4d16007d4..e763d78cc8 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -92,7 +92,7 @@ for (var/obj/item/storage/box/mime/B in T) user.put_in_hands(B) B.alpha = 255 - addtimer(CALLBACK(B, /obj/item/storage/box/mime/.proc/emptyStorage, FALSE), (summon_lifespan - 1)) + addtimer(CALLBACK(B, TYPE_PROC_REF(/obj/item/storage/box/mime, emptyStorage), FALSE), (summon_lifespan - 1)) /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_box/Click() if(usr && usr.mind) diff --git a/code/modules/spells/spell_types/spacetime_distortion.dm b/code/modules/spells/spell_types/spacetime_distortion.dm index 4b355a25d0..4901d5728b 100644 --- a/code/modules/spells/spell_types/spacetime_distortion.dm +++ b/code/modules/spells/spell_types/spacetime_distortion.dm @@ -36,7 +36,7 @@ perform(turf_steps,user=user) /obj/effect/proc_holder/spell/spacetime_dist/after_cast(list/targets) - addtimer(CALLBACK(src, .proc/clean_turfs), duration) + addtimer(CALLBACK(src, PROC_REF(clean_turfs)), duration) /obj/effect/proc_holder/spell/spacetime_dist/cast(list/targets, mob/user = usr) effects = list() diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 06e31d6e58..ed9bac7d5a 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -422,7 +422,8 @@ if(!animal_origin) var/mob/living/carbon/human/H = C should_draw_greyscale = FALSE - + if(!H.dna || !H.dna.species) + return var/datum/species/S = H.dna.species species_id = S.limbs_id if(H.gender == MALE) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index a72e73703a..1468054ddb 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -170,6 +170,8 @@ else if(!animal_origin) var/mob/living/carbon/human/H = C + if(!H.dna || !H.dna.species) + return ..() var/datum/species/S = H.dna.species //Facial hair diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index 0a5f1f4ffe..11f6dae890 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -23,7 +23,7 @@ synthesizing = TRUE to_chat(owner, "I feel less hungry...") owner.adjust_nutrition(50) - addtimer(CALLBACK(src, .proc/synth_cool), 50) + addtimer(CALLBACK(src, PROC_REF(synth_cool)), 50) /obj/item/organ/cyberimp/chest/nutriment/proc/synth_cool() synthesizing = FALSE @@ -57,7 +57,7 @@ /obj/item/organ/cyberimp/chest/reviver/on_life() if(reviving) if(owner.stat == UNCONSCIOUS) - addtimer(CALLBACK(src, .proc/heal), 30) + addtimer(CALLBACK(src, PROC_REF(heal)), 30) else cooldown = revive_cost + world.time reviving = FALSE @@ -104,7 +104,7 @@ if(H.stat != DEAD && prob(50 / severity) && H.can_heartattack()) H.set_heartattack(TRUE) to_chat(H, "I feel a horrible agony in my chest!") - addtimer(CALLBACK(src, .proc/undo_heart_attack), 600 / severity) + addtimer(CALLBACK(src, PROC_REF(undo_heart_attack)), 600 / severity) /obj/item/organ/cyberimp/chest/reviver/proc/undo_heart_attack() var/mob/living/carbon/human/H = owner @@ -151,7 +151,7 @@ on = TRUE if(allow_thrust(0.01)) ion_trail.start() - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/move_react) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) owner.add_movespeed_modifier(MOVESPEED_ID_CYBER_THRUSTER, priority=100, multiplicative_slowdown=-2, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK) if(!silent) to_chat(owner, "I turn my thrusters set on.") diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index f14ffd952a..e6ea9d50b1 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -115,11 +115,11 @@ /obj/item/organ/cyberimp/brain/anti_stun/Insert() . = ..() - RegisterSignal(owner, signalCache, .proc/on_signal) + RegisterSignal(owner, signalCache, PROC_REF(on_signal)) /obj/item/organ/cyberimp/brain/anti_stun/proc/on_signal(datum/source, amount) if(!(organ_flags & ORGAN_FAILING) && amount > 0) - addtimer(CALLBACK(src, .proc/clear_stuns), stun_cap_amount, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(clear_stuns)), stun_cap_amount, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/organ/cyberimp/brain/anti_stun/proc/clear_stuns() if(owner || !(organ_flags & ORGAN_FAILING)) @@ -133,7 +133,7 @@ if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF) return organ_flags |= ORGAN_FAILING - addtimer(CALLBACK(src, .proc/reboot), 90 / severity) + addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity) /obj/item/organ/cyberimp/brain/anti_stun/proc/reboot() organ_flags &= ~ORGAN_FAILING diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 396a53d1d5..6f2fd3b291 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -300,7 +300,7 @@ /obj/item/organ/eyes/robotic/glow/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE) . = ..() - RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, .proc/update_visuals) + RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, PROC_REF(update_visuals)) /obj/item/organ/eyes/robotic/glow/Remove(mob/living/carbon/M, special = FALSE) . = ..() diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 4f221ab3c0..b08402772d 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -30,7 +30,7 @@ /obj/item/organ/heart/Remove(mob/living/carbon/M, special = 0) ..() if(!special) - addtimer(CALLBACK(src, .proc/stop_if_unowned), 120) + addtimer(CALLBACK(src, PROC_REF(stop_if_unowned)), 120) /obj/item/organ/heart/proc/stop_if_unowned() if(!owner) @@ -42,7 +42,7 @@ user.visible_message("[user] squeezes [src] to \ make it beat again!","I squeeze [src] to make it beat again!") Restart() - addtimer(CALLBACK(src, .proc/stop_if_unowned), 80) + addtimer(CALLBACK(src, PROC_REF(stop_if_unowned)), 80) /obj/item/organ/heart/proc/Stop() beating = 0 @@ -199,7 +199,7 @@ if(. & EMP_PROTECT_SELF) return Stop() - addtimer(CALLBACK(src, .proc/Restart), 20/severity SECONDS) + addtimer(CALLBACK(src, PROC_REF(Restart)), 20/severity SECONDS) damage += 100/severity /obj/item/organ/heart/cybernetic/on_life() diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index f61b300078..bf97455f44 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -106,8 +106,8 @@ /obj/item/organ/stomach/ethereal/Insert(mob/living/carbon/M, special = 0) ..() - RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/charge) - RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_electrocute) + RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(charge)) + RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_electrocute)) /obj/item/organ/stomach/ethereal/Remove(mob/living/carbon/M, special = 0) UnregisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT) diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 73050f6438..82b6593df2 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -29,15 +29,15 @@ if(say_mod && M.dna && M.dna.species) M.dna.species.say_mod = say_mod if (modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) M.UnregisterSignal(M, COMSIG_MOB_SAY) /obj/item/organ/tongue/Remove(mob/living/carbon/M, special = 0) ..() if(say_mod && M.dna && M.dna.species) M.dna.species.say_mod = initial(M.dna.species.say_mod) - UnregisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) - M.RegisterSignal(M, COMSIG_MOB_SAY, /mob/living/carbon/.proc/handle_tongueless_speech) + UnregisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + M.RegisterSignal(M, COMSIG_MOB_SAY, TYPE_PROC_REF(/mob/living/carbon, handle_tongueless_speech)) /obj/item/organ/tongue/could_speak_in_language(datum/language/dt) return is_type_in_typecache(dt, languages_possible) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 9de4745ede..9405e2b5b5 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -406,7 +406,7 @@ for(var/iter in 1 to 5 * power_multiplier) for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step, L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1)) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1)) //WALK else if((findtext(message, walk_words))) @@ -428,32 +428,32 @@ else if((findtext(message, helpintent_words))) cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HELP), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_HELP), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //DISARM INTENT else if((findtext(message, disarmintent_words))) cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_DISARM), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_DISARM), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //GRAB INTENT else if((findtext(message, grabintent_words))) cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_GRAB), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_GRAB), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //HARM INTENT else if((findtext(message, harmintent_words))) cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) - addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HARM), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_HARM), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //THROW/CATCH @@ -507,7 +507,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "dance"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "dance"), 5 * i) i++ //JUMP @@ -517,7 +517,7 @@ var/mob/living/L = V if(prob(25)) addtimer(CALLBACK(L, /atom/movable/, "HOW HIGH?!!"), 5 * i) - addtimer(CALLBACK(L, /mob/living/.proc/emote, "jump"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "jump"), 5 * i) i++ //SALUTE @@ -525,7 +525,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "salute"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "salute"), 5 * i) i++ //PLAY DEAD @@ -533,7 +533,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "deathgasp"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "deathgasp"), 5 * i) i++ //PLEASE CLAP @@ -541,13 +541,13 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "clap"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "clap"), 5 * i) i++ //HONK else if((findtext(message, honk_words))) cooldown = COOLDOWN_MEME - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, get_turf(user), 'sound/blank.ogg', 300, 1), 25) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(user), 'sound/blank.ogg', 300, 1), 25) if(user.mind && user.mind.assigned_role == "Clown") for(var/mob/living/carbon/C in listeners) C.slip(140 * power_multiplier) diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index 216b21bda4..af54b797e9 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -88,7 +88,7 @@ Notes: /datum/tooltip/proc/hide() if (queueHide) - addtimer(CALLBACK(src, .proc/do_hide), 1) + addtimer(CALLBACK(src, PROC_REF(do_hide)), 1) else do_hide() diff --git a/code/modules/underworld/underworld.dm b/code/modules/underworld/underworld.dm index 4c966edaba..6159a27f2d 100644 --- a/code/modules/underworld/underworld.dm +++ b/code/modules/underworld/underworld.dm @@ -10,7 +10,7 @@ if(D.buried && D.funeral) D.returntolobby() return - for(var/obj/effect/landmark/underworld/A in world) + for(var/obj/effect/landmark/underworld/A in GLOB.landmarks_list) var/mob/living/carbon/spirit/O = new /mob/living/carbon/spirit(A.loc) O.livingname = mob.name O.ckey = ckey @@ -57,15 +57,6 @@ qdel(src) return -/proc/coin_upkeep() - var/amountinworld = 0 - for(var/obj/item/underworld/coin/A in world) - amountinworld += 1 - if(amountinworld < 3) - for(var/obj/effect/landmark/underworldcoin/B in world) - new /obj/item/underworld/coin(B.loc) - - // shit that eventually will need moved elsewhere /obj/item/flashlight/lantern/shrunken name = "shrunken lamp" @@ -157,20 +148,48 @@ else to_chat(user, "It's LOCKED.") +GLOBAL_LIST_EMPTY(underworld_coins) + /obj/item/underworld/coin name = "The Toll" desc = "This is more than just a coin." icon = 'icons/roguetown/underworld/enigma_husks.dmi' icon_state = "soultoken_floor" + var/should_track = TRUE + +/obj/item/underworld/coin/Initialize() + . = ..() + if(should_track) + GLOB.underworld_coins |= src + +/obj/item/underworld/coin/Destroy() + if(should_track) + GLOB.underworld_coins -= src + coin_upkeep() + return ..() /obj/item/underworld/coin/pickup(mob/user) ..() + if(should_track) + GLOB.underworld_coins -= src + coin_upkeep() icon_state = "soultoken" /obj/item/underworld/coin/dropped(mob/user) ..() + if(should_track) + GLOB.underworld_coins |= src icon_state = "soultoken_floor" +/obj/item/underworld/coin/notracking + should_track = FALSE + +/proc/coin_upkeep() + if(length(GLOB.underworld_coins) < 3) + for(var/obj/effect/landmark/underworldcoin/B in GLOB.landmarks_list) + new /obj/item/underworld/coin(B.loc) + + // why not also some mob stuff too /mob/living/simple_animal/hostile/rogue/demon name = "demon" diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm index 20965de170..edda57a304 100644 --- a/code/modules/vehicles/cars/car.dm +++ b/code/modules/vehicles/cars/car.dm @@ -80,7 +80,7 @@ if(occupant_amount() >= max_occupants) return FALSE var/atom/old_loc = loc - if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, /obj/vehicle/sealed/car/proc/is_car_stationary, old_loc))) + if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, TYPE_PROC_REF(/obj/vehicle/sealed/car, is_car_stationary), old_loc))) mob_forced_enter(M, silent) return TRUE return FALSE diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 600b7569ed..420cab5761 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -27,7 +27,7 @@ var/mob/living/carbon/human/H = M if(H.mind && H.mind.assigned_role == "Clown") //Ensures only clowns can drive the car. (Including more at once) add_control_flags(H, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION) - RegisterSignal(H, COMSIG_MOB_CLICKON, .proc/FireCannon) + RegisterSignal(H, COMSIG_MOB_CLICKON, PROC_REF(FireCannon)) M.log_message("has entered [src] as a possible driver", LOG_ATTACK) return add_control_flags(M, VEHICLE_CONTROL_KIDNAPPED) @@ -125,7 +125,7 @@ visible_message("[user] presses one of the colorful buttons on [src], and the clown car turns on its singularity disguise system.") icon = 'icons/obj/singularity.dmi' icon_state = "singularity_s1" - addtimer(CALLBACK(src, .proc/ResetIcon), 100) + addtimer(CALLBACK(src, PROC_REF(ResetIcon)), 100) if(4) visible_message("[user] presses one of the colorful buttons on [src], and the clown car spews out a cloud of laughing gas.") var/datum/reagents/R = new/datum/reagents(300) @@ -138,7 +138,7 @@ if(5) visible_message("[user] presses one of the colorful buttons on [src], and the clown car starts dropping an oil trail.") droppingoil = TRUE - addtimer(CALLBACK(src, .proc/StopDroppingOil), 30) + addtimer(CALLBACK(src, PROC_REF(StopDroppingOil)), 30) if(6) visible_message("[user] presses one of the colorful buttons on [src], and the clown car lets out a comedic toot.") playsound(src, 'sound/blank.ogg', 100) @@ -160,7 +160,7 @@ cannonmode = FALSE flick("clowncar_fromfire", src) icon_state = "clowncar" - addtimer(CALLBACK(src, .proc/LeaveCannonMode), 20) + addtimer(CALLBACK(src, PROC_REF(LeaveCannonMode)), 20) playsound(src, 'sound/blank.ogg', 75) visible_message("The [src] starts going back into mobile mode.") else @@ -168,7 +168,7 @@ flick("clowncar_tofire", src) icon_state = "clowncar_fire" visible_message("The [src] opens up and reveals a large cannon.") - addtimer(CALLBACK(src, .proc/EnterCannonMode), 20) + addtimer(CALLBACK(src, PROC_REF(EnterCannonMode)), 20) playsound(src, 'sound/blank.ogg', 75) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 969ccedf5c..751b3393fd 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -141,7 +141,7 @@ if(location) location.hotspot_expose(1000,1000) sparks.start() //the most radical way to start plasma fires - addtimer(CALLBACK(src, .proc/grind), 2) + addtimer(CALLBACK(src, PROC_REF(grind)), 2) return else grinding = FALSE diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 872b04cf18..f2de97759c 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -226,5 +226,5 @@ if(locate(/obj/structure/table) in V.loc.contents) V.grinding = TRUE V.icon_state = "[V.board_icon]-grind" - addtimer(CALLBACK(V, /obj/vehicle/ridden/scooter/skateboard/.proc/grind), 2) + addtimer(CALLBACK(V, TYPE_PROC_REF(/obj/vehicle/ridden/scooter/skateboard, grind)), 2) next_ollie = world.time + 5 diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index 726043c82d..47efe81e2e 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -23,7 +23,7 @@ /obj/vehicle/ridden/wheelchair/ComponentInitialize() //Since it's technically a chair I want it to have chair properties . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null) /obj/vehicle/ridden/wheelchair/obj_destruction(damage_flag) new /obj/item/stack/rods(drop_location(), 1) diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index cb19a1ff8b..b606b34199 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -65,7 +65,7 @@ not even death can stop, you will rise again!") var/revive_time = rand(revive_time_min, revive_time_max) var/flags = TIMER_STOPPABLE - timer_id = addtimer(CALLBACK(src, .proc/zombify), revive_time, flags) + timer_id = addtimer(CALLBACK(src, PROC_REF(zombify)), revive_time, flags) /obj/item/organ/zombie_infection/proc/zombify() timer_id = null diff --git a/roguetown.dme b/roguetown.dme index 40358b082b..e92ee575d5 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -8,6 +8,7 @@ // END_PREFERENCES // BEGIN_INCLUDE #include "_maps\_basemap.dm" +#include "code\__byond_version_compat.dm" #include "code\_compile_options.dm" #include "code\rt.dm" #include "code\world.dm" @@ -2104,6 +2105,7 @@ #include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\rogue.dm" #include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\sorceress.dm" #include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\warrior.dm" +#include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\donator\dwarfwarrior.dm" #include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\donator\grenzelhoft.dm" #include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\donator\paladin.dm" #include "code\modules\jobs\job_types\roguetown\adventurer\types\combat\donator\vaquero.dm"