authorblues

Untitled

Sep 11th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var CI2_ROOM_OFFSETS =
  2. [
  3.     [0x06, 0x08, 0x0A], // room 1
  4.     [0x0C, 0x0E, 0x10], // room 2
  5.     [0x00, 0x02], // room 3
  6. ];
  7.  
  8. var CI2_LAYER_OFFSETS =
  9. {
  10.     'layer1': snesAddressToOffset(0x05DB08),
  11.     'layer2': snesAddressToOffset(0x0B5B1C),
  12.     'sprite': snesAddressToOffset(0x0B5B1A),
  13. };
  14.  
  15. function randomizeCI2(random, rom)
  16. {
  17.     for (var i = 0; i < CI2_ROOM_OFFSETS.length; ++i)
  18.     {
  19.         var roomset = CI2_ROOM_OFFSETS[i], backups = {};
  20.         for (var j = 0; j < roomset.length; ++j)
  21.         {
  22.             var data = backups[roomset[j]] = {};
  23.             for (var k in CI2_LAYER_OFFSETS) if (CI2_LAYER_OFFSETS.hasOwnProperty(k))
  24.             {
  25.                 var start = CI2_LAYER_OFFSETS[k] + roomset[j];
  26.                 data[k] = rom.slice(start, start+2);
  27.             }
  28.         }
  29.        
  30.         var newrooms = roomset.slice(0).shuffle(random);
  31.         for (var j = 0; j < roomset.length; ++j)
  32.         {
  33.             for (var k in CI2_LAYER_OFFSETS) if (CI2_LAYER_OFFSETS.hasOwnProperty(k))
  34.                 rom.set(backups[newrooms[j]][k], CI2_LAYER_OFFSETS[k] + roomset[j]);
  35.         }
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment