Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var __LM_EXTRA_HI =
- {
- get: function( ){ return (this.extra & 0xF0) >> 4; },
- set: function(x){ this.extra = (this.extra & 0x0F) | ((x & 0x0F) << 4); },
- };
- var __LM_EXTRA_HI_PLUS1 =
- {
- get: function( ){ return 1 + ((this.extra & 0xF0) >> 4); },
- set: function(x){ --x; this.extra = (this.extra & 0x0F) | ((x & 0x0F) << 4); },
- };
- var __LM_EXTRA_LO =
- {
- get: function( ){ return this.extra & 0x0F; },
- set: function(x){ this.extra = (this.extra & 0xF0) | (x & 0x0F); },
- };
- var __LM_EXTRA_LO_PLUS1 =
- {
- get: function( ){ return 1 + (this.extra & 0x0F); },
- set: function(x){ --x; this.extra = (this.extra & 0xF0) | (x & 0x0F); },
- };
- var __LM_EXTRA_BYTE_PLUS1 =
- {
- get: function( ){ return 1 + (this.extra & 0xFF); },
- set: function(x){ --x; this.extra = x & 0xFF; },
- };
- var __LUNAR_MAGIC_STANDARD = new Map(
- [
- [0x01, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Water Tiles 1" }],
- [0x02, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Invisible Coin Blocks" }],
- [0x03, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Invisible Note Blocks" }],
- [0x04, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Invisible POW Coins" }],
- [0x05, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Coins" }],
- [0x06, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Non-Solid Dirt" }],
- [0x07, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Water Tiles 2" }],
- [0x08, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Note Blocks" }],
- [0x09, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Turn Blocks" }],
- [0x0A, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Coin Blocks" }],
- [0x0B, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Throw Blocks" }],
- [0x0C, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Munchers" }],
- [0x0D, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Grey Cement Blocks" }],
- [0x0E, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Used (Brown) Blocks" }],
- [0x0F, { w: 2, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Vertical Pipe" }],
- [0x10, { w: __LM_EXTRA_LO_PLUS1, h: 2, other: __LM_EXTRA_HI, name: "Horizontal Pipe" }],
- [0x11, { w: 1, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Bullet Shooter" }],
- [0x13, { w: 1, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Wall/Vine" }],
- [0x14, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Ledge" }],
- [0x15, { w: 3, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Goal/Midway Point" }],
- [0x16, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Purple Coins" }],
- [0x17, { w: __LM_EXTRA_LO_PLUS1, h: 1, other: __LM_EXTRA_HI, name: "Rope/Clouds" }],
- [0x18, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Water with Animated Surface" }],
- [0x19, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Water with Normal Surface" }],
- [0x1A, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Mud/Lava with Animated Surface" }],
- [0x1B, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Fence with Top" }],
- [0x1C, { w: __LM_EXTRA_LO_PLUS1, h: 2, name: "Donut Bridge" }],
- [0x1D, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Fence with Bottom" }],
- [0x1E, { w: 1, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Fence Side (Snap)" }],
- [0x1F, { w: 1, h: __LM_EXTRA_HI_PLUS1, name: "Skinny Vertical Pipe/Bone/Log" }],
- [0x20, { w: __LM_EXTRA_LO_PLUS1, h: 1, name: "Skinny Horizontal Pipe/Bone/Log" }],
- [0x21, { w: __LM_EXTRA_BYTE_PLUS1, h: 3, name: "Wide-scale Ground Ledge" }],
- [0x12,
- {
- w: {
- get: function( )
- {
- let size = (this.extra & 0xF0) >> 4;
- switch (this.other)
- {
- case 0: return 2*(1+size); break;
- case 1: return 1*(1+size); break;
- case 2: return 4*(1+size); break;
- default: throw new Exception("Unexpected slope type.");
- }
- },
- set: function(x){ throw new Exception("Cannot set slope width."); },
- },
- h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Sloped Ground"
- }],
- ]);
- // 0 - 0,7,C, example level: 105 - YI1 (normal/cloud/forest)
- var __LUNAR_MAGIC_TILESET_SPECIFIC_0 = new Map(
- [
- [0x30, { w: 2, h: __LM_EXTRA_HI_PLUS1, name: "Ice Blue Vertical Pipe" }],
- [0x31, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Ice Blue Turn Blocks" }],
- [0x32, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Blue Switch Blocks" }],
- [0x34, { w: 1, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Wall (Forest)" }],
- [0x35, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Ledge (Forest)" }],
- [0x36, { w: 2, h: __LM_EXTRA_HI_PLUS1, name: "Large Tree Trunk (Forest)" }],
- [0x37, { w: 1, h: __LM_EXTRA_HI_PLUS1, other: __LM_EXTRA_LO, name: "Small Tree Trunk (Forest)" }],
- [0x38, { w: __LM_EXTRA_HI_PLUS1, h: __LM_EXTRA_LO_PLUS1, name: "Red Switch Blocks" }],
- [0x33,
- {
- w: {
- get: function( ){ return 16*(1+(this.extra & 0xFF)); },
- set: function(x){ this.extra = (x >> 4) - 1; },
- },
- h: 6, name: "Forest Tree Top"
- }],
- ]);
- // 1 - 1, example level: 10D - bowser's castle (castle)
- var __LUNAR_MAGIC_TILESET_SPECIFIC_1 = new Map(
- [
- ]);
- // 2 - 2,6,8, example level: 113 - vob3 (rope)
- var __LUNAR_MAGIC_TILESET_SPECIFIC_2 = new Map(
- [
- ]);
- // 3 - 3,9,A,B,E, example level: 115 - vob2 (underground/switch/castle)
- var __LUNAR_MAGIC_TILESET_SPECIFIC_3 = new Map(
- [
- ]);
- // 4 - 4,5,D, example level: 114 - valley ghost (switch/ghost)
- var __LUNAR_MAGIC_TILESET_SPECIFIC_4 = new Map(
- [
- ]);
- var __LUNAR_MAGIC_TILESET_LOOKUP =
- [
- __LUNAR_MAGIC_TILESET_SPECIFIC_0, // 0
- __LUNAR_MAGIC_TILESET_SPECIFIC_1, // 1
- __LUNAR_MAGIC_TILESET_SPECIFIC_2, // 2
- __LUNAR_MAGIC_TILESET_SPECIFIC_3, // 3
- __LUNAR_MAGIC_TILESET_SPECIFIC_4, // 4
- __LUNAR_MAGIC_TILESET_SPECIFIC_4, // 5
- __LUNAR_MAGIC_TILESET_SPECIFIC_2, // 6
- __LUNAR_MAGIC_TILESET_SPECIFIC_0, // 7
- __LUNAR_MAGIC_TILESET_SPECIFIC_2, // 8
- __LUNAR_MAGIC_TILESET_SPECIFIC_3, // 9
- __LUNAR_MAGIC_TILESET_SPECIFIC_3, // A
- __LUNAR_MAGIC_TILESET_SPECIFIC_3, // B
- __LUNAR_MAGIC_TILESET_SPECIFIC_0, // C
- __LUNAR_MAGIC_TILESET_SPECIFIC_4, // D
- __LUNAR_MAGIC_TILESET_SPECIFIC_3, // E
- null, // F - unused
- ];
- var __LUNAR_MAGIC_EXTENDED = new Map(
- [
- ]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement