Files
wolf3d-browser/js/sprites.js
Brian Harris e0b653888d Wolfenstein 3D browser version
This is the code for the browser version of Wolfenstein 3D which is
playable on http://www.wolfenstein.com/game_NA.php
2013-05-16 11:34:31 -05:00

1085 lines
45 KiB
JavaScript

/*
* ===========================================================================
*
* Wolf3D Browser Version GPL Source Code
* Copyright (C) 2012 id Software LLC, a ZeniMax Media company.
*
* This file is part of the Wolf3D Browser Version GPL Source Code ("Wolf3D Browser Source Code").
*
* Wolf3D Browser Source Code is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Wolf3D Browser Source Code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License version 2
* along with Wolf3D Browser Source Code. If not, see <http://www.gnu.org/licenses/>.
*
* If you have questions concerning this license, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
*
* ===========================================================================
*/
Wolf.Sprites = (function() {
var spriteTextures = [];
//
// sprite constants
//
var spriteNames = [
"SPR_DEMO",
"SPR_DEATHCAM",
//
// static sprites
//
// 002
"SPR_STAT_0", "SPR_STAT_1","SPR_STAT_2", "SPR_STAT_3",
"SPR_STAT_4", "SPR_STAT_5","SPR_STAT_6", "SPR_STAT_7",
"SPR_STAT_8", "SPR_STAT_9","SPR_STAT_10","SPR_STAT_11",
"SPR_STAT_12","SPR_STAT_13","SPR_STAT_14","SPR_STAT_15",
"SPR_STAT_16","SPR_STAT_17","SPR_STAT_18","SPR_STAT_19",
"SPR_STAT_20","SPR_STAT_21","SPR_STAT_22","SPR_STAT_23",
"SPR_STAT_24","SPR_STAT_25","SPR_STAT_26","SPR_STAT_27",
"SPR_STAT_28","SPR_STAT_29","SPR_STAT_30","SPR_STAT_31",
"SPR_STAT_32","SPR_STAT_33","SPR_STAT_34","SPR_STAT_35",
"SPR_STAT_36","SPR_STAT_37","SPR_STAT_38","SPR_STAT_39",
"SPR_STAT_40","SPR_STAT_41","SPR_STAT_42","SPR_STAT_43",
"SPR_STAT_44","SPR_STAT_45","SPR_STAT_46","SPR_STAT_47",
"SPR_STAT_48","SPR_STAT_49","SPR_STAT_50","SPR_STAT_51",
//
// Guard
//
// 054
"SPR_GRD_S_1","SPR_GRD_S_2","SPR_GRD_S_3","SPR_GRD_S_4",
"SPR_GRD_S_5","SPR_GRD_S_6","SPR_GRD_S_7","SPR_GRD_S_8",
"SPR_GRD_W1_1","SPR_GRD_W1_2","SPR_GRD_W1_3","SPR_GRD_W1_4",
"SPR_GRD_W1_5","SPR_GRD_W1_6","SPR_GRD_W1_7","SPR_GRD_W1_8",
"SPR_GRD_W2_1","SPR_GRD_W2_2","SPR_GRD_W2_3","SPR_GRD_W2_4",
"SPR_GRD_W2_5","SPR_GRD_W2_6","SPR_GRD_W2_7","SPR_GRD_W2_8",
"SPR_GRD_W3_1","SPR_GRD_W3_2","SPR_GRD_W3_3","SPR_GRD_W3_4",
"SPR_GRD_W3_5","SPR_GRD_W3_6","SPR_GRD_W3_7","SPR_GRD_W3_8",
"SPR_GRD_W4_1","SPR_GRD_W4_2","SPR_GRD_W4_3","SPR_GRD_W4_4",
"SPR_GRD_W4_5","SPR_GRD_W4_6","SPR_GRD_W4_7","SPR_GRD_W4_8",
"SPR_GRD_PAIN_1","SPR_GRD_DIE_1","SPR_GRD_DIE_2","SPR_GRD_DIE_3",
"SPR_GRD_PAIN_2","SPR_GRD_DEAD",
"SPR_GRD_SHOOT1","SPR_GRD_SHOOT2","SPR_GRD_SHOOT3",
//
// Dog
//
// 103
"SPR_DOG_W1_1","SPR_DOG_W1_2","SPR_DOG_W1_3","SPR_DOG_W1_4",
"SPR_DOG_W1_5","SPR_DOG_W1_6","SPR_DOG_W1_7","SPR_DOG_W1_8",
"SPR_DOG_W2_1","SPR_DOG_W2_2","SPR_DOG_W2_3","SPR_DOG_W2_4",
"SPR_DOG_W2_5","SPR_DOG_W2_6","SPR_DOG_W2_7","SPR_DOG_W2_8",
"SPR_DOG_W3_1","SPR_DOG_W3_2","SPR_DOG_W3_3","SPR_DOG_W3_4",
"SPR_DOG_W3_5","SPR_DOG_W3_6","SPR_DOG_W3_7","SPR_DOG_W3_8",
"SPR_DOG_W4_1","SPR_DOG_W4_2","SPR_DOG_W4_3","SPR_DOG_W4_4",
"SPR_DOG_W4_5","SPR_DOG_W4_6","SPR_DOG_W4_7","SPR_DOG_W4_8",
"SPR_DOG_DIE_1","SPR_DOG_DIE_2","SPR_DOG_DIE_3","SPR_DOG_DEAD",
"SPR_DOG_JUMP1","SPR_DOG_JUMP2","SPR_DOG_JUMP3",
//
// SS
//
// 142
"SPR_SS_S_1","SPR_SS_S_2","SPR_SS_S_3","SPR_SS_S_4",
"SPR_SS_S_5","SPR_SS_S_6","SPR_SS_S_7","SPR_SS_S_8",
"SPR_SS_W1_1","SPR_SS_W1_2","SPR_SS_W1_3","SPR_SS_W1_4",
"SPR_SS_W1_5","SPR_SS_W1_6","SPR_SS_W1_7","SPR_SS_W1_8",
"SPR_SS_W2_1","SPR_SS_W2_2","SPR_SS_W2_3","SPR_SS_W2_4",
"SPR_SS_W2_5","SPR_SS_W2_6","SPR_SS_W2_7","SPR_SS_W2_8",
"SPR_SS_W3_1","SPR_SS_W3_2","SPR_SS_W3_3","SPR_SS_W3_4",
"SPR_SS_W3_5","SPR_SS_W3_6","SPR_SS_W3_7","SPR_SS_W3_8",
"SPR_SS_W4_1","SPR_SS_W4_2","SPR_SS_W4_3","SPR_SS_W4_4",
"SPR_SS_W4_5","SPR_SS_W4_6","SPR_SS_W4_7","SPR_SS_W4_8",
"SPR_SS_PAIN_1","SPR_SS_DIE_1","SPR_SS_DIE_2","SPR_SS_DIE_3",
"SPR_SS_PAIN_2","SPR_SS_DEAD",
"SPR_SS_SHOOT1","SPR_SS_SHOOT2","SPR_SS_SHOOT3",
//
// Mutant
//
// 191
"SPR_MUT_S_1","SPR_MUT_S_2","SPR_MUT_S_3","SPR_MUT_S_4",
"SPR_MUT_S_5","SPR_MUT_S_6","SPR_MUT_S_7","SPR_MUT_S_8",
"SPR_MUT_W1_1","SPR_MUT_W1_2","SPR_MUT_W1_3","SPR_MUT_W1_4",
"SPR_MUT_W1_5","SPR_MUT_W1_6","SPR_MUT_W1_7","SPR_MUT_W1_8",
"SPR_MUT_W2_1","SPR_MUT_W2_2","SPR_MUT_W2_3","SPR_MUT_W2_4",
"SPR_MUT_W2_5","SPR_MUT_W2_6","SPR_MUT_W2_7","SPR_MUT_W2_8",
"SPR_MUT_W3_1","SPR_MUT_W3_2","SPR_MUT_W3_3","SPR_MUT_W3_4",
"SPR_MUT_W3_5","SPR_MUT_W3_6","SPR_MUT_W3_7","SPR_MUT_W3_8",
"SPR_MUT_W4_1","SPR_MUT_W4_2","SPR_MUT_W4_3","SPR_MUT_W4_4",
"SPR_MUT_W4_5","SPR_MUT_W4_6","SPR_MUT_W4_7","SPR_MUT_W4_8",
"SPR_MUT_PAIN_1","SPR_MUT_DIE_1","SPR_MUT_DIE_2","SPR_MUT_DIE_3",
"SPR_MUT_PAIN_2","SPR_MUT_DIE_4","SPR_MUT_DEAD",
"SPR_MUT_SHOOT1","SPR_MUT_SHOOT2","SPR_MUT_SHOOT3","SPR_MUT_SHOOT4",
//
// Officer
//
// 242
"SPR_OFC_S_1","SPR_OFC_S_2","SPR_OFC_S_3","SPR_OFC_S_4",
"SPR_OFC_S_5","SPR_OFC_S_6","SPR_OFC_S_7","SPR_OFC_S_8",
"SPR_OFC_W1_1","SPR_OFC_W1_2","SPR_OFC_W1_3","SPR_OFC_W1_4",
"SPR_OFC_W1_5","SPR_OFC_W1_6","SPR_OFC_W1_7","SPR_OFC_W1_8",
"SPR_OFC_W2_1","SPR_OFC_W2_2","SPR_OFC_W2_3","SPR_OFC_W2_4",
"SPR_OFC_W2_5","SPR_OFC_W2_6","SPR_OFC_W2_7","SPR_OFC_W2_8",
"SPR_OFC_W3_1","SPR_OFC_W3_2","SPR_OFC_W3_3","SPR_OFC_W3_4",
"SPR_OFC_W3_5","SPR_OFC_W3_6","SPR_OFC_W3_7","SPR_OFC_W3_8",
"SPR_OFC_W4_1","SPR_OFC_W4_2","SPR_OFC_W4_3","SPR_OFC_W4_4",
"SPR_OFC_W4_5","SPR_OFC_W4_6","SPR_OFC_W4_7","SPR_OFC_W4_8",
"SPR_OFC_PAIN_1","SPR_OFC_DIE_1","SPR_OFC_DIE_2","SPR_OFC_DIE_3",
"SPR_OFC_PAIN_2","SPR_OFC_DIE_4","SPR_OFC_DEAD",
"SPR_OFC_SHOOT1","SPR_OFC_SHOOT2","SPR_OFC_SHOOT3",
//
// Ghosts
//
// 292
"SPR_BLINKY_W1","SPR_BLINKY_W2","SPR_PINKY_W1","SPR_PINKY_W2",
"SPR_CLYDE_W1","SPR_CLYDE_W2","SPR_INKY_W1","SPR_INKY_W2",
//
// Hans
//
// 300
"SPR_BOSS_W1","SPR_BOSS_W2","SPR_BOSS_W3","SPR_BOSS_W4",
"SPR_BOSS_SHOOT1","SPR_BOSS_SHOOT2","SPR_BOSS_SHOOT3","SPR_BOSS_DEAD",
"SPR_BOSS_DIE1","SPR_BOSS_DIE2","SPR_BOSS_DIE3",
//
// Schabbs
//
// 311
"SPR_SCHABB_W1","SPR_SCHABB_W2","SPR_SCHABB_W3","SPR_SCHABB_W4",
"SPR_SCHABB_SHOOT1","SPR_SCHABB_SHOOT2",
"SPR_SCHABB_DIE1","SPR_SCHABB_DIE2","SPR_SCHABB_DIE3","SPR_SCHABB_DEAD",
"SPR_HYPO1","SPR_HYPO2","SPR_HYPO3","SPR_HYPO4",
//
// Fake
//
// 325
"SPR_FAKE_W1","SPR_FAKE_W2","SPR_FAKE_W3","SPR_FAKE_W4",
"SPR_FAKE_SHOOT","SPR_FIRE1","SPR_FIRE2",
"SPR_FAKE_DIE1","SPR_FAKE_DIE2","SPR_FAKE_DIE3","SPR_FAKE_DIE4",
"SPR_FAKE_DIE5","SPR_FAKE_DEAD",
//
// Hitler
//
// 338
"SPR_MECHA_W1","SPR_MECHA_W2","SPR_MECHA_W3","SPR_MECHA_W4",
"SPR_MECHA_SHOOT1","SPR_MECHA_SHOOT2","SPR_MECHA_SHOOT3","SPR_MECHA_DEAD",
"SPR_MECHA_DIE1","SPR_MECHA_DIE2","SPR_MECHA_DIE3",
"SPR_HITLER_W1","SPR_HITLER_W2","SPR_HITLER_W3","SPR_HITLER_W4",
"SPR_HITLER_SHOOT1","SPR_HITLER_SHOOT2","SPR_HITLER_SHOOT3","SPR_HITLER_DEAD",
"SPR_HITLER_DIE1","SPR_HITLER_DIE2","SPR_HITLER_DIE3","SPR_HITLER_DIE4",
"SPR_HITLER_DIE5","SPR_HITLER_DIE6","SPR_HITLER_DIE7",
//
// Giftmacher
//
// 364
"SPR_GIFT_W1","SPR_GIFT_W2","SPR_GIFT_W3","SPR_GIFT_W4",
"SPR_GIFT_SHOOT1","SPR_GIFT_SHOOT2",
"SPR_GIFT_DIE1","SPR_GIFT_DIE2","SPR_GIFT_DIE3","SPR_GIFT_DEAD",
//
// Rocket, smoke and small explosion
//
// 374
"SPR_ROCKET_1","SPR_ROCKET_2","SPR_ROCKET_3","SPR_ROCKET_4",
"SPR_ROCKET_5","SPR_ROCKET_6","SPR_ROCKET_7","SPR_ROCKET_8",
"SPR_SMOKE_1","SPR_SMOKE_2","SPR_SMOKE_3","SPR_SMOKE_4",
"SPR_BOOM_1","SPR_BOOM_2","SPR_BOOM_3",
//
// Angel of Death's DeathSparks(tm)
//
// 389
"SPR_HROCKET_1","SPR_HROCKET_2","SPR_HROCKET_3","SPR_HROCKET_4",
"SPR_HROCKET_5","SPR_HROCKET_6","SPR_HROCKET_7","SPR_HROCKET_8",
"SPR_HSMOKE_1","SPR_HSMOKE_2","SPR_HSMOKE_3","SPR_HSMOKE_4",
"SPR_HBOOM_1","SPR_HBOOM_2","SPR_HBOOM_3",
"SPR_SPARK1","SPR_SPARK2","SPR_SPARK3","SPR_SPARK4",
//
// Gretel
//
// 408
"SPR_GRETEL_W1","SPR_GRETEL_W2","SPR_GRETEL_W3","SPR_GRETEL_W4",
"SPR_GRETEL_SHOOT1","SPR_GRETEL_SHOOT2","SPR_GRETEL_SHOOT3","SPR_GRETEL_DEAD",
"SPR_GRETEL_DIE1","SPR_GRETEL_DIE2","SPR_GRETEL_DIE3",
//
// Fat Face
//
// 419
"SPR_FAT_W1","SPR_FAT_W2","SPR_FAT_W3","SPR_FAT_W4",
"SPR_FAT_SHOOT1","SPR_FAT_SHOOT2","SPR_FAT_SHOOT3","SPR_FAT_SHOOT4",
"SPR_FAT_DIE1","SPR_FAT_DIE2","SPR_FAT_DIE3","SPR_FAT_DEAD",
//
// bj
//
// 431
"SPR_BJ_W1","SPR_BJ_W2","SPR_BJ_W3","SPR_BJ_W4",
"SPR_BJ_JUMP1","SPR_BJ_JUMP2","SPR_BJ_JUMP3","SPR_BJ_JUMP4",
//
// SPEAR OF DESTINY
//
//
// Trans Grosse
//
// 439
"SPR_TRANS_W1","SPR_TRANS_W2","SPR_TRANS_W3","SPR_TRANS_W4",
"SPR_TRANS_SHOOT1","SPR_TRANS_SHOOT2","SPR_TRANS_SHOOT3","SPR_TRANS_DEAD",
"SPR_TRANS_DIE1","SPR_TRANS_DIE2","SPR_TRANS_DIE3",
//
// Wilhelm
//
// 450
"SPR_WILL_W1","SPR_WILL_W2","SPR_WILL_W3","SPR_WILL_W4",
"SPR_WILL_SHOOT1","SPR_WILL_SHOOT2","SPR_WILL_SHOOT3","SPR_WILL_SHOOT4",
"SPR_WILL_DIE1","SPR_WILL_DIE2","SPR_WILL_DIE3","SPR_WILL_DEAD",
//
// UberMutant
//
// 462
"SPR_UBER_W1","SPR_UBER_W2","SPR_UBER_W3","SPR_UBER_W4",
"SPR_UBER_SHOOT1","SPR_UBER_SHOOT2","SPR_UBER_SHOOT3","SPR_UBER_SHOOT4",
"SPR_UBER_DIE1","SPR_UBER_DIE2","SPR_UBER_DIE3","SPR_UBER_DIE4",
"SPR_UBER_DEAD",
//
// Death Knight
//
// 475
"SPR_DEATH_W1","SPR_DEATH_W2","SPR_DEATH_W3","SPR_DEATH_W4",
"SPR_DEATH_SHOOT1","SPR_DEATH_SHOOT2","SPR_DEATH_SHOOT3","SPR_DEATH_SHOOT4",
"SPR_DEATH_DIE1","SPR_DEATH_DIE2","SPR_DEATH_DIE3","SPR_DEATH_DIE4",
"SPR_DEATH_DIE5","SPR_DEATH_DIE6","SPR_DEATH_DEAD",
//
// Ghost
//
// 490
"SPR_SPECTRE_W1","SPR_SPECTRE_W2","SPR_SPECTRE_W3","SPR_SPECTRE_W4",
"SPR_SPECTRE_F1","SPR_SPECTRE_F2","SPR_SPECTRE_F3","SPR_SPECTRE_F4",
//
// Angel of Death
//
// 498
"SPR_ANGEL_W1","SPR_ANGEL_W2","SPR_ANGEL_W3","SPR_ANGEL_W4",
"SPR_ANGEL_SHOOT1","SPR_ANGEL_SHOOT2","SPR_ANGEL_TIRED1","SPR_ANGEL_TIRED2",
"SPR_ANGEL_DIE1","SPR_ANGEL_DIE2","SPR_ANGEL_DIE3","SPR_ANGEL_DIE4",
"SPR_ANGEL_DIE5","SPR_ANGEL_DIE6","SPR_ANGEL_DIE7","SPR_ANGEL_DEAD",
//
// player attack frames
//
// 514
"SPR_KNIFEREADY","SPR_KNIFEATK1","SPR_KNIFEATK2","SPR_KNIFEATK3",
"SPR_KNIFEATK4",
"SPR_PISTOLREADY","SPR_PISTOLATK1","SPR_PISTOLATK2","SPR_PISTOLATK3",
"SPR_PISTOLATK4",
"SPR_MACHINEGUNREADY","SPR_MACHINEGUNATK1","SPR_MACHINEGUNATK2","MACHINEGUNATK3",
"SPR_MACHINEGUNATK4",
"SPR_CHAINREADY","SPR_CHAINATK1","SPR_CHAINATK2","SPR_CHAINATK3",
"SPR_CHAINATK4"
];
var spriteConsts = {};
for (var i=0,n=spriteNames.length;i<n;i++) {
spriteConsts[spriteNames[i]] = i;
}
var sheets = [
{},
{},
{sheet:"002_053.png",size:128,idx:0,num:52},
{sheet:"002_053.png",size:128,idx:1,num:52},
{sheet:"002_053.png",size:128,idx:2,num:52},
{sheet:"002_053.png",size:128,idx:3,num:52},
{sheet:"002_053.png",size:128,idx:4,num:52},
{sheet:"002_053.png",size:128,idx:5,num:52},
{sheet:"002_053.png",size:128,idx:6,num:52},
{sheet:"002_053.png",size:128,idx:7,num:52},
{sheet:"002_053.png",size:128,idx:8,num:52},
{sheet:"002_053.png",size:128,idx:9,num:52},
{sheet:"002_053.png",size:128,idx:10,num:52},
{sheet:"002_053.png",size:128,idx:11,num:52},
{sheet:"002_053.png",size:128,idx:12,num:52},
{sheet:"002_053.png",size:128,idx:13,num:52},
{sheet:"002_053.png",size:128,idx:14,num:52},
{sheet:"002_053.png",size:128,idx:15,num:52},
{sheet:"002_053.png",size:128,idx:16,num:52},
{sheet:"002_053.png",size:128,idx:17,num:52},
{sheet:"002_053.png",size:128,idx:18,num:52},
{sheet:"002_053.png",size:128,idx:19,num:52},
{sheet:"002_053.png",size:128,idx:20,num:52},
{sheet:"002_053.png",size:128,idx:21,num:52},
{sheet:"002_053.png",size:128,idx:22,num:52},
{sheet:"002_053.png",size:128,idx:23,num:52},
{sheet:"002_053.png",size:128,idx:24,num:52},
{sheet:"002_053.png",size:128,idx:25,num:52},
{sheet:"002_053.png",size:128,idx:26,num:52},
{sheet:"002_053.png",size:128,idx:27,num:52},
{sheet:"002_053.png",size:128,idx:28,num:52},
{sheet:"002_053.png",size:128,idx:29,num:52},
{sheet:"002_053.png",size:128,idx:30,num:52},
{sheet:"002_053.png",size:128,idx:31,num:52},
{sheet:"002_053.png",size:128,idx:32,num:52},
{sheet:"002_053.png",size:128,idx:33,num:52},
{sheet:"002_053.png",size:128,idx:34,num:52},
{sheet:"002_053.png",size:128,idx:35,num:52},
{sheet:"002_053.png",size:128,idx:36,num:52},
{sheet:"002_053.png",size:128,idx:37,num:52},
{sheet:"002_053.png",size:128,idx:38,num:52},
{sheet:"002_053.png",size:128,idx:39,num:52},
{sheet:"002_053.png",size:128,idx:40,num:52},
{sheet:"002_053.png",size:128,idx:41,num:52},
{sheet:"002_053.png",size:128,idx:42,num:52},
{sheet:"002_053.png",size:128,idx:43,num:52},
{sheet:"002_053.png",size:128,idx:44,num:52},
{sheet:"002_053.png",size:128,idx:45,num:52},
{sheet:"002_053.png",size:128,idx:46,num:52},
{sheet:"002_053.png",size:128,idx:47,num:52},
{sheet:"002_053.png",size:128,idx:48,num:52},
{sheet:"002_053.png",size:128,idx:49,num:52},
{sheet:"002_053.png",size:128,idx:50,num:52},
{sheet:"002_053.png",size:128,idx:51,num:52},
{sheet:"054_102.png",size:128,idx:0,num:49},
{sheet:"054_102.png",size:128,idx:1,num:49},
{sheet:"054_102.png",size:128,idx:2,num:49},
{sheet:"054_102.png",size:128,idx:3,num:49},
{sheet:"054_102.png",size:128,idx:4,num:49},
{sheet:"054_102.png",size:128,idx:5,num:49},
{sheet:"054_102.png",size:128,idx:6,num:49},
{sheet:"054_102.png",size:128,idx:7,num:49},
{sheet:"054_102.png",size:128,idx:8,num:49},
{sheet:"054_102.png",size:128,idx:9,num:49},
{sheet:"054_102.png",size:128,idx:10,num:49},
{sheet:"054_102.png",size:128,idx:11,num:49},
{sheet:"054_102.png",size:128,idx:12,num:49},
{sheet:"054_102.png",size:128,idx:13,num:49},
{sheet:"054_102.png",size:128,idx:14,num:49},
{sheet:"054_102.png",size:128,idx:15,num:49},
{sheet:"054_102.png",size:128,idx:16,num:49},
{sheet:"054_102.png",size:128,idx:17,num:49},
{sheet:"054_102.png",size:128,idx:18,num:49},
{sheet:"054_102.png",size:128,idx:19,num:49},
{sheet:"054_102.png",size:128,idx:20,num:49},
{sheet:"054_102.png",size:128,idx:21,num:49},
{sheet:"054_102.png",size:128,idx:22,num:49},
{sheet:"054_102.png",size:128,idx:23,num:49},
{sheet:"054_102.png",size:128,idx:24,num:49},
{sheet:"054_102.png",size:128,idx:25,num:49},
{sheet:"054_102.png",size:128,idx:26,num:49},
{sheet:"054_102.png",size:128,idx:27,num:49},
{sheet:"054_102.png",size:128,idx:28,num:49},
{sheet:"054_102.png",size:128,idx:29,num:49},
{sheet:"054_102.png",size:128,idx:30,num:49},
{sheet:"054_102.png",size:128,idx:31,num:49},
{sheet:"054_102.png",size:128,idx:32,num:49},
{sheet:"054_102.png",size:128,idx:33,num:49},
{sheet:"054_102.png",size:128,idx:34,num:49},
{sheet:"054_102.png",size:128,idx:35,num:49},
{sheet:"054_102.png",size:128,idx:36,num:49},
{sheet:"054_102.png",size:128,idx:37,num:49},
{sheet:"054_102.png",size:128,idx:38,num:49},
{sheet:"054_102.png",size:128,idx:39,num:49},
{sheet:"054_102.png",size:128,idx:40,num:49},
{sheet:"054_102.png",size:128,idx:41,num:49},
{sheet:"054_102.png",size:128,idx:42,num:49},
{sheet:"054_102.png",size:128,idx:43,num:49},
{sheet:"054_102.png",size:128,idx:44,num:49},
{sheet:"054_102.png",size:128,idx:45,num:49},
{sheet:"054_102.png",size:128,idx:46,num:49},
{sheet:"054_102.png",size:128,idx:47,num:49},
{sheet:"054_102.png",size:128,idx:48,num:49},
{sheet:"103_141.png",size:64,idx:0,num:39},
{sheet:"103_141.png",size:64,idx:1,num:39},
{sheet:"103_141.png",size:64,idx:2,num:39},
{sheet:"103_141.png",size:64,idx:3,num:39},
{sheet:"103_141.png",size:64,idx:4,num:39},
{sheet:"103_141.png",size:64,idx:5,num:39},
{sheet:"103_141.png",size:64,idx:6,num:39},
{sheet:"103_141.png",size:64,idx:7,num:39},
{sheet:"103_141.png",size:64,idx:8,num:39},
{sheet:"103_141.png",size:64,idx:9,num:39},
{sheet:"103_141.png",size:64,idx:10,num:39},
{sheet:"103_141.png",size:64,idx:11,num:39},
{sheet:"103_141.png",size:64,idx:12,num:39},
{sheet:"103_141.png",size:64,idx:13,num:39},
{sheet:"103_141.png",size:64,idx:14,num:39},
{sheet:"103_141.png",size:64,idx:15,num:39},
{sheet:"103_141.png",size:64,idx:16,num:39},
{sheet:"103_141.png",size:64,idx:17,num:39},
{sheet:"103_141.png",size:64,idx:18,num:39},
{sheet:"103_141.png",size:64,idx:19,num:39},
{sheet:"103_141.png",size:64,idx:20,num:39},
{sheet:"103_141.png",size:64,idx:21,num:39},
{sheet:"103_141.png",size:64,idx:22,num:39},
{sheet:"103_141.png",size:64,idx:23,num:39},
{sheet:"103_141.png",size:64,idx:24,num:39},
{sheet:"103_141.png",size:64,idx:25,num:39},
{sheet:"103_141.png",size:64,idx:26,num:39},
{sheet:"103_141.png",size:64,idx:27,num:39},
{sheet:"103_141.png",size:64,idx:28,num:39},
{sheet:"103_141.png",size:64,idx:29,num:39},
{sheet:"103_141.png",size:64,idx:30,num:39},
{sheet:"103_141.png",size:64,idx:31,num:39},
{sheet:"103_141.png",size:64,idx:32,num:39},
{sheet:"103_141.png",size:64,idx:33,num:39},
{sheet:"103_141.png",size:64,idx:34,num:39},
{sheet:"103_141.png",size:64,idx:35,num:39},
{sheet:"103_141.png",size:64,idx:36,num:39},
{sheet:"103_141.png",size:64,idx:37,num:39},
{sheet:"103_141.png",size:64,idx:38,num:39},
{sheet:"142_190.png",size:64,idx:0,num:49},
{sheet:"142_190.png",size:64,idx:1,num:49},
{sheet:"142_190.png",size:64,idx:2,num:49},
{sheet:"142_190.png",size:64,idx:3,num:49},
{sheet:"142_190.png",size:64,idx:4,num:49},
{sheet:"142_190.png",size:64,idx:5,num:49},
{sheet:"142_190.png",size:64,idx:6,num:49},
{sheet:"142_190.png",size:64,idx:7,num:49},
{sheet:"142_190.png",size:64,idx:8,num:49},
{sheet:"142_190.png",size:64,idx:9,num:49},
{sheet:"142_190.png",size:64,idx:10,num:49},
{sheet:"142_190.png",size:64,idx:11,num:49},
{sheet:"142_190.png",size:64,idx:12,num:49},
{sheet:"142_190.png",size:64,idx:13,num:49},
{sheet:"142_190.png",size:64,idx:14,num:49},
{sheet:"142_190.png",size:64,idx:15,num:49},
{sheet:"142_190.png",size:64,idx:16,num:49},
{sheet:"142_190.png",size:64,idx:17,num:49},
{sheet:"142_190.png",size:64,idx:18,num:49},
{sheet:"142_190.png",size:64,idx:19,num:49},
{sheet:"142_190.png",size:64,idx:20,num:49},
{sheet:"142_190.png",size:64,idx:21,num:49},
{sheet:"142_190.png",size:64,idx:22,num:49},
{sheet:"142_190.png",size:64,idx:23,num:49},
{sheet:"142_190.png",size:64,idx:24,num:49},
{sheet:"142_190.png",size:64,idx:25,num:49},
{sheet:"142_190.png",size:64,idx:26,num:49},
{sheet:"142_190.png",size:64,idx:27,num:49},
{sheet:"142_190.png",size:64,idx:28,num:49},
{sheet:"142_190.png",size:64,idx:29,num:49},
{sheet:"142_190.png",size:64,idx:30,num:49},
{sheet:"142_190.png",size:64,idx:31,num:49},
{sheet:"142_190.png",size:64,idx:32,num:49},
{sheet:"142_190.png",size:64,idx:33,num:49},
{sheet:"142_190.png",size:64,idx:34,num:49},
{sheet:"142_190.png",size:64,idx:35,num:49},
{sheet:"142_190.png",size:64,idx:36,num:49},
{sheet:"142_190.png",size:64,idx:37,num:49},
{sheet:"142_190.png",size:64,idx:38,num:49},
{sheet:"142_190.png",size:64,idx:39,num:49},
{sheet:"142_190.png",size:64,idx:40,num:49},
{sheet:"142_190.png",size:64,idx:41,num:49},
{sheet:"142_190.png",size:64,idx:42,num:49},
{sheet:"142_190.png",size:64,idx:43,num:49},
{sheet:"142_190.png",size:64,idx:44,num:49},
{sheet:"142_190.png",size:64,idx:45,num:49},
{sheet:"142_190.png",size:64,idx:46,num:49},
{sheet:"142_190.png",size:64,idx:47,num:49},
{sheet:"142_190.png",size:64,idx:48,num:49},
{sheet:"191_241.png",size:64,idx:0,num:51},
{sheet:"191_241.png",size:64,idx:1,num:51},
{sheet:"191_241.png",size:64,idx:2,num:51},
{sheet:"191_241.png",size:64,idx:3,num:51},
{sheet:"191_241.png",size:64,idx:4,num:51},
{sheet:"191_241.png",size:64,idx:5,num:51},
{sheet:"191_241.png",size:64,idx:6,num:51},
{sheet:"191_241.png",size:64,idx:7,num:51},
{sheet:"191_241.png",size:64,idx:8,num:51},
{sheet:"191_241.png",size:64,idx:9,num:51},
{sheet:"191_241.png",size:64,idx:10,num:51},
{sheet:"191_241.png",size:64,idx:11,num:51},
{sheet:"191_241.png",size:64,idx:12,num:51},
{sheet:"191_241.png",size:64,idx:13,num:51},
{sheet:"191_241.png",size:64,idx:14,num:51},
{sheet:"191_241.png",size:64,idx:15,num:51},
{sheet:"191_241.png",size:64,idx:16,num:51},
{sheet:"191_241.png",size:64,idx:17,num:51},
{sheet:"191_241.png",size:64,idx:18,num:51},
{sheet:"191_241.png",size:64,idx:19,num:51},
{sheet:"191_241.png",size:64,idx:20,num:51},
{sheet:"191_241.png",size:64,idx:21,num:51},
{sheet:"191_241.png",size:64,idx:22,num:51},
{sheet:"191_241.png",size:64,idx:23,num:51},
{sheet:"191_241.png",size:64,idx:24,num:51},
{sheet:"191_241.png",size:64,idx:25,num:51},
{sheet:"191_241.png",size:64,idx:26,num:51},
{sheet:"191_241.png",size:64,idx:27,num:51},
{sheet:"191_241.png",size:64,idx:28,num:51},
{sheet:"191_241.png",size:64,idx:29,num:51},
{sheet:"191_241.png",size:64,idx:30,num:51},
{sheet:"191_241.png",size:64,idx:31,num:51},
{sheet:"191_241.png",size:64,idx:32,num:51},
{sheet:"191_241.png",size:64,idx:33,num:51},
{sheet:"191_241.png",size:64,idx:34,num:51},
{sheet:"191_241.png",size:64,idx:35,num:51},
{sheet:"191_241.png",size:64,idx:36,num:51},
{sheet:"191_241.png",size:64,idx:37,num:51},
{sheet:"191_241.png",size:64,idx:38,num:51},
{sheet:"191_241.png",size:64,idx:39,num:51},
{sheet:"191_241.png",size:64,idx:40,num:51},
{sheet:"191_241.png",size:64,idx:41,num:51},
{sheet:"191_241.png",size:64,idx:42,num:51},
{sheet:"191_241.png",size:64,idx:43,num:51},
{sheet:"191_241.png",size:64,idx:44,num:51},
{sheet:"191_241.png",size:64,idx:45,num:51},
{sheet:"191_241.png",size:64,idx:46,num:51},
{sheet:"191_241.png",size:64,idx:47,num:51},
{sheet:"191_241.png",size:64,idx:48,num:51},
{sheet:"191_241.png",size:64,idx:49,num:51},
{sheet:"191_241.png",size:64,idx:50,num:51},
{sheet:"242_291.png",size:64,idx:0,num:50},
{sheet:"242_291.png",size:64,idx:1,num:50},
{sheet:"242_291.png",size:64,idx:2,num:50},
{sheet:"242_291.png",size:64,idx:3,num:50},
{sheet:"242_291.png",size:64,idx:4,num:50},
{sheet:"242_291.png",size:64,idx:5,num:50},
{sheet:"242_291.png",size:64,idx:6,num:50},
{sheet:"242_291.png",size:64,idx:7,num:50},
{sheet:"242_291.png",size:64,idx:8,num:50},
{sheet:"242_291.png",size:64,idx:9,num:50},
{sheet:"242_291.png",size:64,idx:10,num:50},
{sheet:"242_291.png",size:64,idx:11,num:50},
{sheet:"242_291.png",size:64,idx:12,num:50},
{sheet:"242_291.png",size:64,idx:13,num:50},
{sheet:"242_291.png",size:64,idx:14,num:50},
{sheet:"242_291.png",size:64,idx:15,num:50},
{sheet:"242_291.png",size:64,idx:16,num:50},
{sheet:"242_291.png",size:64,idx:17,num:50},
{sheet:"242_291.png",size:64,idx:18,num:50},
{sheet:"242_291.png",size:64,idx:19,num:50},
{sheet:"242_291.png",size:64,idx:20,num:50},
{sheet:"242_291.png",size:64,idx:21,num:50},
{sheet:"242_291.png",size:64,idx:22,num:50},
{sheet:"242_291.png",size:64,idx:23,num:50},
{sheet:"242_291.png",size:64,idx:24,num:50},
{sheet:"242_291.png",size:64,idx:25,num:50},
{sheet:"242_291.png",size:64,idx:26,num:50},
{sheet:"242_291.png",size:64,idx:27,num:50},
{sheet:"242_291.png",size:64,idx:28,num:50},
{sheet:"242_291.png",size:64,idx:29,num:50},
{sheet:"242_291.png",size:64,idx:30,num:50},
{sheet:"242_291.png",size:64,idx:31,num:50},
{sheet:"242_291.png",size:64,idx:32,num:50},
{sheet:"242_291.png",size:64,idx:33,num:50},
{sheet:"242_291.png",size:64,idx:34,num:50},
{sheet:"242_291.png",size:64,idx:35,num:50},
{sheet:"242_291.png",size:64,idx:36,num:50},
{sheet:"242_291.png",size:64,idx:37,num:50},
{sheet:"242_291.png",size:64,idx:38,num:50},
{sheet:"242_291.png",size:64,idx:39,num:50},
{sheet:"242_291.png",size:64,idx:40,num:50},
{sheet:"242_291.png",size:64,idx:41,num:50},
{sheet:"242_291.png",size:64,idx:42,num:50},
{sheet:"242_291.png",size:64,idx:43,num:50},
{sheet:"242_291.png",size:64,idx:44,num:50},
{sheet:"242_291.png",size:64,idx:45,num:50},
{sheet:"242_291.png",size:64,idx:46,num:50},
{sheet:"242_291.png",size:64,idx:47,num:50},
{sheet:"242_291.png",size:64,idx:48,num:50},
{sheet:"242_291.png",size:64,idx:49,num:50},
{sheet:"292_299.png",size:64,idx:0,num:8},
{sheet:"292_299.png",size:64,idx:1,num:8},
{sheet:"292_299.png",size:64,idx:2,num:8},
{sheet:"292_299.png",size:64,idx:3,num:8},
{sheet:"292_299.png",size:64,idx:4,num:8},
{sheet:"292_299.png",size:64,idx:5,num:8},
{sheet:"292_299.png",size:64,idx:6,num:8},
{sheet:"292_299.png",size:64,idx:7,num:8},
{sheet:"300_310.png",size:64,idx:0,num:11},
{sheet:"300_310.png",size:64,idx:1,num:11},
{sheet:"300_310.png",size:64,idx:2,num:11},
{sheet:"300_310.png",size:64,idx:3,num:11},
{sheet:"300_310.png",size:64,idx:4,num:11},
{sheet:"300_310.png",size:64,idx:5,num:11},
{sheet:"300_310.png",size:64,idx:6,num:11},
{sheet:"300_310.png",size:64,idx:7,num:11},
{sheet:"300_310.png",size:64,idx:8,num:11},
{sheet:"300_310.png",size:64,idx:9,num:11},
{sheet:"300_310.png",size:64,idx:10,num:11},
{sheet:"311_324.png",size:64,idx:0,num:14},
{sheet:"311_324.png",size:64,idx:1,num:14},
{sheet:"311_324.png",size:64,idx:2,num:14},
{sheet:"311_324.png",size:64,idx:3,num:14},
{sheet:"311_324.png",size:64,idx:4,num:14},
{sheet:"311_324.png",size:64,idx:5,num:14},
{sheet:"311_324.png",size:64,idx:6,num:14},
{sheet:"311_324.png",size:64,idx:7,num:14},
{sheet:"311_324.png",size:64,idx:8,num:14},
{sheet:"311_324.png",size:64,idx:9,num:14},
{sheet:"311_324.png",size:64,idx:10,num:14},
{sheet:"311_324.png",size:64,idx:11,num:14},
{sheet:"311_324.png",size:64,idx:12,num:14},
{sheet:"311_324.png",size:64,idx:13,num:14},
{sheet:"325_337.png",size:64,idx:0,num:13},
{sheet:"325_337.png",size:64,idx:1,num:13},
{sheet:"325_337.png",size:64,idx:2,num:13},
{sheet:"325_337.png",size:64,idx:3,num:13},
{sheet:"325_337.png",size:64,idx:4,num:13},
{sheet:"325_337.png",size:64,idx:5,num:13},
{sheet:"325_337.png",size:64,idx:6,num:13},
{sheet:"325_337.png",size:64,idx:7,num:13},
{sheet:"325_337.png",size:64,idx:8,num:13},
{sheet:"325_337.png",size:64,idx:9,num:13},
{sheet:"325_337.png",size:64,idx:10,num:13},
{sheet:"325_337.png",size:64,idx:11,num:13},
{sheet:"325_337.png",size:64,idx:12,num:13},
{sheet:"338_363.png",size:64,idx:0,num:26},
{sheet:"338_363.png",size:64,idx:1,num:26},
{sheet:"338_363.png",size:64,idx:2,num:26},
{sheet:"338_363.png",size:64,idx:3,num:26},
{sheet:"338_363.png",size:64,idx:4,num:26},
{sheet:"338_363.png",size:64,idx:5,num:26},
{sheet:"338_363.png",size:64,idx:6,num:26},
{sheet:"338_363.png",size:64,idx:7,num:26},
{sheet:"338_363.png",size:64,idx:8,num:26},
{sheet:"338_363.png",size:64,idx:9,num:26},
{sheet:"338_363.png",size:64,idx:10,num:26},
{sheet:"338_363.png",size:64,idx:11,num:26},
{sheet:"338_363.png",size:64,idx:12,num:26},
{sheet:"338_363.png",size:64,idx:13,num:26},
{sheet:"338_363.png",size:64,idx:14,num:26},
{sheet:"338_363.png",size:64,idx:15,num:26},
{sheet:"338_363.png",size:64,idx:16,num:26},
{sheet:"338_363.png",size:64,idx:17,num:26},
{sheet:"338_363.png",size:64,idx:18,num:26},
{sheet:"338_363.png",size:64,idx:19,num:26},
{sheet:"338_363.png",size:64,idx:20,num:26},
{sheet:"338_363.png",size:64,idx:21,num:26},
{sheet:"338_363.png",size:64,idx:22,num:26},
{sheet:"338_363.png",size:64,idx:23,num:26},
{sheet:"338_363.png",size:64,idx:24,num:26},
{sheet:"338_363.png",size:64,idx:25,num:26},
{sheet:"364_373.png",size:64,idx:0,num:10},
{sheet:"364_373.png",size:64,idx:1,num:10},
{sheet:"364_373.png",size:64,idx:2,num:10},
{sheet:"364_373.png",size:64,idx:3,num:10},
{sheet:"364_373.png",size:64,idx:4,num:10},
{sheet:"364_373.png",size:64,idx:5,num:10},
{sheet:"364_373.png",size:64,idx:6,num:10},
{sheet:"364_373.png",size:64,idx:7,num:10},
{sheet:"364_373.png",size:64,idx:8,num:10},
{sheet:"364_373.png",size:64,idx:9,num:10},
{sheet:"374_388.png",size:64,idx:0,num:15},
{sheet:"374_388.png",size:64,idx:1,num:15},
{sheet:"374_388.png",size:64,idx:2,num:15},
{sheet:"374_388.png",size:64,idx:3,num:15},
{sheet:"374_388.png",size:64,idx:4,num:15},
{sheet:"374_388.png",size:64,idx:5,num:15},
{sheet:"374_388.png",size:64,idx:6,num:15},
{sheet:"374_388.png",size:64,idx:7,num:15},
{sheet:"374_388.png",size:64,idx:8,num:15},
{sheet:"374_388.png",size:64,idx:9,num:15},
{sheet:"374_388.png",size:64,idx:10,num:15},
{sheet:"374_388.png",size:64,idx:11,num:15},
{sheet:"374_388.png",size:64,idx:12,num:15},
{sheet:"374_388.png",size:64,idx:13,num:15},
{sheet:"374_388.png",size:64,idx:14,num:15},
{sheet:"389_407.png",size:64,idx:0,num:19},
{sheet:"389_407.png",size:64,idx:1,num:19},
{sheet:"389_407.png",size:64,idx:2,num:19},
{sheet:"389_407.png",size:64,idx:3,num:19},
{sheet:"389_407.png",size:64,idx:4,num:19},
{sheet:"389_407.png",size:64,idx:5,num:19},
{sheet:"389_407.png",size:64,idx:6,num:19},
{sheet:"389_407.png",size:64,idx:7,num:19},
{sheet:"389_407.png",size:64,idx:8,num:19},
{sheet:"389_407.png",size:64,idx:9,num:19},
{sheet:"389_407.png",size:64,idx:10,num:19},
{sheet:"389_407.png",size:64,idx:11,num:19},
{sheet:"389_407.png",size:64,idx:12,num:19},
{sheet:"389_407.png",size:64,idx:13,num:19},
{sheet:"389_407.png",size:64,idx:14,num:19},
{sheet:"389_407.png",size:64,idx:15,num:19},
{sheet:"389_407.png",size:64,idx:16,num:19},
{sheet:"389_407.png",size:64,idx:17,num:19},
{sheet:"389_407.png",size:64,idx:18,num:19},
{sheet:"408_418.png",size:64,idx:0,num:11},
{sheet:"408_418.png",size:64,idx:1,num:11},
{sheet:"408_418.png",size:64,idx:2,num:11},
{sheet:"408_418.png",size:64,idx:3,num:11},
{sheet:"408_418.png",size:64,idx:4,num:11},
{sheet:"408_418.png",size:64,idx:5,num:11},
{sheet:"408_418.png",size:64,idx:6,num:11},
{sheet:"408_418.png",size:64,idx:7,num:11},
{sheet:"408_418.png",size:64,idx:8,num:11},
{sheet:"408_418.png",size:64,idx:9,num:11},
{sheet:"408_418.png",size:64,idx:10,num:11},
{sheet:"419_430.png",size:64,idx:0,num:12},
{sheet:"419_430.png",size:64,idx:1,num:12},
{sheet:"419_430.png",size:64,idx:2,num:12},
{sheet:"419_430.png",size:64,idx:3,num:12},
{sheet:"419_430.png",size:64,idx:4,num:12},
{sheet:"419_430.png",size:64,idx:5,num:12},
{sheet:"419_430.png",size:64,idx:6,num:12},
{sheet:"419_430.png",size:64,idx:7,num:12},
{sheet:"419_430.png",size:64,idx:8,num:12},
{sheet:"419_430.png",size:64,idx:9,num:12},
{sheet:"419_430.png",size:64,idx:10,num:12},
{sheet:"419_430.png",size:64,idx:11,num:12},
{sheet:"431_438.png",size:64,idx:0,num:8},
{sheet:"431_438.png",size:64,idx:1,num:8},
{sheet:"431_438.png",size:64,idx:2,num:8},
{sheet:"431_438.png",size:64,idx:3,num:8},
{sheet:"431_438.png",size:64,idx:4,num:8},
{sheet:"431_438.png",size:64,idx:5,num:8},
{sheet:"431_438.png",size:64,idx:6,num:8},
{sheet:"431_438.png",size:64,idx:7,num:8},
{sheet:"439_449.png",size:64,idx:0,num:11},
{sheet:"439_449.png",size:64,idx:1,num:11},
{sheet:"439_449.png",size:64,idx:2,num:11},
{sheet:"439_449.png",size:64,idx:3,num:11},
{sheet:"439_449.png",size:64,idx:4,num:11},
{sheet:"439_449.png",size:64,idx:5,num:11},
{sheet:"439_449.png",size:64,idx:6,num:11},
{sheet:"439_449.png",size:64,idx:7,num:11},
{sheet:"439_449.png",size:64,idx:8,num:11},
{sheet:"439_449.png",size:64,idx:9,num:11},
{sheet:"439_449.png",size:64,idx:10,num:11},
{sheet:"450_461.png",size:64,idx:0,num:12},
{sheet:"450_461.png",size:64,idx:1,num:12},
{sheet:"450_461.png",size:64,idx:2,num:12},
{sheet:"450_461.png",size:64,idx:3,num:12},
{sheet:"450_461.png",size:64,idx:4,num:12},
{sheet:"450_461.png",size:64,idx:5,num:12},
{sheet:"450_461.png",size:64,idx:6,num:12},
{sheet:"450_461.png",size:64,idx:7,num:12},
{sheet:"450_461.png",size:64,idx:8,num:12},
{sheet:"450_461.png",size:64,idx:9,num:12},
{sheet:"450_461.png",size:64,idx:10,num:12},
{sheet:"450_461.png",size:64,idx:11,num:12},
{sheet:"462_474.png",size:64,idx:0,num:13},
{sheet:"462_474.png",size:64,idx:1,num:13},
{sheet:"462_474.png",size:64,idx:2,num:13},
{sheet:"462_474.png",size:64,idx:3,num:13},
{sheet:"462_474.png",size:64,idx:4,num:13},
{sheet:"462_474.png",size:64,idx:5,num:13},
{sheet:"462_474.png",size:64,idx:6,num:13},
{sheet:"462_474.png",size:64,idx:7,num:13},
{sheet:"462_474.png",size:64,idx:8,num:13},
{sheet:"462_474.png",size:64,idx:9,num:13},
{sheet:"462_474.png",size:64,idx:10,num:13},
{sheet:"462_474.png",size:64,idx:11,num:13},
{sheet:"462_474.png",size:64,idx:12,num:13},
{sheet:"475_489.png",size:64,idx:0,num:15},
{sheet:"475_489.png",size:64,idx:1,num:15},
{sheet:"475_489.png",size:64,idx:2,num:15},
{sheet:"475_489.png",size:64,idx:3,num:15},
{sheet:"475_489.png",size:64,idx:4,num:15},
{sheet:"475_489.png",size:64,idx:5,num:15},
{sheet:"475_489.png",size:64,idx:6,num:15},
{sheet:"475_489.png",size:64,idx:7,num:15},
{sheet:"475_489.png",size:64,idx:8,num:15},
{sheet:"475_489.png",size:64,idx:9,num:15},
{sheet:"475_489.png",size:64,idx:10,num:15},
{sheet:"475_489.png",size:64,idx:11,num:15},
{sheet:"475_489.png",size:64,idx:12,num:15},
{sheet:"475_489.png",size:64,idx:13,num:15},
{sheet:"475_489.png",size:64,idx:14,num:15},
{sheet:"490_497.png",size:64,idx:0,num:8},
{sheet:"490_497.png",size:64,idx:1,num:8},
{sheet:"490_497.png",size:64,idx:2,num:8},
{sheet:"490_497.png",size:64,idx:3,num:8},
{sheet:"490_497.png",size:64,idx:4,num:8},
{sheet:"490_497.png",size:64,idx:5,num:8},
{sheet:"490_497.png",size:64,idx:6,num:8},
{sheet:"490_497.png",size:64,idx:7,num:8},
{sheet:"498_513.png",size:64,idx:0,num:16},
{sheet:"498_513.png",size:64,idx:1,num:16},
{sheet:"498_513.png",size:64,idx:2,num:16},
{sheet:"498_513.png",size:64,idx:3,num:16},
{sheet:"498_513.png",size:64,idx:4,num:16},
{sheet:"498_513.png",size:64,idx:5,num:16},
{sheet:"498_513.png",size:64,idx:6,num:16},
{sheet:"498_513.png",size:64,idx:7,num:16},
{sheet:"498_513.png",size:64,idx:8,num:16},
{sheet:"498_513.png",size:64,idx:9,num:16},
{sheet:"498_513.png",size:64,idx:10,num:16},
{sheet:"498_513.png",size:64,idx:11,num:16},
{sheet:"498_513.png",size:64,idx:12,num:16},
{sheet:"498_513.png",size:64,idx:13,num:16},
{sheet:"498_513.png",size:64,idx:14,num:16},
{sheet:"498_513.png",size:64,idx:15,num:16},
{sheet:"514_533.png",size:128,idx:0,num:20},
{sheet:"514_533.png",size:128,idx:1,num:20},
{sheet:"514_533.png",size:128,idx:2,num:20},
{sheet:"514_533.png",size:128,idx:3,num:20},
{sheet:"514_533.png",size:128,idx:4,num:20},
{sheet:"514_533.png",size:128,idx:5,num:20},
{sheet:"514_533.png",size:128,idx:6,num:20},
{sheet:"514_533.png",size:128,idx:7,num:20},
{sheet:"514_533.png",size:128,idx:8,num:20},
{sheet:"514_533.png",size:128,idx:9,num:20},
{sheet:"514_533.png",size:128,idx:10,num:20},
{sheet:"514_533.png",size:128,idx:11,num:20},
{sheet:"514_533.png",size:128,idx:12,num:20},
{sheet:"514_533.png",size:128,idx:13,num:20},
{sheet:"514_533.png",size:128,idx:14,num:20},
{sheet:"514_533.png",size:128,idx:15,num:20},
{sheet:"514_533.png",size:128,idx:16,num:20},
{sheet:"514_533.png",size:128,idx:17,num:20},
{sheet:"514_533.png",size:128,idx:18,num:20},
{sheet:"514_533.png",size:128,idx:19,num:20}
];
Wolf.setConsts(spriteConsts);
Wolf.setConsts({
SPRT_ONE_TEX : 1,
SPRT_NO_ROT : 2,
SPRT_CHG_POS : 4,
SPRT_CHG_TEX : 8,
SPRT_REMOVE : 16,
MAX_SPRITES : 1024,
MAX_VIS_SPRITES : 128
});
function getNewSprite(level) {
var n;
var newSprite = {
x : 0,
y : 0,
angle : 0,
// very clever to make it not just (x>>TILESHIFT)
// but also (x>>TILESHIFT)-1 if (x%TILEWIDTH)<HALFTILE
// so we will check only 4 files instead of 9 as Carmack did!
tile : {
x : 0,
y : 0
},
// controls appearence of this sprite:
// SPRT_ONE_TEX: use one texture for each rotation
// SPRT_NO_ROT: do not rotate sprite (fence)
// SPRT_CHG_POS
// SPRT_CHG_TEX
// SPRT_REMOVE
flags : 0,
// 8 textures: one for each rotation phase!
// if SPRT_ONE_TEX flag use tex with index 0!
// these are Wolf sprite texture numbers, not OpenGL sprites
// or indexes in the textureManager list
tex : []
};
// check if we can recycle a spot first
/*
for (n=0; n < level.numSprites ; ++n) {
sprt = level.sprites[n];
if (sprt.flags & Wolf.SPRT_REMOVE) {
// free spot: clear it first
//memset( sprt, 0, sizeof( sprite_t ) );
level.sprites[n] = newSprite;
return n;
}
}
*/
/*
if (level.numSprites >= Wolf.MAX_SPRITES) {
Wolf.log("Warning n_of_sprt == MAX_SPRITES");
return -1;
}
*/
Wolf.Renderer.loadSprite(newSprite);
level.sprites.push(newSprite);
return newSprite;
//level.numSprites++
//return level.numSprites-1;
}
function setPos(level, sprite, x, y, angle) {
/*
if (sprite_id == -1) {
return;
}
*/
//var sprite = level.sprites[sprite_id];
sprite.x = x;
sprite.y = y;
sprite.angle = angle;
sprite.tile.x = Wolf.POS2TILE( x );
sprite.tile.y = Wolf.POS2TILE( y );
sprite.flags |= Wolf.SPRT_CHG_POS;
if (!(x & Wolf.HALFTILE)) { // (x%TILEGLOBAL>=HALFTILE)
sprite.tile.x--;
}
if (!(y & Wolf.HALFTILE)) {
sprite.tile.y--;
}
}
function setTex(level, sprite, index, tex) {
/*
if (sprite_id == -1) {
return;
}
*/
//cacheTextures(tex, tex);
if (index == -1) { // one texture for each phase
sprite.tex[0] = tex;
sprite.flags |= Wolf.SPRT_ONE_TEX;
} else {
sprite.tex[index] = tex;
}
sprite.flags |= Wolf.SPRT_CHG_TEX;
}
function cacheTextures(start, end) {
var i, texname;
for( i = start ; i <= end ; ++i ) {
if (!spriteTextures[i]) {
//texname = "sprites/" + () + ".png";
//spriteTextures[i] = TM_FindTexture( texname, TT_Sprite );
}
}
}
function getTexture(id) {
return sheets[id];
}
function createVisList(viewport, level, visibleTiles) {
var tx, ty, n, num, numVisible,
vislist,
sprt;
vislist = [];
numVisible = 0;
for (n=0, num=level.sprites.length; n < num; ++n) {
sprt = level.sprites[n];
if (sprt.flags & Wolf.SPRT_REMOVE) {
continue;
}
tx = sprt.tile.x;
ty = sprt.tile.y;
if (tx > 63) {
tx = 63;
}
if (ty > 63) {
ty = 63;
}
// can be in any of 4 surrounding tiles; not 9 - see definition of tilex & tiley
if (visibleTiles[tx][ty] || visibleTiles[tx + 1][ty] || visibleTiles[tx][ty + 1] || visibleTiles[tx + 1][ty + 1]) {
// player spoted it
var vis = vislist[vislist.length] = {};
vis.dist = Wolf.Math.lineLen2Point(sprt.x - viewport.x, sprt.y - viewport.y, viewport.angle);
vis.x = sprt.x;
vis.y = sprt.y;
vis.angle = sprt.angle;
vis.tex = sprt.tex[0]; //FIXME!
vis.sprite = sprt;
if(++numVisible > Wolf.MAX_VIS_SPRITES) {
break; // vislist full
}
}
}
// sorting list
if (numVisible) { // do not sort if no entries
//vislist.sort();
//qsort( vislist, numVisible, sizeof( visobj_t ), Sprite_cmpVis );
}
return vislist;
}
function remove(level, sprite) {
if (!sprite) {
return;
}
sprite.flags |= Wolf.SPRT_REMOVE;
Wolf.Renderer.unloadSprite(sprite);
}
function clean(level) {
var i, num,
liveSprites = [];
for (i=0, num=level.sprites.length; i < num; ++i) {
if (level.sprites[i].flags & Wolf.SPRT_REMOVE) {
continue;
}
liveSprites.push(level.sprites[i]);
}
level.sprites = liveSprites;
}
return {
getNewSprite : getNewSprite,
setPos : setPos,
setTex : setTex,
cacheTextures : cacheTextures,
getTexture : getTexture,
createVisList : createVisList,
remove : remove,
clean : clean
};
})();