mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 02:24:11 +01:00
[READY] Widescreen (#20861)
* TM Needed - Widescreen * A lot of fixes * TM notice * Feedback thread * Minor tweaks * Expans silicon view stuff * Fix viewmods * The preferential option * Why were these global * Fix clickcatch sizing, fix parallax issues * Maybe fixes the runtime * READY
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
|
||||
preload_rsc = 0 // This is 0 so we can set it to an URL once the player logs in and have them download the resources from a different server.
|
||||
|
||||
var/global/obj/screen/click_catcher/void
|
||||
var/obj/screen/click_catcher/void
|
||||
|
||||
var/ip_intel = "Disabled"
|
||||
|
||||
|
||||
@@ -322,6 +322,9 @@
|
||||
// ToS accepted
|
||||
tos_consent = TRUE
|
||||
|
||||
// Setup widescreen
|
||||
view = prefs.viewrange
|
||||
|
||||
prefs.init_keybindings(prefs.keybindings_overrides) //The earliest sane place to do it where prefs are not null, if they are null you can't do crap at lobby
|
||||
prefs.last_ip = address //these are gonna be used for banning
|
||||
prefs.last_id = computer_id //these are gonna be used for banning
|
||||
@@ -371,6 +374,10 @@
|
||||
winset(src, null, "command=\".configure graphics-hwmode off\"")
|
||||
winset(src, null, "command=\".configure graphics-hwmode on\"")
|
||||
|
||||
// Try doing this before mob login
|
||||
generate_clickcatcher()
|
||||
apply_clickcatcher()
|
||||
|
||||
. = ..() //calls mob.Login()
|
||||
|
||||
mob.update_client_colour(0) // Activate colourblind mode if they have one set
|
||||
@@ -394,9 +401,6 @@
|
||||
// activate_darkmode() calls the CL update button proc, so we dont want it double called
|
||||
SSchangelog.UpdatePlayerChangelogButton(src)
|
||||
|
||||
generate_clickcatcher()
|
||||
apply_clickcatcher()
|
||||
|
||||
if(show_update_prompt)
|
||||
show_update_notice()
|
||||
|
||||
@@ -433,6 +437,7 @@
|
||||
to_chat(src, "<span class='notice'>You are currently connected [prefs.server_region ? "via the <b>[prefs.server_region]</b> relay" : "directly"] to Paradise.</span>")
|
||||
to_chat(src, "<span class='notice'>You can change this using the <code>Change Region</code> verb in the OOC tab, as selecting a region closer to you may reduce latency.</span>")
|
||||
|
||||
|
||||
/client/proc/is_connecting_from_localhost()
|
||||
var/static/list/localhost_addresses = list("127.0.0.1", "::1")
|
||||
if((!address && !world.port) || (address in localhost_addresses))
|
||||
@@ -1251,6 +1256,11 @@
|
||||
winset(src, null, "command=\".configure graphics-hwmode off\"")
|
||||
winset(src, null, "command=\".configure graphics-hwmode on\"")
|
||||
|
||||
/// Returns the biggest number from client.view so we can do easier maths
|
||||
/client/proc/maxview()
|
||||
var/list/screensize = getviewsize(view)
|
||||
return max(screensize[1], screensize[2])
|
||||
|
||||
#undef LIMITER_SIZE
|
||||
#undef CURRENT_SECOND
|
||||
#undef SECOND_COUNT
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
colourblind_mode,
|
||||
keybindings,
|
||||
server_region,
|
||||
muted_adminsounds_ckeys
|
||||
muted_adminsounds_ckeys,
|
||||
viewrange
|
||||
FROM player
|
||||
WHERE ckey=:ckey"}, list(
|
||||
"ckey" = C.ckey
|
||||
|
||||
@@ -937,6 +937,24 @@
|
||||
if("winflash")
|
||||
toggles2 ^= PREFTOGGLE_2_WINDOWFLASHING
|
||||
|
||||
if("setviewrange")
|
||||
var/list/viewrange_options = list(
|
||||
"15x15 (Classic)" = "15x15",
|
||||
"17x15 (Wide)" = "17x15",
|
||||
"19x15 (Ultrawide)" = "19x15"
|
||||
)
|
||||
|
||||
var/new_range = input(user, "Select a view range") as anything in viewrange_options
|
||||
var/actual_new_range = viewrange_options[new_range]
|
||||
|
||||
viewrange = actual_new_range
|
||||
|
||||
if(actual_new_range != parent.view)
|
||||
parent.view = actual_new_range
|
||||
// Update the size of the click catcher
|
||||
var/list/actualview = getviewsize(parent.view)
|
||||
parent.void.UpdateGreed(actualview[1],actualview[2])
|
||||
|
||||
if("afk_watch")
|
||||
if(!(toggles2 & PREFTOGGLE_2_AFKWATCH))
|
||||
to_chat(user, "<span class='info'>You will now get put into cryo dorms after [GLOB.configuration.afk.auto_cryo_minutes] minutes. \
|
||||
|
||||
@@ -128,6 +128,8 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
|
||||
var/server_region = null
|
||||
/// List of admin ckeys this player wont hear sounds from
|
||||
var/list/admin_sound_ckey_ignore = list()
|
||||
/// View range preference for this client
|
||||
var/viewrange = DEFAULT_CLIENT_VIEWSIZE
|
||||
|
||||
/datum/preferences/New(client/C, datum/db_query/Q) // Process our query
|
||||
parent = C
|
||||
@@ -431,6 +433,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
|
||||
dat += "<b>Play Lobby Music:</b> <a href='?_src_=prefs;preference=lobby_music'><b>[(sound & SOUND_LOBBY) ? "Yes" : "No"]</b></a><br>"
|
||||
dat += "<b>Randomized Character Slot:</b> <a href='?_src_=prefs;preference=randomslot'><b>[toggles2 & PREFTOGGLE_2_RANDOMSLOT ? "Yes" : "No"]</b></a><br>"
|
||||
dat += "<b>Thought Bubble:</b> <a href='?_src_=prefs;preference=thought_bubble'>[(toggles2 & PREFTOGGLE_2_THOUGHT_BUBBLE) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>View Range:</b> <a href='?_src_=prefs;preference=setviewrange'>[viewrange]</a><br>"
|
||||
dat += "<b>Window Flashing:</b> <a href='?_src_=prefs;preference=winflash'>[(toggles2 & PREFTOGGLE_2_WINDOWFLASHING) ? "Yes" : "No"]</a><br>"
|
||||
// RIGHT SIDE OF THE PAGE
|
||||
dat += "</td><td width='300px' height='300px' valign='top'>"
|
||||
@@ -573,7 +576,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
|
||||
dat += "<a href='?_src_=prefs;preference=reset_all'>Reset Setup</a>"
|
||||
dat += "</center>"
|
||||
|
||||
var/datum/browser/popup = new(user, "preferences", "<div align='center'>Character Setup</div>", 820, 720)
|
||||
var/datum/browser/popup = new(user, "preferences", "<div align='center'>Character Setup</div>", 820, 770)
|
||||
popup.set_content(dat.Join(""))
|
||||
popup.open(FALSE)
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
keybindings = init_keybindings(raw = query.item[22])
|
||||
server_region = query.item[23]
|
||||
raw_muted_admins = query.item[24]
|
||||
viewrange = query.item[25]
|
||||
|
||||
lastchangelog_2 = lastchangelog // Clone please
|
||||
|
||||
@@ -98,7 +99,8 @@
|
||||
colourblind_mode=:colourblind_mode,
|
||||
keybindings=:keybindings,
|
||||
server_region=:server_region,
|
||||
muted_adminsounds_ckeys=:muted_adminsounds_ckeys
|
||||
muted_adminsounds_ckeys=:muted_adminsounds_ckeys,
|
||||
viewrange=:viewrange
|
||||
WHERE ckey=:ckey"}, list(
|
||||
// OH GOD THE PARAMETERS
|
||||
"ooccolour" = ooccolor,
|
||||
@@ -125,6 +127,7 @@
|
||||
"ckey" = C.ckey,
|
||||
"server_region" = server_region,
|
||||
"muted_adminsounds_ckeys" = json_encode(admin_sound_ckey_ignore),
|
||||
"viewrange" = viewrange,
|
||||
))
|
||||
|
||||
if(!query.warn_execute())
|
||||
|
||||
@@ -38,22 +38,24 @@
|
||||
var/datum/viewmod/V = ViewMods[mod_id]
|
||||
highest_range = max(highest_range, V.size)
|
||||
|
||||
SetView(highest_range ? highest_range : world.view)
|
||||
SetView(highest_range ? highest_range : prefs.viewrange)
|
||||
ViewModsActive = (highest_range > 0)
|
||||
|
||||
/client/proc/SetView(view_range)
|
||||
if(view_range == world.view)
|
||||
if(view_range == prefs.viewrange)
|
||||
winset(src, "mapwindow.map", "icon-size=[ViewPreferedIconSize]")
|
||||
else
|
||||
winset(src, "mapwindow.map", "icon-size=0")
|
||||
|
||||
view = view_range
|
||||
|
||||
if(mob && mob.hud_used)
|
||||
var/view_range_calc = maxview()
|
||||
|
||||
if(mob?.hud_used)
|
||||
// If view range is less than world.view, assume the HUD will not fit under normal mode and turn it to reduced
|
||||
if(view_range < world.view)
|
||||
if(view_range_calc < world.view)
|
||||
// If it's really tiny, turn their hud off completely
|
||||
if(view_range <= ARBITRARY_VIEWRANGE_NOHUD)
|
||||
if(view_range_calc <= ARBITRARY_VIEWRANGE_NOHUD)
|
||||
mob.hud_used.show_hud(HUD_STYLE_NOHUD)
|
||||
else
|
||||
mob.hud_used.show_hud(HUD_STYLE_REDUCED)
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
do_sparks(5, FALSE, user)
|
||||
return
|
||||
|
||||
if(target in view(user.client.view, get_turf(user)))
|
||||
if(target in view(user.client.maxview(), get_turf(user)))
|
||||
|
||||
var/turf/simulated/T = get_turf(target)
|
||||
if(!istype(T))
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
// As a synthetic, the only limit on visibility is view range
|
||||
/obj/item/mmi/contents_ui_distance(src_object, mob/living/user)
|
||||
. = ..()
|
||||
if((src_object in view(src)) && get_dist(src_object, src) <= user.client.view)
|
||||
if((src_object in view(src)) && get_dist(src_object, src) <= user.client.maxview())
|
||||
return STATUS_INTERACTIVE // interactive (green visibility)
|
||||
return user.shared_living_ui_distance()
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
if(!isnum(forced_look))
|
||||
var/atom/A = locateUID(forced_look)
|
||||
if(istype(A))
|
||||
var/view = client ? client.view : world.view
|
||||
var/view = client ? client.maxview() : world.view
|
||||
if(get_dist(src, A) > view || !(src in viewers(view, A)))
|
||||
forced_look = null
|
||||
to_chat(src, "<span class='notice'>Your direction target has left your view, you are no longer facing anything.</span>")
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
point_at(A)
|
||||
return TRUE
|
||||
|
||||
if(client && !(A in view(client.view, src)))
|
||||
if(client && !(A in view(client.maxview(), src)))
|
||||
return FALSE
|
||||
|
||||
point_at(A)
|
||||
|
||||
@@ -89,14 +89,14 @@
|
||||
|
||||
//Split Y+Pixel_Y up into list(Y, Pixel_Y)
|
||||
var/list/screen_loc_Y = splittext(screen_loc_params[2],":")
|
||||
var/x = text2num(screen_loc_X[1]) * world.icon_size + text2num(screen_loc_X[2]) - world.icon_size + (user.client ? user.client.pixel_x : 0)
|
||||
var/y = text2num(screen_loc_Y[1]) * world.icon_size + text2num(screen_loc_Y[2]) - world.icon_size + (user.client ? user.client.pixel_y : 0)
|
||||
var/x = (text2num(screen_loc_X[1]) - 1) * world.icon_size + text2num(screen_loc_X[2])
|
||||
var/y = (text2num(screen_loc_Y[1]) - 1) * world.icon_size + text2num(screen_loc_Y[2])
|
||||
|
||||
//Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average.
|
||||
var/screenview = (user.client.view * 2 + 1) * world.icon_size //Refer to http://www.byond.com/docs/ref/info.html#/client/var/view for mad maths
|
||||
var/list/screenview = getviewsize(user.client.view)
|
||||
|
||||
var/ox = round(screenview/2) //"origin" x
|
||||
var/oy = round(screenview/2) //"origin" y
|
||||
var/ox = round((screenview[1] * world.icon_size) / 2) - user.client.pixel_x //"origin" x
|
||||
var/oy = round((screenview[2] * world.icon_size) / 2) - user.client.pixel_y //"origin" y
|
||||
var/angle = ATAN2(y - oy, x - ox)
|
||||
Angle = angle
|
||||
if(spread)
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
to_remove += SSshuttle.hidden_shuttle_turf_images
|
||||
|
||||
user.client.images -= to_remove
|
||||
user.client.SetView(7)
|
||||
user.client.SetView(user.client.prefs.viewrange)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/proc/placeLandingSpot()
|
||||
if(designating_target_loc || !current_user)
|
||||
|
||||
@@ -31,7 +31,7 @@ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new)
|
||||
|
||||
// Robots can interact with anything they can see.
|
||||
var/list/clientviewlist = getviewsize(client.view)
|
||||
if((src_object in view(src)) && (get_dist(src, src_object) <= min(clientviewlist[1],clientviewlist[2])))
|
||||
if((src_object in view(src)) && (get_dist(src, src_object) <= max(clientviewlist[1], clientviewlist[2])))
|
||||
return STATUS_INTERACTIVE
|
||||
return STATUS_DISABLED // Otherwise they can keep the UI open.
|
||||
|
||||
|
||||
@@ -70,7 +70,8 @@ Notes:
|
||||
params = {"{ "cursor": "[params]", "screenLoc": "[thing.screen_loc]" }"}
|
||||
|
||||
//Send stuff to the tooltip
|
||||
owner << output(list2params(list(params, owner.view, "[title][content]", theme, special)), "[control]:tooltip.update")
|
||||
var/view_size = getviewsize(owner.view)
|
||||
owner << output(list2params(list(params, view_size[1] , view_size[2], "[title][content]", theme, special)), "[control]:tooltip.update")
|
||||
|
||||
//If a hide() was hit while we were showing, run hide() again to avoid stuck tooltips
|
||||
showing = 0
|
||||
|
||||
@@ -90,7 +90,8 @@
|
||||
'tileSize': 32,
|
||||
'control': '',
|
||||
'params': {},
|
||||
'clientView': 0,
|
||||
'client_view_w': 0,
|
||||
'client_view_h': 0,
|
||||
'text': '',
|
||||
'theme': '',
|
||||
'padding': 2,
|
||||
@@ -102,7 +103,7 @@
|
||||
window.location = 'byond://winset?id='+tooltip.control+';is-visible=false';
|
||||
},
|
||||
updateCallback: function(map) {
|
||||
if(typeof map === 'undefined' || !map) {return false;}
|
||||
if (typeof map === 'undefined' || !map) {return false;}
|
||||
|
||||
//alert(tooltip.params+' | '+tooltip.clientView+' | '+tooltip.text+' | '+tooltip.theme); //DEBUG
|
||||
|
||||
@@ -110,36 +111,49 @@
|
||||
window.location = 'byond://winset?id='+tooltip.control+';anchor1=0,0;size=999x999';
|
||||
|
||||
//Get the real icon size according to the client view
|
||||
//FYI, this bit is even more borrowed from goon, our widescreen broke tooltips so I took a look at how they do it
|
||||
//To improve our code. Thanks gooncoders, very cool
|
||||
var mapWidth = map['view-size'].x,
|
||||
mapHeight = map['view-size'].y,
|
||||
tilesShown = (tooltip.clientView * 2) + 1,
|
||||
realIconSize = mapWidth / tilesShown,
|
||||
resizeRatio = realIconSize / tooltip.tileSize,
|
||||
tilesShownX = tooltip.client_view_w
|
||||
tilesShownY = tooltip.client_view_h
|
||||
realIconSizeX = mapWidth / tilesShownX,
|
||||
realIconSizeY = mapHeight / tilesShownY,
|
||||
resizeRatioX = realIconSizeX / tooltip.tileSize,
|
||||
resizeRatioY = realIconSizeY / tooltip.tileSize,
|
||||
//Calculate letterboxing offsets
|
||||
leftOffset = (map.size.x - mapWidth) / 2,
|
||||
topOffset = (map.size.y - mapHeight) / 2;
|
||||
|
||||
//alert(realIconSize + ' | ' +tooltip.tileSize + ' | ' + resizeRatio); //DEBUG
|
||||
|
||||
//Parse out the tile and cursor locations from params (e.g. "icon-x=32;icon-y=29;screen-loc=3:10,15:29")
|
||||
const parameters = new Object();
|
||||
|
||||
//Parse out the contents of params (e.g. "icon-x=32;icon-y=29;screen-loc=3:10,15:29")
|
||||
//It is worth noting that params is not always ordered in the same way. We therefore need to write the code
|
||||
//To load their values in independantly of their order
|
||||
var paramsA = tooltip.params.cursor.split(';');
|
||||
if(paramsA.length < 3) {return false;} //Sometimes screen-loc is never sent ahaha fuck you byond
|
||||
for (var i = 0; i < paramsA.length; i++) {
|
||||
var entry = paramsA[i];
|
||||
var nameAndValue = entry.split("=");
|
||||
parameters[nameAndValue[0]] = nameAndValue[1];
|
||||
}
|
||||
|
||||
//Sometimes screen-loc is never sent ahaha fuck you byond
|
||||
if (!parameters["icon-x"] || !parameters["icon-y"] || !parameters["screen-loc"]) {
|
||||
return false;
|
||||
}
|
||||
//icon-x
|
||||
var iconX = paramsA[0];
|
||||
iconX = iconX.split('=');
|
||||
iconX = parseInt(iconX[1]);
|
||||
var iconX = parseInt(parameters["icon-x"]);
|
||||
//icon-y
|
||||
var iconY = paramsA[1];
|
||||
iconY = iconY.split('=');
|
||||
iconY = parseInt(iconY[1]);
|
||||
var iconY = parseInt(parameters["icon-y"]);
|
||||
//screen-loc
|
||||
var screenLoc = paramsA[2];
|
||||
screenLoc = screenLoc.split('=');
|
||||
screenLoc = screenLoc[1].split(',');
|
||||
if(screenLoc.length < 2) {return false;}
|
||||
var screenLoc = parameters["screen-loc"];
|
||||
screenLoc = screenLoc.split(',');
|
||||
if (screenLoc.length < 2) {return false;}
|
||||
var left = screenLoc[0];
|
||||
var top = screenLoc[1];
|
||||
if(!left || !top) {return false;}
|
||||
if (!left || !top) {return false;}
|
||||
screenLoc = left.split(':');
|
||||
left = parseInt(screenLoc[0]);
|
||||
var enteredX = parseInt(screenLoc[1]);
|
||||
@@ -152,30 +166,30 @@
|
||||
var oScreenLoc = tooltip.params.screenLoc.split(','); //o for original ok
|
||||
|
||||
var west = oScreenLoc[0].split(':');
|
||||
if(west.length > 1) { //Only if west has a pixel offset
|
||||
if (west.length > 1) { //Only if west has a pixel offset
|
||||
var westOffset = parseInt(west[1]);
|
||||
if(westOffset !== 0) {
|
||||
if((iconX + westOffset) !== enteredX) { //Cursor entered on the offset tile
|
||||
if (westOffset !== 0) {
|
||||
if ((iconX + westOffset) !== enteredX) { //Cursor entered on the offset tile
|
||||
left = left + (westOffset < 0 ? 1 : -1);
|
||||
}
|
||||
leftOffset = leftOffset + (westOffset * resizeRatio);
|
||||
leftOffset = leftOffset + (westOffset * resizeRatioX);
|
||||
}
|
||||
}
|
||||
|
||||
if(oScreenLoc.length > 1) { //If north is given
|
||||
if (oScreenLoc.length > 1) { //If north is given
|
||||
var north = oScreenLoc[1].split(':');
|
||||
if(north.length > 1) { //Only if north has a pixel offset
|
||||
if (north.length > 1) { //Only if north has a pixel offset
|
||||
var northOffset = parseInt(north[1]);
|
||||
if(northOffset !== 0) {
|
||||
if((iconY + northOffset) === enteredY) { //Cursor entered on the original tile
|
||||
if (northOffset !== 0) {
|
||||
if ((iconY + northOffset) === enteredY) { //Cursor entered on the original tile
|
||||
top--;
|
||||
topOffset = topOffset - ((tooltip.tileSize + northOffset) * resizeRatio);
|
||||
topOffset = topOffset - ((tooltip.tileSize + northOffset) * resizeRatioY);
|
||||
} else { //Cursor entered on the offset tile
|
||||
if(northOffset < 0) { //Offset southwards
|
||||
topOffset = topOffset - ((tooltip.tileSize + northOffset) * resizeRatio);
|
||||
if (northOffset < 0) { //Offset southwards
|
||||
topOffset = topOffset - ((tooltip.tileSize + northOffset) * resizeRatioY);
|
||||
} else { //Offset northwards
|
||||
top--;
|
||||
topOffset = topOffset - (northOffset * resizeRatio);
|
||||
topOffset = topOffset - (northOffset * resizeRatioY);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -183,17 +197,17 @@
|
||||
}
|
||||
|
||||
//Handle special cases (for fuck sake)
|
||||
if(tooltip.special !== 'none') {
|
||||
if (tooltip.special !== 'none') {
|
||||
//Put yo special cases here
|
||||
}
|
||||
|
||||
//Clamp values
|
||||
left = (left < 0 ? 0 : (left > tilesShown ? tilesShown : left));
|
||||
top = (top < 0 ? 0 : (top > tilesShown ? tilesShown : top));
|
||||
left = (left < 0 ? 0 : (left > tilesShownX ? tilesShownX : left));
|
||||
top = (top < 0 ? 0 : (top > tilesShownY ? tilesShownY : top));
|
||||
|
||||
//Calculate where on the screen the popup should appear (below the hovered tile)
|
||||
var posX = Math.round(((left - 1) * realIconSize) + leftOffset + tooltip.padding); //-1 to position at the left of the target tile
|
||||
var posY = Math.round(((tilesShown - top + 1) * realIconSize) + topOffset + tooltip.padding); //+1 to position at the bottom of the target tile
|
||||
var posX = Math.round(((left - 1) * realIconSizeX) + leftOffset + tooltip.padding); //-1 to position at the left of the target tile
|
||||
var posY = Math.round(((tilesShownY - top + 1) * realIconSizeY) + topOffset + tooltip.padding); //+1 to position at the bottom of the target tile
|
||||
|
||||
//alert(mapWidth+' | '+mapHeight+' | '+tilesShown+' | '+realIconSize+' | '+leftOffset+' | '+topOffset+' | '+left+' | '+top+' | '+posX+' | '+posY); //DEBUG
|
||||
|
||||
@@ -207,11 +221,16 @@
|
||||
|
||||
$wrap.width($wrap.width() + 2); //Dumb hack to fix a bizarre sizing bug
|
||||
|
||||
var docWidth = $wrap.outerWidth(),
|
||||
docHeight = $wrap.outerHeight();
|
||||
var pixelRatio = 1;
|
||||
if (window.devicePixelRatio) {
|
||||
pixelRatio = window.devicePixelRatio;
|
||||
}
|
||||
|
||||
if(posY + docHeight > map.size.y) { //Is the bottom edge below the window? Snap it up if so
|
||||
posY = (posY - docHeight) - realIconSize - tooltip.padding;
|
||||
var docWidth = Math.floor($wrap.outerWidth() * pixelRatio),
|
||||
docHeight = Math.floor($wrap.outerHeight() * pixelRatio);
|
||||
|
||||
if (posY + docHeight > map.size.y) { //Is the bottom edge below the window? Snap it up if so
|
||||
posY = (posY - docHeight) - realIconSizeY - tooltip.padding;
|
||||
}
|
||||
|
||||
//Actually size, move and show the tooltip box
|
||||
@@ -221,10 +240,11 @@
|
||||
tooltip.hide();
|
||||
});
|
||||
},
|
||||
update: function(params, clientView, text, theme, special) {
|
||||
update: function(params, client_vw , clien_vh , text, theme, special) {
|
||||
//Assign our global object
|
||||
tooltip.params = $.parseJSON(params);
|
||||
tooltip.clientView = parseInt(clientView);
|
||||
tooltip.client_view_w = parseInt(client_vw);
|
||||
tooltip.client_view_h = parseInt(clien_vh);
|
||||
tooltip.text = text;
|
||||
tooltip.theme = theme;
|
||||
tooltip.special = special;
|
||||
|
||||
Reference in New Issue
Block a user