From 9863f8836659429329ae8db925b0c520024cd383 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 18 Jun 2017 21:58:37 -0500 Subject: [PATCH 1/5] [READY]Adds examine tooltips --- code/_globalvars/tooltips.dm | 1 + code/game/objects/items.dm | 49 +++++++++++++++++++ code/modules/client/preferences.dm | 2 + .../client/preferences_savefile.dm.rej | 12 +++++ code/modules/client/verbs/etips.dm | 20 ++++++++ tgstation.dme.rej | 9 ++++ 6 files changed, 93 insertions(+) create mode 100755 code/_globalvars/tooltips.dm create mode 100644 code/modules/client/preferences_savefile.dm.rej create mode 100644 code/modules/client/verbs/etips.dm create mode 100644 tgstation.dme.rej diff --git a/code/_globalvars/tooltips.dm b/code/_globalvars/tooltips.dm new file mode 100755 index 0000000000..58bb6bcea5 --- /dev/null +++ b/code/_globalvars/tooltips.dm @@ -0,0 +1 @@ +GLOBAL_VAR_INIT(enable_examine_tips, TRUE) \ No newline at end of file diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 84b06bc756..401e457b63 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -105,6 +105,14 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/datum/rpg_loot/rpg_loot = null + + //Tooltip vars + var/in_inventory = FALSE//is this item equipped into an inventory slot or hand of a mob? + var/force_string //string form of an item's force. Edit this var only to set a custom force string + var/last_force_string_check = 0 + var/tip_timer + var/force_string_override + /obj/item/Initialize() if (!materials) materials = list() @@ -116,6 +124,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(GLOB.rpg_loot_items) rpg_loot = new(src) + if(force_string) + force_string_override = TRUE + /obj/item/Destroy() flags &= ~DROPDEL //prevent reqdels if(ismob(loc)) @@ -368,9 +379,11 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) A.Remove(user) if(DROPDEL & flags) qdel(src) + in_inventory = FALSE // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) + in_inventory = TRUE return @@ -396,6 +409,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/datum/action/A = X if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. A.Grant(user) + in_inventory = TRUE //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user) @@ -546,6 +560,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if (callback) //call the original callback . = callback.Invoke() throw_speed = initial(throw_speed) //explosions change this. + in_inventory = FALSE /obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage if(!newLoc) @@ -632,3 +647,37 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) M.dirty++ /obj/item/proc/on_mob_death(mob/living/L, gibbed) + +/obj/item/proc/set_force_string() + switch(force) + if(0 to 4) + force_string = "very low" + if(4 to 7) + force_string = "low" + if(7 to 10) + force_string = "medium" + if(10 to 11) + force_string = "high" + if(11 to 20) //12 is the force of a toolbox + force_string = "robust" + if(20 to 25) + force_string = "very robust" + else + force_string = "exceptionally robust" + last_force_string_check = force + +/obj/item/proc/openTip(location, control, params, user) + if(last_force_string_check != force && !force_string_override) + set_force_string() + openToolTip(user,src,params,title = name,content = "[desc]
[force ? "Force: [force_string]" : ""]",theme = "") + +/obj/item/MouseEntered(location, control, params) + if(in_inventory && usr.client.prefs.enable_tips) + 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. + +/obj/item/MouseExited() + deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes + closeToolTip(usr) + diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 8d5bbde4b3..e9b877a3ac 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -19,6 +19,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) //game-preferences var/lastchangelog = "" //Saved changlog filesize to detect if there was a change var/ooccolor = null + var/enable_tips = TRUE + var/tip_delay = 500 //tip delay in milliseconds //Antag preferences var/list/be_special = list() //Special role selection diff --git a/code/modules/client/preferences_savefile.dm.rej b/code/modules/client/preferences_savefile.dm.rej new file mode 100644 index 0000000000..e16f612c34 --- /dev/null +++ b/code/modules/client/preferences_savefile.dm.rej @@ -0,0 +1,12 @@ +diff a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm (rejected hunks) +@@ -219,8 +219,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car + S["clientfps"] << clientfps + S["parallax"] << parallax + S["menuoptions"] << menuoptions +- S["enable_tips"] >> enable_tips +- S["tip_delay"] >> tip_delay ++ S["enable_tips"] << enable_tips ++ S["tip_delay"] << tip_delay + + return 1 + diff --git a/code/modules/client/verbs/etips.dm b/code/modules/client/verbs/etips.dm new file mode 100644 index 0000000000..9dc1662add --- /dev/null +++ b/code/modules/client/verbs/etips.dm @@ -0,0 +1,20 @@ +/client/verb/toggle_tips() + set name = "Toggle examine tooltips" + set desc = "Toggles examine hover-over tooltips" + set category = "OOC" + + prefs.enable_tips = !prefs.enable_tips + prefs.save_preferences() + to_chat(usr, "Examine tooltips [prefs.enable_tips ? "en" : "dis"]abled.") + +/client/verb/change_tip_delay() + set name = "Set examine tooltip delay" + set desc = "Sets the delay in milliseconds before examine tooltips appear" + set category = "OOC" + + var/indelay = stripped_input(usr, "Enter the tooltip delay in milliseconds (default: 500)", "Enter tooltip delay", "", 10) + indelay = text2num(indelay) + if(usr)//is this what you mean? + prefs.tip_delay = indelay + prefs.save_preferences() + to_chat(usr, "Tooltip delay set to [indelay] milliseconds.") diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..f079c44129 --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,9 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -1150,6 +1151,7 @@ + #include "code\modules\client\preferences.dm" + #include "code\modules\client\preferences_savefile.dm" + #include "code\modules\client\preferences_toggles.dm" ++#include "code\modules\client\verbs\etips.dm" + #include "code\modules\client\verbs\ooc.dm" + #include "code\modules\client\verbs\ping.dm" + #include "code\modules\client\verbs\sethotkeys.dm" From 13078c1130b78c13b565feba280c236b50f6168f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 19 Jun 2017 20:52:25 -0500 Subject: [PATCH 2/5] Update preferences_savefile.dm --- code/modules/client/preferences_savefile.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 076761f93f..c52767f1d9 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -183,6 +183,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["inquisitive_ghost"] >> inquisitive_ghost S["uses_glasses_colour"]>> uses_glasses_colour S["clientfps"] >> clientfps + S["menuoptions"] >> menuoptions + S["enable_tips"] >> enable_tips + S["tip_delay"] >> tip_delay S["parallax"] >> parallax S["menuoptions"] >> menuoptions //citadel code @@ -249,6 +252,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["clientfps"] << clientfps S["parallax"] << parallax S["menuoptions"] << menuoptions + S["enable_tips"] << enable_tips + S["tip_delay"] << tip_delay //citadel code S["arousable"] << arousable @@ -561,4 +566,4 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/savefile/S = new /savefile(path) S.ImportText("/",file("[path].txt")) -#endif \ No newline at end of file +#endif From 572ac840a498c838338bc6876ff6880ca4c6dbdf Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 19 Jun 2017 20:53:31 -0500 Subject: [PATCH 3/5] Update tgstation.dme --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index c796ed4e6b..e104b4ecfa 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1183,6 +1183,7 @@ #include "code\modules\client\preferences.dm" #include "code\modules\client\preferences_savefile.dm" #include "code\modules\client\preferences_toggles.dm" +#include "code\modules\client\verbs\etips.dm" #include "code\modules\client\preferences_vr.dm" #include "code\modules\client\verbs\looc.dm" #include "code\modules\client\verbs\ooc.dm" From cd06b77e01aa802af3032bd994b4484de87f12d2 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 19 Jun 2017 20:54:04 -0500 Subject: [PATCH 4/5] Delete preferences_savefile.dm.rej --- code/modules/client/preferences_savefile.dm.rej | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 code/modules/client/preferences_savefile.dm.rej diff --git a/code/modules/client/preferences_savefile.dm.rej b/code/modules/client/preferences_savefile.dm.rej deleted file mode 100644 index e16f612c34..0000000000 --- a/code/modules/client/preferences_savefile.dm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm (rejected hunks) -@@ -219,8 +219,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car - S["clientfps"] << clientfps - S["parallax"] << parallax - S["menuoptions"] << menuoptions -- S["enable_tips"] >> enable_tips -- S["tip_delay"] >> tip_delay -+ S["enable_tips"] << enable_tips -+ S["tip_delay"] << tip_delay - - return 1 - From fa9c2aaa154feaee30500892b35d23902962595e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 19 Jun 2017 20:54:20 -0500 Subject: [PATCH 5/5] Delete tgstation.dme.rej --- tgstation.dme.rej | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 tgstation.dme.rej diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index f079c44129..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -1150,6 +1151,7 @@ - #include "code\modules\client\preferences.dm" - #include "code\modules\client\preferences_savefile.dm" - #include "code\modules\client\preferences_toggles.dm" -+#include "code\modules\client\verbs\etips.dm" - #include "code\modules\client\verbs\ooc.dm" - #include "code\modules\client\verbs\ping.dm" - #include "code\modules\client\verbs\sethotkeys.dm"