set(ggid,get(scene[get(xml.scene)].gid));
if(ggid == skin_settings.thumbscc,
skin_update_scene_infos();
skin_updatescroll();
,
clearthumbs();
);
for(set(i,0), i LT scene.count, inc(i),
if(scene[get(i)].gid == ggid
,
if(groupscenes,
set(groupscenes[get(groupscenes.count)].value,get(scene[get(i)].name));
,
set(groupscenes[0].value,get(scene[get(i)].name));
);
set(skin_settings.thumbscc,get(ggid));
);
);
if(groupscenes,
set(groupscenes[get(groupscenes.count)].value,scene_01);
set(groupscenes[get(groupscenes.count)].value,scene_02);
set(groupscenes[get(groupscenes.count)].value,scene_03);
set(groupscenes[get(groupscenes.count)].value,scene_04);
set(groupscenes[get(groupscenes.count)].value,scene_05);
set(groupscenes[get(groupscenes.count)].value,scene_06);
);
skin_addthumbs();
if(groupscenes,
for(set(i,0), i LT groupscenes.count, ,
groupscenes.removearrayitem(get(i));
);
for(set(r,0), r LT layer.count, inc(r),
if(layer[get(r)].parent == skin_thumbs,
removelayer(get(layer[get(r)].name), true);
sub(r,2);
);
);
);
addlayer(skin_thumbborder);
layer[skin_thumbborder].loadstyle(thumbborder_style);
groupthumbs2();
for(set(i,0), i LT scene.count - 4, inc(i),
subtxt(newscenename,get(scene[get(i)].name),6,5);
if(newscenename == skin_settings.thumbscc,
,
if(groupscenes,
set(namecf,false);
for(set(j,0), j LT groupscenes.count, inc(j),
subtxt(newscenenamen,get(groupscenes[get(j)].value),6,5);
if(newscenenamen == newscenename ,
set(namecf,true);
);
);
if(namecf == false,
set(groupscenes[get(groupscenes.count)].value,get(scene[get(i)].name));
);
,
set(groupscenes[0].value,get(scene[get(i)].name));
);
set(skin_settings.thumbscc,get(newscenename));
);
);
skin_addthumbs
if(device.mobile
,mskin_addthumbs();
,
copy(thumbwidth, skin_settings.thumbs_width);
copy(thumbheight, skin_settings.thumbs_height);
copy(thumbpadding, skin_settings.thumbs_padding);
copy(thumbcrop, skin_settings.thumbs_crop);
add(thumbxoffset, thumbwidth, thumbpadding);
mul(thumbxcenter, thumbxoffset, 0.5);
mul(thumbbarwidth, thumbxoffset, groupscenes.count);
add(thumbbarwidth, thumbpadding);
add(thumbbarheight, thumbpadding, thumbheight);
add(thumbbarheight, thumbpadding);
if(skin_settings.thumbs_scrollindicator,
copy(layer[skin_thumbs_scrollindicator].y, thumbbarheight);
add(thumbbarheight, layer[skin_thumbs_scrollindicator].height);
);
copy(layer[skin_thumbs].height, thumbbarheight);
copy(layer[skin_thumbs].width, thumbbarwidth);
mul(halfheight, thumbbarheight, 0.5);
for(set(i,0), i LT groupscenes.count, inc(i),
txtadd(thumbname,'skin_thumb_',get(i));
addlayer(get(thumbname));
if(isen,
txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/ethumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
,
txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/thumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
);
set(layer[get(thumbname)].keep, true);
set(layer[get(thumbname)].parent, 'skin_thumbs');
set(layer[get(thumbname)].align, lefttop);
copy(layer[get(thumbname)].crop, thumbcrop);
copy(layer[get(thumbname)].width, thumbwidth);
copy(layer[get(thumbname)].height, thumbheight);
set(layer[get(thumbname)].zorder, 10);
mul(thumbx,i, thumbxoffset);
add(thumbx, thumbpadding);
copy(layer[get(thumbname)].x, thumbx);
copy(layer[get(thumbname)].y, thumbpadding);
add(scene[get(i)].thumbx, thumbx, thumbxcenter);
copy(scene[get(i)].thumby, thumbpadding);
set(layer[get(thumbname)].linkedscene, get(groupscenes[get(i)].value) );
set(layer[get(thumbname)].onclick, txtadd(layer[skin_thumbborder].parent, get(name),bg); skin_showthumbs(false); loadscene(get(linkedscene),null, get(skin_settings.loadscene_flags),get(skin_settings.loadscene_blend));skin_update_scene_infos(); );
if(skin_settings.tooltips_thumbs,
set(layer[get(thumbname)].tooltip, get(scene[get(groupscenes[get(i)].value)].title) );
layer[get(thumbname)].loadstyle(skin_tooltips);
);
if(skin_settings.thumbs_text,
txtadd(thumbtext, 'skin_thumbtext_', get(i));
addlayer(get(thumbtext));
layer[get(thumbtext)].loadstyle(skin_thumbtext_style);
set(layer[get(thumbtext)].keep, true);
set(layer[get(thumbtext)].parent, get(thumbname));
set(layer[get(thumbtext)].html, get(scene[get(groupscenes[get(i)].value)].grouptitle));
);
txtadd(thumbnamebg,'skin_thumb_',get(i),bg);
addlayer(get(thumbnamebg));
set(layer[get(thumbnamebg)].type, container);
set(layer[get(thumbnamebg)].bgcolor, 0x000000);
set(layer[get(thumbnamebg)].bgalpha, 0.3);
set(layer[get(thumbnamebg)].zorder, 1);
set(layer[get(thumbnamebg)].keep, true);
set(layer[get(thumbnamebg)].parent, 'skin_thumbs');
set(layer[get(thumbnamebg)].align, lefttop);
copy(layer[get(thumbnamebg)].crop, thumbcrop);
copy(layer[get(thumbnamebg)].width, thumbwidth);
copy(layer[get(thumbnamebg)].height, thumbheight);
mul(thumbx,i, thumbxoffset);
add(thumbx, thumbpadding);
copy(layer[get(thumbnamebg)].x, thumbx);
copy(layer[get(thumbnamebg)].y, thumbpadding);
);
);
skin_update_scene_infos();
skin_updatescroll();
copy(thumbwidth, skin_settings.mthumbs_width);
copy(thumbheight, skin_settings.mthumbs_height);
copy(thumbpadding, skin_settings.mthumbs_padding);
copy(thumbcrop, skin_settings.mthumbs_crop);
add(thumbyoffset, thumbheight, thumbpadding);
mul(thumbycenter, thumbyoffset, 0.5);
mul(thumbbarheight, thumbyoffset, groupscenes.count);
add(thumbbarheight, thumbpadding);
add(thumbbarwidth, thumbpadding, thumbwidth);
add(thumbbarwidth, thumbpadding);
if(skin_settings.thumbs_scrollindicator,
copy(layer[skin_thumbs_scrollindicator].y, thumbbarheight);
add(thumbbarheight, layer[skin_thumbs_scrollindicator].height);
);
copy(layer[skin_thumbs].height, thumbbarheight);
copy(layer[skin_thumbs].width, thumbbarwidth);
mul(halfheight, thumbbarheight, 0.5);
for(set(i,0), i LT groupscenes.count, inc(i),
txtadd(thumbname,'skin_thumb_',get(i));
addlayer(get(thumbname));
if(isen,
txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/ethumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
,
txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/thumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
);
set(layer[get(thumbname)].keep, true);
set(layer[get(thumbname)].parent, 'skin_thumbs');
set(layer[get(thumbname)].align, top);
copy(layer[get(thumbname)].crop, thumbcrop);
copy(layer[get(thumbname)].width, thumbwidth);
copy(layer[get(thumbname)].height, thumbheight);
set(layer[get(thumbname)].zorder, 10);
mul(thumby,i, thumbyoffset);
add(thumby, thumbpadding);
copy(layer[get(thumbname)].x, thumbpadding);
copy(layer[get(thumbname)].y, thumby);
add(scene[get(i)].thumby, thumby, thumbycenter);
copy(scene[get(i)].thumbx, thumbpadding);
set(layer[get(thumbname)].linkedscene, get(groupscenes[get(i)].value) );
set(layer[get(thumbname)].onclick, txtadd(layer[skin_thumbborder].parent, get(name),bg); skin_showthumbs(false); loadscene(get(linkedscene),null,get(skin_settings.loadscene_flags),get(skin_settings.loadscene_blend));skin_update_scene_infos(); );
if(skin_settings.tooltips_thumbs,
set(layer[get(thumbname)].tooltip, get(scene[get(groupscenes[get(i)].value)].title) );
layer[get(thumbname)].loadstyle(skin_tooltips);
);
if(skin_settings.thumbs_text,
txtadd(thumbtext, 'skin_thumbtext_', get(i));
addlayer(get(thumbtext));
layer[get(thumbtext)].loadstyle(skin_thumbtext_style);
set(layer[get(thumbtext)].keep, true);
set(layer[get(thumbtext)].parent, get(thumbname));
set(layer[get(thumbtext)].html, get(scene[get(groupscenes[get(i)].value)].grouptitle));
);
txtadd(thumbnamebg,'skin_thumb_',get(i),bg);
addlayer(get(thumbnamebg));
set(layer[get(thumbnamebg)].type, container);
set(layer[get(thumbnamebg)].bgcolor, 0x443a33);
set(layer[get(thumbnamebg)].bgalpha, 1);
set(layer[get(thumbnamebg)].zorder, 1);
set(layer[get(thumbnamebg)].keep, true);
set(layer[get(thumbnamebg)].parent, 'skin_thumbs');
set(layer[get(thumbnamebg)].align, lefttop);
copy(layer[get(thumbnamebg)].crop, thumbcrop);
copy(layer[get(thumbnamebg)].width, thumbwidth);
copy(layer[get(thumbnamebg)].height, thumbheight);
mul(thumby,i, thumbyoffset);
add(thumby, thumbpadding);
copy(layer[get(thumbnamebg)].x, thumbpadding);
copy(layer[get(thumbnamebg)].y, thumby);
);
if(layer[skin_thumbs].loaded,
set(cursceneindex, 0);
if(xml.scene, copy(cursceneindex, scene[get(xml.scene)].index));
layer[skin_thumbs].setcenter(get(scene[get(cursceneindex)].thumbx), get(scene[get(cursceneindex)].thumby));
);
copy(padding,skin_settings.thumbs_padding);
if(skin_settings.thumbs_scrollbuttons,
if(loverflow GT 0, set(layer[skin_thumbs_scrollleft].visible,true), set(layer[skin_thumbs_scrollleft].visible,false) );
if(roverflow GT 0, set(layer[skin_thumbs_scrollright].visible,true), set(layer[skin_thumbs_scrollright].visible,false) );
);
if(skin_settings.thumbs_scrollindicator,
if(woverflow GT 0,
set(layer[skin_thumbs_scrollindicator].visible,true);
sub(iw,pixelwidth,woverflow);
div(pw,iw,pixelwidth);
div(px,loverflow,woverflow);
mul(pw,iw);
copy(layer[skin_thumbs_scrollindicator].width,pw);
sub(iw,pw);
sub(iw,padding);
sub(iw,padding);
mul(px,iw);
add(px,padding);
copy(layer[skin_thumbs_scrollindicator].x,px);
,
set(layer[skin_thumbs_scrollindicator].visible,false);
);
);
if(xml.scene !== null AND scene[get(xml.scene)].index GE 0,
if(skin_settings.thumbs_loop == false,
if(scene[get(xml.scene)].index GT 0,
set(layer[skin_btn_prev].enabled, true);
set(layer[skin_btn_prev].alpha, 1.0);
,
set(layer[skin_btn_prev].enabled, false);
set(layer[skin_btn_prev].alpha, 0.3);
);
sub(lastsceneindex, scene.count, 1);
if(scene[get(xml.scene)].index LT lastsceneindex,
set(layer[skin_btn_next].enabled, true);
set(layer[skin_btn_next].alpha, 1.0);
,
set(layer[skin_btn_next].enabled, false);
set(layer[skin_btn_next].alpha, 0.3);
);
,
if(scene.count GT 1,
set(layer[skin_btn_prev].enabled, true);
set(layer[skin_btn_prev].alpha, 1.0);
set(layer[skin_btn_next].enabled, true);
set(layer[skin_btn_next].alpha, 1.0);
,
set(layer[skin_btn_prev].enabled, false);
set(layer[skin_btn_prev].alpha, 0.3);
set(layer[skin_btn_next].enabled, false);
set(layer[skin_btn_next].alpha, 0.3);
);
);
if(scene.count GT 1,
set(layer[skin_btn_prev_fs].visible, true);
set(layer[skin_btn_next_fs].visible, true);
,
set(layer[skin_btn_prev_fs].visible, false);
set(layer[skin_btn_next_fs].visible, false);
);
subtxt(newscenenamep,get(scene[get(xml.scene)].name),6,5);
initmap(get(newscenenamep));
set(tumindex,0);
for(set(i,0), i LT groupscenes.count, inc(i),
subtxt(newscenenamep2,get(groupscenes[get(i)].value),6,5);
if(newscenenamep == newscenenamep2,
set(tumindex,get(groupscenes[get(i)].index));
);
);
txtadd(parentname, 'skin_thumb_', get(tumindex));
if(layer[get(parentname)],
txtadd(parentbg,get(parentname),bg);
if(layer[skin_thumbborder].parent == get(parentbg),,
set(layer[skin_thumbborder].parent, get(parentbg));
set(layer[skin_thumbborder].visible, true);
mini_startup();
nexttick(mini_update_scene_infos);
);
,
set(layer[skin_thumbborder].visible, false);
);
);
if(scene[%1],
copy(cursceneindex, scene[get(xml.scene)].index);
copy(newsceneindex, scene[%1].index);
txtadd(layer[skin_thumbborder].parent, 'skin_thumb_', get(newsceneindex),bg);
layer[skin_thumbs].scrolltocenter(get(scene[get(newsceneindex)].thumbx), get(scene[get(newsceneindex)].thumby));
loadscene(get(scene[get(newsceneindex)].name),null,get(skin_settings.loadscene_flags),calc(newsceneindex LT cursceneindex ? skin_settings.loadscene_blend_prev : (newsceneindex GT cursceneindex ? skin_settings.loadscene_blend_next : skin_settings.loadscene_blend)));
);
add(newsceneindex, scene[get(xml.scene)].index, %1);
if(newsceneindex GE 0 AND newsceneindex LT scene.count,
txtadd(layer[skin_thumbborder].parent, 'skin_thumb_', get(newsceneindex),bg);
layer[skin_thumbs].scrolltocenter(get(scene[get(newsceneindex)].thumbx), get(scene[get(newsceneindex)].thumby));
loadscene(get(scene[get(newsceneindex)].name),null,get(skin_settings.loadscene_flags),calc(%1 LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
);
if(xml.scene == scene_01,set(layer[btn7].crop,136|20|96|96); set(layer[mbtn7].crop,136|20|96|96);,set(layer[btn7].crop,20|20|96|96);set(layer[mbtn7].crop,20|20|96|96);)
add(newsceneindex, scene[get(xml.scene)].index, %1);
sub(lastsceneindex, scene.count, 1);
if(newsceneindex LT 0, copy(newsceneindex,lastsceneindex));
if(newsceneindex GT lastsceneindex, set(newsceneindex,0));
layer[skin_thumbs].scrolltocenter(get(scene[get(newsceneindex)].thumbx), get(scene[get(newsceneindex)].thumby));
loadscene(get(scene[get(newsceneindex)].name),null,get(skin_settings.loadscene_flags),calc(%1 LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
if(display.stereo == true,
set(layer[skin_loadingtext].visible, false);
,
set(layer[skin_loadingtext].visible, %1);
);
set(layer[skin_tooltip].alpha,0.0);
set(layer[skin_tooltip].visible,false);
if('%1' !== 'null',
set(strength,0.7);
if(%2 != null, set(strength,%2));
set(layer[skin_buttonglow].parent, %1);
set(layer[skin_buttonglow].visible, true);
tween(layer[skin_buttonglow].alpha, get(strength), 0.07);
,
tween(layer[skin_buttonglow].alpha, 0.0, 0.1, default,
set(layer[skin_buttonglow].parent, null);
set(layer[skin_buttonglow].visible, false);
);
);
set(layer[get(name)].y_opened, get(layer[get(name)].y));
set(layer[get(name)].y_closed, calc(layer[get(name)].y - skin_settings.controlbar_offset - skin_settings.controlbar_height + skin_settings.controlbar_offset_closed));
if(layer[skin_map].state != 'closed', skin_showmap(false); wait(0.40); );
if(layer[skin_thumbs].state != 'closed', skin_showthumbs(false); wait(0.25); );
set(hidetime, calc('%1' == 'instant' ? 0.0 : 0.5));
tween(layer[skin_scroll_window].y, get(layer[skin_scroll_window ].y_closed), get(hidetime));
tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_closed), get(hidetime));
tween(layer[skin_control_bar].y, get(layer[skin_control_bar ].y_closed), get(hidetime));
tween(layer[skin_btn_prev_fs].x, 0, get(hidetime));
tween(layer[skin_btn_next_fs].x, 0, get(hidetime));
if(layer[skin_logo], tween(layer[skin_logo].alpha, 0.0, 0.5, default, set(layer[skin_logo].visible,false)); );
stopdelayedcall(skin_btn_show_alpha);
set(layer[skin_btn_show].visible, true);
delayedcall(skin_btn_show_alpha, get(hidetime), tween(layer[skin_btn_show].alpha, 0.25, 0.25); );
if(%1 == null, if(layer[skin_thumbs].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
mul(mh, layer[skin_scroll_layer].pixelheight, -1);
if(show,
set(layer[btn1].crop,136|252|96|96);set(layer[mbtn1].crop,136|252|96|96);
set(layer[skin_thumbs].state, 'opened');
tween(layer[skin_thumbs].alpha, 1.0, 0.25);
add(mh, layer[skin_thumbs].height);
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
set(layer[skin_thumbs_container].visible, true);
tween(layer[skin_thumbs_container].alpha, 1.0, 0.25);
tween(layer[skin_map].alpha, 0.0, 0.25, default, set(layer[skin_map].visible,false));
,
set(layer[btn1].crop,20|252|96|96);set(layer[mbtn1].crop,20|252|96|96);
set(layer[skin_thumbs].state, 'closed');
tween(layer[skin_thumbs].alpha, 0.0, 0.25, easeOutQuint);
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_thumbs_container].visible, false););
);
if(%1 == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
mul(mh, layer[skin_scroll_layer].pixelheight, -1);
if(show,
tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
set(layer[skin_map].visible, true);
tween(layer[skin_map].alpha, 1.0, 0.25);
set(layer[skin_map].state, 'opened');
sub(hh,area.pixelheight,skin_settings.controlbar_offset);
sub(hh,layer[skin_control_bar].height);
sub(hh,32);
add(mh,hh);
sub(hh,skin_settings.controlbar_overlap);
copy(layer[skin_map].height, hh);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
,
if(layer[skin_map].state != 'closed',
set(layer[skin_map].state, 'closed');
add(mh, layer[skin_scroll_layer].y_offset);
tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
);
);
if(keycode == 33, skin_nextscene_loop(-1) );
if(keycode == 34, skin_nextscene_loop(+1) );
if(keycode == 35, skin_gotoscene(calc(scene.count-1)) );
if(keycode == 36, skin_gotoscene(0) );
nav_control();
if(skin_settings.deeplinking AND (!webvr OR webvr.isenabled === false),
copy(adr, browser.location);
indexoftxt(qi, get(adr), '?');
if(qi GT 0, subtxt(adr, adr, 0, get(qi)));
copy(si, scene[get(xml.scene)].index);
copy(h, view.hlookat);
copy(v, view.vlookat);
copy(f, view.fov);
copy(d, view.distortion);
copy(a, view.architectural);
clamp(d, 0.0, 1.0);
clamp(a, 0.0, 1.0);
set(pp, calc(f LT 10 ? 6 : 2));
roundval(h, get(pp));
roundval(v, get(pp));
roundval(f, get(pp));
roundval(d, 2);
roundval(a, 1);
set(adr, calc(adr + '?startscene=' + si + '&startactions=lookat('+h+','+v+','+f+','+d+','+a+');'));
js( history.replaceState(null, document.title, get(adr)); );
);