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:
Cathy J. Fitzpatrick
2013-03-22 04:07:30 -06:00
parent 2ff0176b0e
commit d99ede9def
6 changed files with 38 additions and 36 deletions

View File

@@ -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">

View File

@@ -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;

View File

@@ -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"':'')+' />';
}
};

View File

@@ -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 = '&mdash;';
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';

View File

@@ -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||'&mdash;')):'')+'</span> ';

View File

@@ -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;
}