mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-10-01 15:22:35 -05:00
Always load resources from play.pokemonshowdown.com
With the advent of the *.psim.us URI scheme, one problem was that images and other resources were not cached across different servers because each server had a different URI for the same resource. This commit resolves the problem by loading all resources from play.pokemonshowdown.com.
This commit is contained in:
@@ -187,7 +187,7 @@ if (!$psim) {
|
||||
<![endif]-->
|
||||
|
||||
<div id="simheader">
|
||||
<h1 style="margin-top:2px;margin-right:10em;padding-top:0;"><img src="/pokemonshowdownbeta.png" alt="Pokemon Showdown! (beta)" /></h1>
|
||||
<h1 style="margin-top:2px;margin-right:10em;padding-top:0;"><img src="http://play.pokemonshowdown.com/pokemonshowdownbeta.png" alt="Pokemon Showdown! (beta)" /></h1>
|
||||
</div>
|
||||
<div id="leftbarbg"><div><span></span></div></div>
|
||||
<div id="leftbar">
|
||||
|
||||
32
js/battle.js
32
js/battle.js
@@ -133,7 +133,7 @@ function Pokemon(species) {
|
||||
if (selfP.hasVolatile(volatile)) return;
|
||||
selfP.volatiles[volatile] = [volatile, null];
|
||||
if (volatile === 'leechseed') {
|
||||
selfP.side.battle.spriteElemsFront[selfP.side.n].append('<img src="/fx/energyball.png" style="display:none;position:absolute" />');
|
||||
selfP.side.battle.spriteElemsFront[selfP.side.n].append('<img src="' + Tools.resourcePrefix + 'fx/energyball.png" style="display:none;position:absolute" />');
|
||||
var curelem = selfP.side.battle.spriteElemsFront[selfP.side.n].children().last();
|
||||
curelem.css(self.pos({
|
||||
display: 'block',
|
||||
@@ -145,7 +145,7 @@ function Pokemon(species) {
|
||||
}, BattleEffects.energyball));
|
||||
var elem = curelem;
|
||||
|
||||
selfP.side.battle.spriteElemsFront[selfP.side.n].append('<img src="/fx/energyball.png" style="display:none;position:absolute" />');
|
||||
selfP.side.battle.spriteElemsFront[selfP.side.n].append('<img src="' + Tools.resourcePrefix + 'fx/energyball.png" style="display:none;position:absolute" />');
|
||||
curelem = selfP.side.battle.spriteElemsFront[selfP.side.n].children().last();
|
||||
curelem.css(self.pos({
|
||||
display: 'block',
|
||||
@@ -157,7 +157,7 @@ function Pokemon(species) {
|
||||
}, BattleEffects.energyball));
|
||||
elem = elem.add(curelem);
|
||||
|
||||
selfP.side.battle.spriteElemsFront[selfP.side.n].append('<img src="/fx/energyball.png" style="display:none;position:absolute" />');
|
||||
selfP.side.battle.spriteElemsFront[selfP.side.n].append('<img src="' + Tools.resourcePrefix + 'fx/energyball.png" style="display:none;position:absolute" />');
|
||||
curelem = selfP.side.battle.spriteElemsFront[selfP.side.n].children().last();
|
||||
curelem.css(self.pos({
|
||||
display: 'block',
|
||||
@@ -4799,13 +4799,13 @@ function Battle(frame, logFrame, noPreload) {
|
||||
for (i in BattleEffects) {
|
||||
if (BattleEffects[i].url) self.preloadImage(BattleEffects[i].url);
|
||||
}
|
||||
self.preloadImage('/fx/weather-raindance.jpg'); // rain is used often enough to precache
|
||||
self.preloadImage('/sprites/bw/substitute.png');
|
||||
self.preloadImage('/sprites/bw-back/substitute.png');
|
||||
//self.preloadImage('/fx/bg.jpg');
|
||||
self.preloadImage(Tools.resourcePrefix + 'fx/weather-raindance.jpg'); // rain is used often enough to precache
|
||||
self.preloadImage(Tools.resourcePrefix + 'sprites/bw/substitute.png');
|
||||
self.preloadImage(Tools.resourcePrefix + 'sprites/bw-back/substitute.png');
|
||||
//self.preloadImage(Tools.resourcePrefix + 'fx/bg.jpg');
|
||||
};
|
||||
this.preloadSounds = function () {
|
||||
//self.preloadAudio('audio/bw-trainer-battle.mp3');
|
||||
//self.preloadAudio(Tools.resourcePrefix + 'audio/bw-trainer-battle.mp3');
|
||||
}
|
||||
this.preloadAudio = function (url, autoplay) {
|
||||
if (noPreload) return;
|
||||
@@ -4845,29 +4845,29 @@ function Battle(frame, logFrame, noPreload) {
|
||||
if (window.forceBgm) bgmNum = window.forceBgm;
|
||||
switch (bgmNum) {
|
||||
case -1:
|
||||
self.preloadBgm('/audio/bw2-homika-dogars.mp3', true, 1661, 68131);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/bw2-homika-dogars.mp3', true, 1661, 68131);
|
||||
break;
|
||||
case 0:
|
||||
self.preloadBgm('/audio/hgss-kanto-trainer.mp3', true, 13003, 94656);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/hgss-kanto-trainer.mp3', true, 13003, 94656);
|
||||
break;
|
||||
case 1:
|
||||
self.preloadBgm('/audio/bw-subway-trainer.mp3', true, 15503, 110984);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/bw-subway-trainer.mp3', true, 15503, 110984);
|
||||
break;
|
||||
case 2:
|
||||
self.preloadBgm('/audio/bw-trainer.mp3', true, 14629, 110109);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/bw-trainer.mp3', true, 14629, 110109);
|
||||
break;
|
||||
case 3:
|
||||
self.preloadBgm('/audio/bw-rival.mp3', true, 19180, 57373);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/bw-rival.mp3', true, 19180, 57373);
|
||||
break;
|
||||
case 4:
|
||||
self.preloadBgm('/audio/dpp-trainer.mp3', true, 13440, 96959);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/dpp-trainer.mp3', true, 13440, 96959);
|
||||
break;
|
||||
case 5:
|
||||
self.preloadBgm('/audio/hgss-johto-trainer.mp3', true, 23731, 125086);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/hgss-johto-trainer.mp3', true, 23731, 125086);
|
||||
break;
|
||||
case 6:
|
||||
default:
|
||||
self.preloadBgm('/audio/dpp-rival.mp3', true, 13888, 66352);
|
||||
self.preloadBgm(Tools.resourcePrefix + 'audio/dpp-rival.mp3', true, 13888, 66352);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -306,6 +306,8 @@ var basespecieschart = {
|
||||
|
||||
var Tools = {
|
||||
|
||||
resourcePrefix: 'http://play.pokemonshowdown.com/',
|
||||
|
||||
showInterstice: (function() {
|
||||
var patterns = (function(whitelist) {
|
||||
var patterns = [];
|
||||
@@ -596,11 +598,11 @@ var Tools = {
|
||||
var num = '' + BattlePokemonSprites[pokemon.speciesid].num;
|
||||
if (num.length < 3) num = '0' + num;
|
||||
if (num.length < 3) num = '0' + num;
|
||||
cryurl = '/audio/cries/' + num + '.wav';
|
||||
cryurl = Tools.resourcePrefix + 'audio/cries/' + num + '.wav';
|
||||
}
|
||||
if (pokemon.shiny) back += '-shiny';
|
||||
if (window.BattlePokemonSprites && BattlePokemonSprites[pokemon.speciesid] && BattlePokemonSprites[pokemon.speciesid][facing]) {
|
||||
var url = '/sprites/bwani'+back;
|
||||
var url = Tools.resourcePrefix + 'sprites/bwani'+back;
|
||||
url += '/'+spriteid;
|
||||
var spriteType = 'ani';
|
||||
if (BattlePokemonSprites[pokemon.speciesid][facing]['anif'] && pokemon.gender === 'F') {
|
||||
@@ -620,7 +622,7 @@ var Tools = {
|
||||
return {
|
||||
w: 96,
|
||||
h: 96,
|
||||
url: '/sprites/bw'+back+'/' + spriteid + '.png',
|
||||
url: Tools.resourcePrefix + 'sprites/bw'+back+'/' + spriteid + '.png',
|
||||
cryurl: cryurl,
|
||||
isBackSprite: isBack
|
||||
};
|
||||
@@ -629,11 +631,11 @@ var Tools = {
|
||||
getIcon: function(pokemon) {
|
||||
var num = 0;
|
||||
if (pokemon === 'pokeball') {
|
||||
return 'background:transparent url(/sprites/bwicons-pokeball-sheet.png) no-repeat scroll -0px -8px';
|
||||
return 'background:transparent url(' + Tools.resourcePrefix + 'sprites/bwicons-pokeball-sheet.png) no-repeat scroll -0px -8px';
|
||||
} else if (pokemon === 'pokeball-statused') {
|
||||
return 'background:transparent url(/sprites/bwicons-pokeball-sheet.png) no-repeat scroll -32px -8px';
|
||||
return 'background:transparent url(' + Tools.resourcePrefix + 'sprites/bwicons-pokeball-sheet.png) no-repeat scroll -32px -8px';
|
||||
} else if (pokemon === 'pokeball-none') {
|
||||
return 'background:transparent url(/sprites/bwicons-pokeball-sheet.png) no-repeat scroll -64px -8px';
|
||||
return 'background:transparent url(' + Tools.resourcePrefix + 'sprites/bwicons-pokeball-sheet.png) no-repeat scroll -64px -8px';
|
||||
}
|
||||
var id = toId(pokemon);
|
||||
if (pokemon && pokemon.species) id = toId(pokemon.species);
|
||||
@@ -696,7 +698,7 @@ var Tools = {
|
||||
var top = 8 + Math.floor(num / 16) * 32;
|
||||
var left = (num % 16) * 32;
|
||||
var fainted = (pokemon && pokemon.fainted?';opacity:.4':'');
|
||||
return 'background:transparent url(/sprites/bwicons-sheet.png?v0.7.18) no-repeat scroll -' + left + 'px -' + top + 'px' + fainted;
|
||||
return 'background:transparent url(' + Tools.resourcePrefix + 'sprites/bwicons-sheet.png?v0.7.18) no-repeat scroll -' + left + 'px -' + top + 'px' + fainted;
|
||||
},
|
||||
|
||||
getTeambuilderSprite: function(pokemon) {
|
||||
@@ -715,7 +717,7 @@ var Tools = {
|
||||
if (BattlePokemonSprites && BattlePokemonSprites[id] && BattlePokemonSprites[id].front && BattlePokemonSprites[id].front.anif && pokemon.gender === 'F') {
|
||||
id+='-f';
|
||||
}
|
||||
return 'background-image:url(/sprites/bw'+shiny+'/'+id+'.png)';
|
||||
return 'background-image:url(' + Tools.resourcePrefix + 'sprites/bw'+shiny+'/'+id+'.png)';
|
||||
},
|
||||
|
||||
getItemIcon: function(item) {
|
||||
@@ -725,12 +727,12 @@ var Tools = {
|
||||
|
||||
var top = Math.floor(num / 16) * 24;
|
||||
var left = (num % 16) * 24;
|
||||
return 'background:transparent url(/sprites/itemicons-sheet.png) no-repeat scroll -' + left + 'px -' + top + 'px';
|
||||
return 'background:transparent url(' + Tools.resourcePrefix + 'sprites/itemicons-sheet.png) no-repeat scroll -' + left + 'px -' + top + 'px';
|
||||
},
|
||||
|
||||
getTypeIcon: function(type, b) { // b is just for utilichart.js
|
||||
sanitizedType = type.replace(/\?/g,'%3f');
|
||||
return '<img src="/sprites/types/'+sanitizedType+'.png" alt="'+type+'" height="14" width="32"'+(b?' class="b"':'')+' />';
|
||||
return '<img src="' + Tools.resourcePrefix + 'sprites/types/'+sanitizedType+'.png" alt="'+type+'" height="14" width="32"'+(b?' class="b"':'')+' />';
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
10
js/sim.js
10
js/sim.js
@@ -1812,7 +1812,7 @@ function Lobby(id, elem) {
|
||||
roomListCode += '<div><a href="' + locPrefix + '' + id + '" onclick="selectTab(\'' + id + '\');return false">' + roomDesc + '</a></div>';
|
||||
}
|
||||
|
||||
var code = '<img src="/sprites/trainers/' + data.avatar + '.png" />';
|
||||
var code = '<img src="' + Tools.resourcePrefix + 'sprites/trainers/' + data.avatar + '.png" />';
|
||||
if (roomListCode) {
|
||||
roomListCode = '<div class="action-form">In rooms:<br /><div class="roomlist">' + roomListCode + '</div></div>';
|
||||
}
|
||||
@@ -2661,7 +2661,7 @@ function showTooltip(thing, type, elem, ownHeight, isActive) {
|
||||
if (!accuracy || accuracy === true) accuracy = '—';
|
||||
else accuracy = '' + accuracy + '%';
|
||||
text = '<div class="tooltipinner"><div class="tooltip">';
|
||||
text += '<h2>' + move.name + '<br />'+Tools.getTypeIcon(move.type)+' <img src="/sprites/categories/' + move.category + '.png" alt="' + move.category + '" /></h2>';
|
||||
text += '<h2>' + move.name + '<br />'+Tools.getTypeIcon(move.type)+' <img src="' + Tools.resourcePrefix + 'sprites/categories/' + move.category + '.png" alt="' + move.category + '" /></h2>';
|
||||
text += '<p>Base power: ' + basePower + '</p>';
|
||||
text += '<p>Accuracy: ' + accuracy + '</p>';
|
||||
if (move.desc) {
|
||||
@@ -2879,7 +2879,7 @@ var favicon = {
|
||||
return false;
|
||||
};
|
||||
dismissNotify = function () {
|
||||
favicon.change('/favicon.ico');
|
||||
favicon.change(Tools.resourcePrefix + 'favicon.ico');
|
||||
if (activeNotification) {
|
||||
activeNotification.cancel();
|
||||
activeNotification = null;
|
||||
@@ -2888,7 +2888,7 @@ var favicon = {
|
||||
};
|
||||
notify = function (data) {
|
||||
if (window.focused) return;
|
||||
favicon.animate(['/favicon-notify.ico', '/favicon-notify2.ico']);
|
||||
favicon.animate([Tools.resourcePrefix + 'favicon-notify.ico', Tools.resourcePrefix + 'favicon-notify2.ico']);
|
||||
if (needEnableNotify()) {
|
||||
requestNotify();
|
||||
} else {
|
||||
@@ -3062,7 +3062,7 @@ function overlay(overlayType, data) {
|
||||
contents += '<p><label class="label">Username:</label> ' + (data.name || me.name) + '<input type="hidden" id="overlay_username" value="' + sanitize(data.name || me.name) + '" /></p>';
|
||||
contents += '<p><label class="label">Password:</label> <input class="textbox" type="password" id="overlay_password" /></p>';
|
||||
contents += '<p><label class="label">Password (confirm):</label> <input class="textbox" type="password" id="overlay_cpassword" /></p>';
|
||||
contents += '<p><img src="/sprites/bwani/pikachu.gif" /></p>';
|
||||
contents += '<p><img src="' + Tools.resourcePrefix + 'sprites/bwani/pikachu.gif" /></p>';
|
||||
contents += '<p><label class="label">What is this pokemon?</label> <input class="textbox" type="text" id="overlay_captcha" value="' + sanitize(data.captcha) + '" /></p>';
|
||||
contents += '<p><button type="submit"><strong>Register</strong></button> <button onclick="overlayClose();return false">Cancel</button></p>';
|
||||
selectElem = '#overlay_password';
|
||||
|
||||
@@ -243,7 +243,7 @@ function BattleChart()
|
||||
|
||||
text += '<span class="col typecol">';
|
||||
text += Tools.getTypeIcon(move.type, match.type);
|
||||
text += '<img src="/sprites/categories/'+move.category+'.png" alt="'+move.category+'" height="14" width="32"'+(match.category?' class="b"':'')+' />';
|
||||
text += '<img src="' + Tools.resourcePrefix + 'sprites/categories/'+move.category+'.png" alt="'+move.category+'" height="14" width="32"'+(match.category?' class="b"':'')+' />';
|
||||
text += '</span> ';
|
||||
|
||||
text += '<span class="col labelcol">'+(move.category!=='Status'?('<em>Power</em><br />'+(move.basePower||'—')):'')+'</span> ';
|
||||
|
||||
@@ -553,7 +553,7 @@ button.closebutton i
|
||||
cursor: pointer;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
background: transparent url(/fx/closebuttonsheet.png) no-repeat scroll 0px -16px;
|
||||
background: transparent url(http://play.pokemonshowdown.com/fx/closebuttonsheet.png) no-repeat scroll 0px -16px;
|
||||
z-index: 10;
|
||||
}
|
||||
#leftbar div .close2
|
||||
@@ -570,7 +570,7 @@ button.closebutton i
|
||||
}
|
||||
#leftbar div .close:hover
|
||||
{
|
||||
background: transparent url(/fx/closebuttonsheet.png) no-repeat scroll 0px 0px;
|
||||
background: transparent url(http://play.pokemonshowdown.com/fx/closebuttonsheet.png) no-repeat scroll 0px 0px;
|
||||
}
|
||||
#leftbar small
|
||||
{
|
||||
@@ -652,7 +652,7 @@ button.closebutton i
|
||||
border-right: 0;
|
||||
height: auto;
|
||||
width: auto;
|
||||
background: #edf1f4 url(/data/meloettabg.png) no-repeat scroll right bottom;
|
||||
background: #edf1f4 url(http://play.pokemonshowdown.com/data/meloettabg.png) no-repeat scroll right bottom;
|
||||
word-wrap: break-word;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user