diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index 901dd8754d7..50774abc3b1 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -212,11 +212,11 @@ proc/tg_list2text(list/list, glue=",")
/proc/angle2dir(var/degree)
degree = ((degree+22.5)%365)
if(degree < 45) return NORTH
- if(degree < 90) return NORTH|EAST
+ if(degree < 90) return NORTHEAST
if(degree < 135) return EAST
- if(degree < 180) return SOUTH|EAST
+ if(degree < 180) return SOUTHEAST
if(degree < 225) return SOUTH
- if(degree < 270) return SOUTH|WEST
+ if(degree < 270) return SOUTHWEST
if(degree < 315) return WEST
return NORTH|WEST
@@ -224,24 +224,15 @@ proc/tg_list2text(list/list, glue=",")
/proc/dir2angle(var/D)
switch(D)
- if(1)
- return 0
- if(2)
- return 180
- if(4)
- return 90
- if(8)
- return 270
- if(5)
- return 45
- if(6)
- return 135
- if(9)
- return 315
- if(10)
- return 225
- else
- return null
+ if(NORTH) return 0
+ if(SOUTH) return 180
+ if(EAST) return 90
+ if(WEST) return 270
+ if(NORTHEAST) return 45
+ if(SOUTHEAST) return 135
+ if(NORTHWEST) return 315
+ if(SOUTHWEST) return 225
+ else return null
//Returns the angle in english
/proc/angle2text(var/degree)
@@ -262,4 +253,5 @@ proc/tg_list2text(list/list, glue=",")
if(rights & R_REJUVINATE) . += "+REJUVINATE"
if(rights & R_VAREDIT) . += "+VAREDIT"
if(rights & R_SOUNDS) . += "+SOUND"
+ if(rights & R_SPAWN) . += "+SPAWN"
return .
\ No newline at end of file
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 3bb6e614be6..968f25ba527 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -496,7 +496,7 @@ client
href_list["datumrefresh"] = href_list["ninja"]
else if(href_list["godmode"])
- if(!check_rights(0)) return
+ if(!check_rights(R_REJUVINATE)) return
var/mob/M = locate(href_list["godmode"])
if(!istype(M))
@@ -517,7 +517,7 @@ client
src.cmd_admin_gib(M)
else if(href_list["build_mode"])
- if(!check_rights(0)) return
+ if(!check_rights(R_BUILDMODE)) return
var/mob/M = locate(href_list["build_mode"])
if(!istype(M))
@@ -561,7 +561,7 @@ client
href_list["datumrefresh"] = href_list["make_skeleton"]
else if(href_list["delall"])
- if(!check_rights(0)) return
+ if(!check_rights(R_DEBUG|R_SERVER)) return
var/obj/O = locate(href_list["delall"])
if(!isobj(O))
diff --git a/code/global.dm b/code/global.dm
index 2827d003de7..bf60e7485ff 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -221,6 +221,7 @@ var/fileaccess_timer = 1800 //Cannot access files by ftp until the game is finis
#define R_REJUVINATE 512
#define R_VAREDIT 1024
#define R_SOUNDS 2048
+#define R_SPAWN 4096
#define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index 2580a5e6259..3bdec3b116f 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -39,6 +39,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
if("varedit") rights |= R_VAREDIT
if("everything","host","all") rights |= R_HOST
if("sound","sounds") rights |= R_SOUNDS
+ if("spawn","create") rights |= R_SPAWN
admin_ranks[rank] = rights
previous_rights = rights
@@ -134,3 +135,24 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
#endif
+/*
+#ifdef TESTING
+/client/verb/changerank(newrank in admin_ranks)
+ if(holder)
+ holder.rank = newrank
+ holder.rights = admin_ranks[newrank]
+ else
+ holder = new /datum/admins(newrank,admin_ranks[newrank],ckey)
+ remove_admin_verbs()
+ holder.associate(src)
+
+/client/verb/changerights(newrights as num)
+ if(holder)
+ holder.rights = newrights
+ else
+ holder = new /datum/admins("testing",newrights,ckey)
+ remove_admin_verbs()
+ holder.associate(src)
+
+#endif
+*/
\ No newline at end of file
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 482a028572d..7ad9a89c751 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -1,5 +1,7 @@
//admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless
var/list/admin_verbs_default = list(
+ /datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/
+ /datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/
/client/proc/toggleadminhelpsound, /*toggles whether we hear a sound when adminhelps/PMs are used*/
/client/proc/deadmin_self, /*destroys our own admin datum so we can play as a regular player*/
/client/proc/cmd_admin_say, /*admin-only ooc chat*/
@@ -48,7 +50,6 @@ var/list/admin_verbs_admin = list(
/client/proc/jumptokey, /*allows us to jump to the location of a mob with a certain ckey*/
/client/proc/jumptomob, /*allows us to jump to a specific mob*/
/client/proc/jumptoturf, /*allows us to jump to a specific turf*/
- /datum/admins/proc/spawn_atom, /*allows us to spawn instances*/
/client/proc/admin_call_shuttle, /*allows us to call the emergency shuttle*/
/client/proc/admin_cancel_shuttle, /*allows us to cancel the emergency shuttle, sending it back to centcomm*/
/client/proc/cmd_admin_direct_narrate, /*send text directly to a player with no padding. Useful for narratives and fluff-text*/
@@ -86,6 +87,10 @@ var/list/admin_verbs_fun = list(
/client/proc/make_sound,
/client/proc/toggle_random_events
)
+var/list/admin_verbs_spawn = list(
+ /datum/admins/proc/spawn_atom, /*allows us to spawn instances*/
+ /client/proc/respawn_character
+ )
var/list/admin_verbs_server = list(
/client/proc/Set_Holiday,
/client/proc/ToRban,
@@ -97,8 +102,8 @@ var/list/admin_verbs_server = list(
/datum/admins/proc/immreboot,
/client/proc/everyone_random,
/datum/admins/proc/toggleAI,
- /datum/admins/proc/toggleooc,
- /datum/admins/proc/toggleoocdead,
+ /client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/
+ /client/proc/cmd_debug_del_all,
/datum/admins/proc/adrev,
/datum/admins/proc/adspawn,
/datum/admins/proc/adjump,
@@ -113,6 +118,7 @@ var/list/admin_verbs_debug = list(
/client/proc/kill_airgroup,
/client/proc/debug_controller,
/client/proc/cmd_debug_mob_lists,
+ /client/proc/cmd_admin_delete,
/client/proc/cmd_debug_del_all,
/client/proc/cmd_debug_tog_aliens,
/client/proc/air_report,
@@ -132,7 +138,7 @@ var/list/admin_verbs_rejuv = list(
/client/proc/respawn_character
)
-//verbs which can be hidden
+//verbs which can be hidden - needs work
var/list/admin_verbs_hideable = list(
/client/proc/deadmin_self,
/client/proc/deadchat,
@@ -147,7 +153,7 @@ var/list/admin_verbs_hideable = list(
/client/proc/admin_ghost,
/client/proc/toggle_view_range,
/datum/admins/proc/view_txt_log,
- /datum/admins/proc/view_atk_log,
+// /datum/admins/proc/view_atk_log,
/client/proc/cmd_admin_subtle_message,
/client/proc/cmd_admin_check_contents,
/datum/admins/proc/access_news_network,
@@ -214,63 +220,61 @@ var/list/admin_verbs_hideable = list(
/client/proc/add_admin_verbs()
if(holder)
- var/rights = holder.rights
verbs += admin_verbs_default
- if(rights & R_BUILDMODE) verbs += /client/proc/togglebuildmodeself
- if(rights & R_ADMIN) verbs += admin_verbs_admin
- if(rights & R_BAN) verbs += admin_verbs_ban
- if(rights & R_FUN) verbs += admin_verbs_fun
- if(rights & R_SERVER) verbs += admin_verbs_server
- if(rights & R_DEBUG) verbs += admin_verbs_debug
- if(rights & R_POSSESS) verbs += admin_verbs_possess
- if(rights & R_PERMISSIONS) verbs += admin_verbs_permissions
- if(rights & R_STEALTH) verbs += /client/proc/stealth
- if(rights & R_REJUVINATE) verbs += admin_verbs_rejuv
- if(rights & R_SOUNDS) verbs += admin_verbs_sounds
+ if(holder.rights & R_BUILDMODE) verbs += /client/proc/togglebuildmodeself
+ if(holder.rights & R_ADMIN) verbs += admin_verbs_admin
+ if(holder.rights & R_BAN) verbs += admin_verbs_ban
+ if(holder.rights & R_FUN) verbs += admin_verbs_fun
+ if(holder.rights & R_SERVER) verbs += admin_verbs_server
+ if(holder.rights & R_DEBUG) verbs += admin_verbs_debug
+ if(holder.rights & R_POSSESS) verbs += admin_verbs_possess
+ if(holder.rights & R_PERMISSIONS) verbs += admin_verbs_permissions
+ if(holder.rights & R_STEALTH) verbs += /client/proc/stealth
+ if(holder.rights & R_REJUVINATE) verbs += admin_verbs_rejuv
+ if(holder.rights & R_SOUNDS) verbs += admin_verbs_sounds
+ if(holder.rights & R_SPAWN) verbs += admin_verbs_spawn
/client/proc/remove_admin_verbs()
- if(holder)
- verbs.Remove(
- admin_verbs_default,
- /client/proc/togglebuildmodeself,
- admin_verbs_admin,
- admin_verbs_ban,
- admin_verbs_fun,
- admin_verbs_server,
- admin_verbs_debug,
- admin_verbs_possess,
- admin_verbs_permissions,
- /client/proc/stealth,
- admin_verbs_rejuv,
- /client/proc/Cell,
- /client/proc/do_not_use_these,
- /client/proc/camera_view,
- /client/proc/sec_camera_report,
- /client/proc/intercom_view,
- /client/proc/air_status,
- /client/proc/atmosscan,
- /client/proc/powerdebug,
- /client/proc/count_objects_on_z_level,
- /client/proc/count_objects_all,
- /client/proc/cmd_assume_direct_control,
- /client/proc/jump_to_dead_group,
- /client/proc/startSinglo,
- /client/proc/ticklag,
- /client/proc/cmd_admin_grantfullaccess,
- /client/proc/kaboom,
- /client/proc/splash,
- /client/proc/cmd_admin_areatest,
- admin_verbs_sounds
- )
+ verbs.Remove(
+ admin_verbs_default,
+ /client/proc/togglebuildmodeself,
+ admin_verbs_admin,
+ admin_verbs_ban,
+ admin_verbs_fun,
+ admin_verbs_server,
+ admin_verbs_debug,
+ admin_verbs_possess,
+ admin_verbs_permissions,
+ /client/proc/stealth,
+ admin_verbs_rejuv,
+ admin_verbs_sounds,
+ admin_verbs_spawn,
+ /*Debug verbs added by "show debug verbs"*/
+ /client/proc/Cell,
+ /client/proc/do_not_use_these,
+ /client/proc/camera_view,
+ /client/proc/sec_camera_report,
+ /client/proc/intercom_view,
+ /client/proc/air_status,
+ /client/proc/atmosscan,
+ /client/proc/powerdebug,
+ /client/proc/count_objects_on_z_level,
+ /client/proc/count_objects_all,
+ /client/proc/cmd_assume_direct_control,
+ /client/proc/jump_to_dead_group,
+ /client/proc/startSinglo,
+ /client/proc/ticklag,
+ /client/proc/cmd_admin_grantfullaccess,
+ /client/proc/kaboom,
+ /client/proc/splash,
+ /client/proc/cmd_admin_areatest
+ )
/client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs
set name = "Adminverbs - Hide Most"
set category = "Admin"
- verbs.Remove(
- /client/proc/hide_most_verbs,
- admin_verbs_hideable
- )
+ verbs.Remove(/client/proc/hide_most_verbs, admin_verbs_hideable)
verbs += /client/proc/show_verbs
src << "Most of your adminverbs have been hidden."
@@ -281,21 +285,7 @@ var/list/admin_verbs_hideable = list(
set name = "Adminverbs - Hide All"
set category = "Admin"
- verbs.Remove(
- /client/proc/hide_verbs,
- /client/proc/hide_most_verbs,
- /client/proc/togglebuildmodeself,
- admin_verbs_admin,
- admin_verbs_ban,
- admin_verbs_fun,
- admin_verbs_server,
- admin_verbs_debug,
- admin_verbs_possess,
- admin_verbs_permissions,
- /client/proc/cmd_admin_rejuvenate,
- /client/proc/stealth,
- admin_verbs_rejuv
- )
+ remove_admin_verbs()
verbs += /client/proc/show_verbs
src << "Almost all of your adminverbs have been hidden."
diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm
index 9fadbbe051a..0c112464eea 100644
--- a/code/modules/admin/holder2.dm
+++ b/code/modules/admin/holder2.dm
@@ -28,11 +28,11 @@ var/list/admin_datums = list()
admin_datums[ckey] = src
/datum/admins/proc/associate(client/C)
- if(C)
+ if(istype(C))
owner = C
owner.holder = src
owner.add_admin_verbs() //TODO
- admins += C
+ admins |= C
/datum/admins/proc/disassociate()
if(owner)
@@ -71,6 +71,7 @@ you will have to do something like if(client.rights & R_ADMIN) yourself.
usr << "Error: You are not an admin."
return 0
+//probably a bit iffy - will hopefully figure out a better solution
/proc/check_if_greater_rights_than(client/other)
if(usr && usr.client)
if(usr.client.holder)
@@ -82,9 +83,6 @@ you will have to do something like if(client.rights & R_ADMIN) yourself.
usr << "Error: Cannot proceed. They have more or equal rights to us."
return 0
-/client/proc/update_admin()
- add_admin_verbs()
-
/client/proc/deadmin()
admin_datums -= ckey
diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm
index 1b250b1d7fd..a86329fc6cf 100644
--- a/code/modules/admin/permissionverbs/permissionedit.dm
+++ b/code/modules/admin/permissionverbs/permissionedit.dm
@@ -8,12 +8,7 @@
holder.edit_admin_permissions()
/datum/admins/proc/edit_admin_permissions()
- if(!usr.client)
- return
-
- if(!usr.client.holder || !(usr.client.holder.rights & R_PERMISSIONS))
- usr << "\red You do not have permission to do this!"
- return
+ if(!check_rights(R_PERMISSIONS)) return
establish_db_connection()
if(!dbcon.IsConnected())
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 90533438df5..cc2a59ad80f 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1,12 +1,10 @@
/datum/admins/Topic(href, href_list)
..()
- if(usr.client != src.owner)
+ if(usr.client != src.owner || !check_rights(0))
world << "\blue [usr.key] has attempted to override the admin panel!"
log_admin("[key_name(usr)] tried to use the admin panel without authorization.")
return
- if(!check_rights(0)) return //check they are an admin
-
if(href_list["makeAntag"])
switch(href_list["makeAntag"])
if("1")
@@ -48,39 +46,34 @@
if(!src.makeDeathsquad())
usr << "\red Unfortunatly there were no candidates available"
- if(href_list["editadminpermissions"])
- if(!usr.client)
- return
-
+ else if(href_list["editadminpermissions"])
var/adm_ckey = href_list["editadminckey"]
if(!adm_ckey)
usr << "\red no valid ckey"
return
- if(!usr.client.holder || !(usr.client.holder.rights & R_PERMISSIONS))
- usr << "\red You do not have permission to do this!"
- message_admins("[key_name_admin(usr)] attempted to edit the admin permissions of [adm_ckey] without authentication!")
- log_admin("[key_name(usr)] attempted to edit the admin permissions of [adm_ckey] without authentication!")
+ if(!check_rights(R_PERMISSIONS))
+ message_admins("[key_name_admin(usr)] attempted to edit the admin permissions of [adm_ckey] without sufficient rights.")
+ log_admin("[key_name(usr)] attempted to edit the admin permissions of [adm_ckey] without sufficient rights.")
return
switch(href_list["editadminpermissions"])
if("permissions")
var/list/permissionlist = list()
- for(var/i = 1; i <= R_MAXPERMISSION; i = i << 1)
+ for(var/i=1, i<=R_MAXPERMISSION, i<<=1) //that <<= is shorthand for i = i << 1. Which is a left bitshift
permissionlist[rights2text(i)] = i
var/new_permission
spawn(0) //Safety
new_permission = input("Select a permission to turn on/off", "Permission toggle", null, null) as null|anything in permissionlist
- if(!new_permission)
- return
+ if(!new_permission) return
message_admins("[key_name_admin(usr)] toggled the [new_permission] permission of [adm_ckey]")
log_admin("[key_name(usr)] toggled the [new_permission] permission of [adm_ckey]")
log_admin_permission_modification(adm_ckey, permissionlist[new_permission])
if("rank")
var/new_rank = input("Please, select a rank", "New rank for player", null, null) as null|anything in list("Game Master","Game Admin", "Trial Admin", "Admin Observer")
- if(!new_rank)
- return
+ if(!new_rank) return
+
message_admins("[key_name_admin(usr)] edited the admin rank of [adm_ckey] to [new_rank]")
log_admin("[key_name(usr)] edited the admin rank of [adm_ckey] to [new_rank]")
log_admin_rank_modification(adm_ckey, new_rank)
@@ -91,11 +84,10 @@
log_admin_rank_modification(adm_ckey, "Removed")
if("add")
var/new_ckey = input(usr,"New admin's ckey","Admin ckey", null) as text|null
- if(!new_ckey)
- return
+ if(!new_ckey) return
var/new_rank = input("Please, select a rank", "New rank for player", null, null) as null|anything in list("Game Master","Game Admin", "Trial Admin", "Admin Observer")
- if(!new_rank)
- return
+ if(!new_rank) return
+
message_admins("[key_name_admin(usr)] added [new_ckey] as a new admin to the rank [new_rank]")
log_admin("[key_name(usr)] added [new_ckey] as a new admin to the rank [new_rank]")
log_admin_rank_modification(new_ckey, new_rank)
@@ -151,7 +143,7 @@
href_list["secretsadmin"] = "check_antagonist"
else if(href_list["simplemake"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/M = locate(href_list["mob"])
if(!ismob(M))
@@ -784,7 +776,7 @@
usr << browse(dat, "window=f_secret")
else if(href_list["c_mode2"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_ADMIN|R_SERVER)) return
if (ticker && ticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
@@ -797,7 +789,7 @@
.(href, list("c_mode"=1))
else if(href_list["f_secret2"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_ADMIN|R_SERVER)) return
if(ticker && ticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
@@ -810,7 +802,7 @@
.(href, list("f_secret"=1))
else if(href_list["monkeyone"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/living/carbon/human/H = locate(href_list["monkeyone"])
if(!istype(H))
@@ -822,7 +814,7 @@
H.monkeyize()
else if(href_list["corgione"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/living/carbon/human/H = locate(href_list["corgione"])
if(!istype(H))
@@ -1021,7 +1013,7 @@
usr << "Admin Rejuvinates have been disabled"
else if(href_list["makeai"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/living/carbon/human/H = locate(href_list["makeai"])
if(!istype(H))
@@ -1033,7 +1025,7 @@
H.AIize()
else if(href_list["makealien"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/living/carbon/human/H = locate(href_list["makealien"])
if(!istype(H))
@@ -1043,7 +1035,7 @@
usr.client.cmd_admin_alienize(H)
else if(href_list["makemetroid"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/living/carbon/human/H = locate(href_list["makemetroid"])
if(!istype(H))
@@ -1053,7 +1045,7 @@
usr.client.cmd_admin_metroidize(H)
else if(href_list["makerobot"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/living/carbon/human/H = locate(href_list["makerobot"])
if(!istype(H))
@@ -1063,7 +1055,7 @@
usr.client.cmd_admin_robotize(H)
else if(href_list["makeanimal"])
- if(!check_rights(R_FUN)) return
+ if(!check_rights(R_SPAWN)) return
var/mob/M = locate(href_list["makeanimal"])
if(istype(M, /mob/new_player))
@@ -1342,19 +1334,19 @@
alert("Cannot make this mob a traitor! It has no mind!")
else if(href_list["create_object"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_SPAWN)) return
return create_object(usr)
else if(href_list["quick_create_object"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_SPAWN)) return
return quick_create_object(usr)
else if(href_list["create_turf"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_SPAWN)) return
return create_turf(usr)
else if(href_list["create_mob"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_SPAWN)) return
return create_mob(usr)
//Promote or Demote a client.
@@ -1377,10 +1369,11 @@
dat += "[rank]
"
dat += "Deadmin"
+ dat += "
NOTE: this screen currently does nothing
"
usr << browse(dat, "window=prom_demot;size=480x300")
else if(href_list["object_list"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_SPAWN)) return
if(!config.allow_admin_spawning)
usr << "Spawning of items is not allowed."
@@ -1418,9 +1411,8 @@
removed_paths += dirty_path
continue
else if(ispath(path, /mob))
- if(!check_rights(R_FUN,0))
- removed_paths += dirty_path
- continue
+ removed_paths += dirty_path
+ continue
paths += path
if(!paths)
@@ -1538,23 +1530,6 @@
M.client.eye = M
del(O)
ok = 1*/
- if("toxic")
- /*
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","T")
- for(var/obj/machinery/atmoalter/siphs/fullairsiphon/O in world)
- O.t_status = 3
- for(var/obj/machinery/atmoalter/siphs/scrubbers/O in world)
- O.t_status = 1
- O.t_per = 1000000.0
- for(var/obj/machinery/atmoalter/canister/O in world)
- if (!( istype(O, /obj/machinery/atmoalter/canister/oxygencanister) ))
- O.t_status = 1
- O.t_per = 1000000.0
- else
- O.t_status = 3
- */
- usr << "HEH"
if("monkey")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","M")
@@ -1718,18 +1693,12 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","BC")
switch(MAX_EXPLOSION_RANGE)
- if(14)
- MAX_EXPLOSION_RANGE = 16
- if(16)
- MAX_EXPLOSION_RANGE = 20
- if(20)
- MAX_EXPLOSION_RANGE = 28
- if(28)
- MAX_EXPLOSION_RANGE = 56
- if(56)
- MAX_EXPLOSION_RANGE = 128
- if(128)
- MAX_EXPLOSION_RANGE = 14
+ if(14) MAX_EXPLOSION_RANGE = 16
+ if(16) MAX_EXPLOSION_RANGE = 20
+ if(20) MAX_EXPLOSION_RANGE = 28
+ if(28) MAX_EXPLOSION_RANGE = 56
+ if(56) MAX_EXPLOSION_RANGE = 128
+ if(128) MAX_EXPLOSION_RANGE = 14
var/range_dev = MAX_EXPLOSION_RANGE *0.25
var/range_high = MAX_EXPLOSION_RANGE *0.5
var/range_low = MAX_EXPLOSION_RANGE
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index aedb786105f..1f7fe8870f7 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -338,6 +338,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
src << "Made [M] a cultist."
*/
+//TODO: merge the vievars version into this or something maybe mayhaps
/client/proc/cmd_debug_del_all()
set category = "Debug"
set name = "Del-All"
diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm
index 9dedbef62fb..3702c01e5aa 100644
--- a/code/modules/client/client defines.dm
+++ b/code/modules/client/client defines.dm
@@ -19,7 +19,7 @@
var/move_delay = 1
var/moving = null
var/adminobs = null
- var/deadchat = 0
+ var/deadchat = 1
var/changes = 0
var/area = null
var/played = 0
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 17fbdac599c..a9abb430462 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -111,7 +111,7 @@
world.update_status()
if(holder)
- update_admin()
+ add_admin_verbs()
admin_memo_show()
log_client_to_db()
diff --git a/config/admin_ranks.txt b/config/admin_ranks.txt
index bc65b912b89..2a33adb3b80 100644
--- a/config/admin_ranks.txt
+++ b/config/admin_ranks.txt
@@ -13,7 +13,7 @@
# KEYWORDS:
# +ADMIN = general admin tools, verbs etc
-# +FUN = mob-transformation, events, other event-orientated actions
+# +FUN = events, other event-orientated actions. Access to the fun secrets in the secrets panel.
# +BAN = the ability to ban, jobban and fullban
# +STEALTH = the ability to stealthmin (make yourself appear with a fake name to everyone but other admins
# +POSSESS = the ability to possess objects
@@ -24,16 +24,17 @@
# +VAREDIT = everyone may view viewvars/debugvars/whatever you call it. This keyword allows you to actually EDIT those variables.
# +RIGHTS (or +PERMISSIONS) = allows you to promote and/or demote people.
# +SOUND (or +SOUNDS) = allows you to upload and play sounds
+# +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs (high-risk atoms, e.g. blackholes, will require the +FUN flag too)
# +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag
Admin Observer
Moderator +ADMIN
Admin Candidate +@
-Trial Admin +@ +FUN +REJUV +VAREDIT +BAN
-Badmin +@ +POSSESS +BUILDMODE +SERVER
+Trial Admin +@ +SPAWN +REJUV +VAREDIT +BAN
+Badmin +@ +POSSESS +BUILDMODE +SERVER +FUN
Game Admin +@ +STEALTH +SOUNDS +DEBUG
Game Master +EVERYTHING
Host +EVERYTHING
-Coder +DEBUG +VAREDIT +SERVER
\ No newline at end of file
+Coder +DEBUG +VAREDIT +SERVER +SPAWN
\ No newline at end of file