Пример #1
0
 public static BlastCorpsLevel decodeLevel(byte[] levelData, byte[] displayListData)
 {
     BlastCorpsLevel level = new BlastCorpsLevel();
      level.decodeHeader(levelData);          // 0x00-0x1F
      level.saveVertices(levelData);          // 0xC8-ammo
      level.decodeAmmoBoxes(levelData);       // 0x20
      level.decodeCollision24(levelData);     // 0x24
      level.decodeCommPoints(levelData);      // 0x28
      level.decodeAnimatedTextures(levelData);// 0x2C
      level.decodeTerrain(levelData);         // 0x30
      level.decodeRDUs(levelData);            // 0x34
      level.decodeTNTCrates(levelData);       // 0x38
      level.decodeSquareBlocks(levelData);    // 0x3C
      level.decodeBounds40(levelData);        // 0x40
      level.decodeBounds44(levelData);        // 0x44
      level.decode48(levelData);              // 0x48 TODO: decode these U32s
      level.decodeLevelBounds(levelData);     // 0x4C
      level.decodeVehicles(levelData);        // 0x50
      level.decodeMissileCarrier(levelData);  // 0x54
      level.decode58(levelData);              // 0x58 TODO
      level.decodeBuildings(levelData);       // 0x5C
      level.decode60(levelData);              // 0x60 TODO
      level.decode64(levelData);              // 0x64 TODO
      level.decodeTrainPlatform(levelData);   // 0x68
      level.decodeCollision6C(levelData);     // 0x6C
      level.decodeCollision70(levelData);     // 0x70
      level.decode74(levelData);              // 0x74 TODO
      // 0x78-0x9C are located in the display list data
      level.copyLevelData = levelData;
      level.displayList = displayListData;
      return level;
 }