BladeFireLight Posted November 1, 2003 Share Posted November 1, 2003 The Folowing is about the MCD files used to on terrain files in UFO and TFTD. Understanding Map Control Data (MCD) Files The MCD files are used by both UFO and TFTD to defined the TILE's used in tactical to form the physical and visual battle map Understanding the format of the MCD files allows us to create our own TERRAIN and TILE SETS's and ultimately, new MAP SET's The goal of this paper is to help the moding community understand how to edit (or write utilities to edit) the MCD files in the UFO and TFTD terrain directory. all tho I will touch on PCK files I will not go in depth on their format as their are plenty of utilities to edit them. Each MCD file is named the same as the PCK and TAB files that it uses graphics from. MCD files contain variable number of MCD records. Each record is 62 bytes long and have the following format typedef struct mcdentry { unsigned char Frame[8]; //Each frame is an index into the ____.TAB file; // The frames is the visual part of the Tile, // If all frames are the same than it's a static image otherwise it's animated unsigned char LOFT[12]; //Line Of Fire Template, The 12 levels of references into GEODATA\LOFTEMPS.DAT // used to describe the 3D phisical make up of the Tile // (more on this later) short int ScanG; //an index into the GEODATA\SCANG.DAT (4x4 bmp images used for the overhead map) // DaiShiva's PCKView.NET editor can be used to view thease images unsigned char u161D[8]; // UNKNOWN.. unsigned char UFODoor; //[On/OFF flag]If it's a UFO door it uses only Frame[0] until it is walked through, // then it animates once and becomes OpenMCD. It changes back at the end of the turn unsigned char StopLOS; //[On/Off flag]You cannot see through this tile. (how it blocks is based on TileType) unsigned char NoFloor; //[On/Off flag]If 1, then a non-flying unit can't stand here (only valid on floor TileTypes) unsigned char BigWall; //[On/Off flag]It's an object (tile type 3), but it acts like a wall // Used most often for unwalkable Tiles. IE. Tables and Solid Rock unsigned char Gravlift; //[On/Off flag] The up/down of a grav lift is determined if their is // another gravlift above or below in the MAP file unsigned char Door; //[On/Off flag]It's a human style door--you walk through it and it changes to OpenMCD unsigned char BlockFire; //[On/Off flag]If 1, fire won't go through the tile unsigned char BlockSmoke; //[On/Off flag]If 1, smoke won't go through the tile unsigned char u26; // UNKNOWN... unsigned char TUWalk; //The number of TUs required to pass the tile while walking. // An 0xFF (255) means it's unpassable. unsigned char TUFly; //The number of TUs required to fly through tile // 0xFF means it's impassable! unsigned char TUSlide; //Tu's for Sliding things like snakemen and silacoids unsigned char Armour; //The higher this is the less likely it is that a weapon will destroy // this tile when it's hit. unsigned char HEBlock; //How much of an explosion this tile will block unsigned char DieMCD; //If the terrain is destroyed, it becomes this MCD entry. unsigned char Flammable; //How flammable it is (the higher the harder it is to set aflame) unsigned char OpenMCD; //If "Door" or "UFODoor" is on, then when a unit walks through it the door it changes to this MCD entery. unsigned char u2F; // UNKNOWN.. signed char VDisplace; //When a unit or object is on this tile, the unit is shifted by this number of pixels unsigned char SubtractY; //The pck images are drawn this many pixels lower when displayed. (used for hills) unsigned char u32; // UNKNOWN.. unsigned char BlockLight; //The amount of light it blocks, from 0 to 10 unsigned char SoundFX; //The Sound Effect set to choose from when footsteps are on the tile // This is mostlikly an index to the .CAT file RAW wave unsigned char TileType; //This is the type of tile it is meant to be -- // 0=floor, 1=west wall, 2=north wall, 3=object . When this type of tile is in the // DieMCD or OpenMCD flags, this value is added to the tile coordinate to determine // the byte in which the tile type should be written. unsigned char HEType; //0=HE 1=Smoke unsigned char HEStrength; //The strength of the explosion caused when it's destroyed. 0 means no explosion. unsigned char SmokeBlockage; //? Not sure about this ... unsigned char Fuel; //The number of turns the tile will burn when set aflame unsigned char LightSource; //The amount of light this tile produces unsigned char TypeProperties;//The special properties of the tile (like Aqua plastics.. or Synom device) // This effects what is salvage from a UFO/USO or base at the end of combat. // some settings are used for combat Win conditions (use MTT_nnn and MT_nnn ) unsigned char u3C3D[2]; // UNKNOWN.. }MCDEntry; // MCD Tile properties for TFTD #define MTT_Tile 0x00 // default, no special properties #define MTT_StartPoint 0x01 // abort tile from 2part missions #define MTT_IonBeamAccel 0x02 #define MTT_DestroyObjective 0x03 #define MTT_MagnaticNav 0x04 #define MTT_AlienCryo 0x05 #define MTT_AlienClon 0x06 #define MTT_AlienLearn 0x07 #define MTT_AlienImplant 0x08 #define MTT_Unknown9 0x09 // Not used in TFTD #define MTT_AquaPlastics 0x0A #define MTT_ExamRoom 0x0B #define MTT_DeadTile 0x0C //used for tiles the are the destroyed version #define MTT_EndPoint 0x0D // Exit 'abort' tile #define MTT_MustDestroy 0x0E // Ultimate Alien Power Sorces (only used by final combats) // MCD Tile Properties for UFO ** one of the unknows may the AlienRepoduction ** #define MT_Tile 0x00 // default, no special properties #define MT_StartPoint 0x01 // abort tile from 2part missions #define MT_UFOPowerSorce 0x02 #define MT_DestroyObjective 0x03 // This is also used for UFONavigaion #define MT_UFONav 0x03 // Also the Destroy objective #define MT_Unknown4 0x04 // Not used in UFO #define MT_AlienFood 0x05 #define MT_Unknown6 0x06 // Not used in UFO #define MT_AlienEntertain 0x07 #define MT_AlienSurgery 0x08 #define MT_ExaminationRoom 0x09 #define MT_AlienAlloys 0x0A #define MT_UnknownB 0x0B // Not used in UFO. #define MT_DeadTile 0x0C //used for tiles the are the destroyed version #define MT_EndPoint 0x0D // Exit 'abort' tile #define MT_MustDestroy 0x0E // UFO = Alien brain (only used by final combats) Line Of Fire Teplates (LOFT) The LOFT's are stored in loftemps.dat found in the GEODATA dir in UFO and GEODATA and TERRAIN in TFTD (I believe the TERRAIN one is not used) for both games these files are exactly the same. It contains 112 LOFT entries (0 through 111). a LOFT entry is 16 unsigned shorts used as a binary mask. this makes a 16x16 bit square. win 1 being a solid object and 0 being empty space. for example. Entery number 4: 004: /----------------\ |0000000000000000| |0000000000000000| |0000000000000000| |0000000000000000| |0000000111000000| |0000011111110000| |0000011111110000| |0000111111111000| |0000111111111000| |0000111111111000| |0000011111110000| |0000011111110000| |0000000111000000| |0000000000000000| |0000000000000000| |0000000000000000| \----------------/ not very readable. so I'm going to display them with # for 1 and . for 0 (requires a fixed width font) 004: /----------------\ |................| |................| |................| |................| |.......###......| |.....#######....| |.....#######....| |....#########...| |....#########...| |....#########...| |.....#######....| |.....#######....| |.......###......| |................| |................| |................| \----------------/ This defines a solid circle in the middle of the tile. Each MCD uses 12 LOFTS (starting at the bottom) to create a 16x16x12 bit mask lets look at a simple object. the barrel from a TFTD Port mission File: port01.mcd Entery number 93 Offset: 0x00001686: 5D 5D 5D 5D 5D 5D 5D 5D 04 04 04 04 04 04 04 04 00 00 00 00 0047 04 00 18 54 04 00 25 54 00 00 00 01 00 00 00 01 03 FF FF FF 0A 0A 00 0A 00 00 EE 00 00 00 04 03 00 50 00 03 00 00 00 00 The first line is the 8 images.. all the same because this is not an animation The second line is our LOFT enterys. the first eight are 04. the circle shown above. the last four are 00. 000: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ as you can see it's empty space. This shows that the barel is not as tall as the whole TILE. Lets look at a more complex example Tthe stone staircase along the warf of the TFTD Port terrain Entery: 20 000004D8: 14 14 14 14 14 14 14 14 06 15 14 10 0E 0A 00 00 00 00 00 00 0074 04 00 18 54 04 00 25 54 00 00 00 00 00 00 00 00 03 01 01 01 3C 0F 13 7A 00 00 F8 00 00 00 02 03 00 00 00 01 00 00 00 00 006: /----------------\ 015: /----------------\ 014: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |................| |################| |################| |................| |################| |................| |................| |################| |................| |................| \----------------/ \----------------/ \----------------/ 010: /----------------\ 00e: /----------------\ 00a: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |................| |################| |################| |................| |################| |################| |................| |################| |................| |................| |################| |................| |................| |################| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ \----------------/ \----------------/ As you can see the physical shape of the stairs obvious in the solid parts of the LOFT masks I hope this information will help others in modifying Terrains for new maps in UFO and TFTD. Link to comment Share on other sites More sharing options...
BladeFireLight Posted November 1, 2003 Author Share Posted November 1, 2003 Apendix1: cense there is not easy to use editor for LOFT files I'm including all 112 entries below LOFTemps enterys: 000: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 001: /----------------\ |................| |................| |................| |................| |................| |................| |................| |.......###......| |.......###......| |.......###......| |................| |................| |................| |................| |................| |................| \----------------/ 002: /----------------\ |................| |................| |................| |................| |................| |................| |.......###......| |......#####.....| |......#####.....| |......#####.....| |.......###......| |................| |................| |................| |................| |................| \----------------/ 003: /----------------\ |................| |................| |................| |................| |................| |.......###......| |......#####.....| |.....#######....| |.....#######....| |.....#######....| |......#####.....| |.......###......| |................| |................| |................| |................| \----------------/ 004: /----------------\ |................| |................| |................| |................| |.......###......| |.....#######....| |.....#######....| |....#########...| |....#########...| |....#########...| |.....#######....| |.....#######....| |.......###......| |................| |................| |................| \----------------/ 005: /----------------\ |................| |................| |................| |......#####.....| |....#########...| |....#########...| |...###########..| |...###########..| |...###########..| |...###########..| |...###########..| |....#########...| |....#########...| |......#####.....| |................| |................| \----------------/ 006: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| \----------------/ 007: /----------------\ |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| \----------------/ 008: /----------------\ |################| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 009: /----------------\ |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| |##..............| \----------------/ 00a: /----------------\ |################| |################| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 00b: /----------------\ |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| |###.............| \----------------/ 00c: /----------------\ |################| |################| |################| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 00d: /----------------\ |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| |#####...........| \----------------/ 00e: /----------------\ |################| |################| |################| |################| |################| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 00f: /----------------\ |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| \----------------/ 010: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 011: /----------------\ |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| |#########.......| \----------------/ 012: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |................| |................| |................| |................| |................| |................| |................| \----------------/ 013: /----------------\ |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| \----------------/ 014: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |................| |................| |................| |................| \----------------/ 015: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |................| |................| \----------------/ 016: /----------------\ |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| |##############..| \----------------/ 017: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |################| |################| \----------------/ 018: /----------------\ |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| |..............##| \----------------/ 019: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |################| |################| |################| |################| \----------------/ 01a: /----------------\ |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| \----------------/ 01b: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |################| |################| |################| |################| |################| |################| |################| \----------------/ 01c: /----------------\ |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| |.........#######| \----------------/ 01d: /----------------\ |................| |................| |................| |................| |................| |................| |................| |################| |################| |################| |################| |################| |################| |################| |################| |################| \----------------/ 01e: /----------------\ |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| |.......#########| \----------------/ 01f: /----------------\ |................| |................| |................| |................| |................| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| \----------------/ 020: /----------------\ |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| \----------------/ 021: /----------------\ |................| |................| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| \----------------/ 022: /----------------\ |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| |..##############| \----------------/ 023: /----------------\ |##..............| |###.............| |.###............| |..###...........| |...###..........| |....###.........| |.....###........| |......###.......| |.......###......| |........###.....| |.........###....| |..........###...| |...........###..| |............###.| |.............###| |..............##| \----------------/ 024: /----------------\ |..............##| |.............###| |............###.| |...........###..| |..........###...| |.........###....| |........###.....| |.......###......| |......###.......| |.....###........| |....###.........| |...###..........| |..###...........| |.###............| |###.............| |##..............| \----------------/ 025: /----------------\ |#...............| |#...............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |#...............| |#...............| \----------------/ 026: /----------------\ |##............##| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 027: /----------------\ |##..............| |##..............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 028: /----------------\ |###.............| |###.............| |###.............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 029: /----------------\ |####............| |####............| |####............| |####............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 02a: /----------------\ |................| |................| |................| |................| |################| |################| |################| |################| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 02b: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |################| |################| |################| |################| |................| |................| |................| |................| \----------------/ 02c: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |################| |################| |################| |################| \----------------/ 02d: /----------------\ |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| |....#####.......| \----------------/ 02e: /----------------\ |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| |........####....| \----------------/ 02f: /----------------\ |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| \----------------/ 030: /----------------\ |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| |..############..| \----------------/ 031: /----------------\ |................| |................| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |................| |................| \----------------/ 032: /----------------\ |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |................| |................| |................| |................| \----------------/ 033: /----------------\ |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |#...............| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 034: /----------------\ |#...............| |#...............| |#...............| |#...............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 035: /----------------\ |................| |................| |................| |................| |......#####.....| |.....#.....#....| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 036: /----------------\ |................| |................| |................| |................| |................| |.....#..........| |....#...........| |....#...........| |....#...........| |....#...........| |....#...........| |.....#..........| |................| |................| |................| |................| \----------------/ 037: /----------------\ |................| |................| |................| |................| |................| |...........#....| |............#...| |............#...| |............#...| |............#...| |............#...| |...........#....| |................| |................| |................| |................| \----------------/ 038: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |.....#.....#....| |......#####.....| |................| |................| |................| \----------------/ 039: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |###############.| |##############..| |#############...| \----------------/ 03a: /----------------\ |...#############| |..##############| |.###############| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| \----------------/ 03b: /----------------\ |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| |.###############| |..##############| |...#############| |....############| |.....###########| |......##########| \----------------/ 03c: /----------------\ |##########......| |###########.....| |############....| |#############...| |##############..| |###############.| |################| |################| |################| |################| |################| |################| |################| |################| |################| |################| \----------------/ 03d: /----------------\ |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |................| |................| |................| \----------------/ 03e: /----------------\ |................| |................| |................| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| \----------------/ 03f: /----------------\ |................| |................| |................| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |...##########...| |................| |................| |................| \----------------/ Link to comment Share on other sites More sharing options...
BladeFireLight Posted November 1, 2003 Author Share Posted November 1, 2003 040: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |............#...| |...........###..| |............#...| |................| |................| \----------------/ 041: /----------------\ |................| |................| |................| |................| |...#............| |..###...........| |...#............| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 042: /----------------\ |................| |....#...........| |...###..........| |....#...........| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 043: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |..............#.| |.............###| |..............#.| |................| |................| |................| |................| \----------------/ 044: /----------------\ |................| |................| |................| |................| |................| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| \----------------/ 045: /----------------\ |................| |................| |................| |................| |................| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |.....###########| |................| |................| |................| |................| |................| \----------------/ 046: /----------------\ |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 047: /----------------\ |................| |................| |................| |................| |................| |########........| |########........| |########........| |########........| |########........| |########........| |................| |................| |................| |................| |................| \----------------/ 048: /----------------\ |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |................| |................| |................| |.....#....#.....| |................| |................| |................| |................| |................| |................| |................| \----------------/ 049: /----------------\ |................| |................| |................| |................| |................| |#####....#......| |#####...........| |#####...........| |#####...........| |#####...........| |#####....#......| |................| |................| |................| |................| |................| \----------------/ 04a: /----------------\ |.....######.....| |.....######.....| |.....######.....| |.....######.....| |.....######.....| |................| |................| |................| |................| |................| |.....#....#.....| |................| |................| |................| |................| |................| \----------------/ 04b: /----------------\ |................| |................| |................| |................| |................| |#####......#....| |#####...........| |#####...........| |#####...........| |#####...........| |#####......#....| |................| |................| |................| |................| |................| \----------------/ 04c: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |#...............| |#...............| \----------------/ 04d: /----------------\ |..............##| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 04e: /----------------\ |................| |.#............#.| |................| |........#.......| |................| |................| |................| |................| |...#....#....#..| |................| |................| |................| |................| |........#.......| |.#............#.| |................| \----------------/ 04f: /----------------\ |#...............| |##..............| |###.............| |####............| |#####...........| |######..........| |#######.........| |########........| |#########.......| |##########......| |###########.....| |############....| |#############...| |##############..| |###############.| |################| \----------------/ 050: /----------------\ |################| |.###############| |..##############| |...#############| |....############| |.....###########| |......##########| |.......#########| |........########| |.........#######| |..........######| |...........#####| |............####| |.............###| |..............##| |...............#| \----------------/ 051: /----------------\ |################| |###############.| |##############..| |#############...| |############....| |###########.....| |##########......| |#########.......| |########........| |#######.........| |######..........| |#####...........| |####............| |###.............| |##..............| |#...............| \----------------/ 052: /----------------\ |...............#| |..............##| |.............###| |............####| |...........#####| |..........######| |.........#######| |........########| |.......#########| |......##########| |.....###########| |....############| |...#############| |..##############| |.###############| |################| \----------------/ 053: /----------------\ |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |............####| |################| |################| |################| |################| \----------------/ 054: /----------------\ |##............##| |##............##| |................| |......#####.....| |.....#######....| |....#########...| |...###########..| |...###########..| |...###########..| |...###########..| |...###########..| |....#########...| |.....#######....| |......#####.....| |##............##| |##............##| \----------------/ 055: /----------------\ |##............##| |##............##| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |##............##| |##............##| \----------------/ 056: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |...............#| |.............###| |.............###| |............####| \----------------/ 057: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |#...............| |###.............| |###.............| |####............| \----------------/ 058: /----------------\ |............####| |.............###| |.............###| |...............#| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 059: /----------------\ |............####| |..........######| |........########| |.......#########| |......##########| |.....###########| |....############| |...#############| |..##############| |..##############| |.###############| |.###############| |################| |################| |################| |################| \----------------/ 05a: /----------------\ |################| |################| |################| |################| |###############.| |###############.| |##############..| |##############..| |#############...| |############....| |###########.....| |##########......| |#########.......| |########........| |######..........| |####............| \----------------/ 05b: /----------------\ |################| |################| |################| |################| |.###############| |.###############| |..##############| |..##############| |...#############| |....############| |.....###########| |......##########| |.......#########| |........########| |..........######| |............####| \----------------/ 05c: /----------------\ |####............| |######..........| |########........| |#########.......| |##########......| |###########.....| |############....| |#############...| |##############..| |##############..| |###############.| |###############.| |################| |################| |################| |################| \----------------/ 05d: /----------------\ |................| |..........##....| |.........####...| |.........####...| |...........#....| |................| |................| |................| |................| |................| |.....##.........| |.....####.......| |.....####.......| |......##........| |................| |................| \----------------/ 05e: /----------------\ |................| |............###.| |...........####.| |.###........###.| |.####...........| |.###............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 05f: /----------------\ |................| |................| |................| |.............##.| |............####| |............####| |.............##.| |.......###......| |.......####.....| |........##......| |................| |...##...........| |..####..........| |..####..........| |..###...........| |................| \----------------/ 060: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |.......###......| |......#####.....| |......#####.....| |......#####.....| |.......###......| |................| |................| |................| \----------------/ 061: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |.......###......| |......#####.....| |......#####.....| |......#####.....| |.......###......| |................| \----------------/ 062: /----------------\ |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |................| |................| |................| |................| \----------------/ 063: /----------------\ |........########| |........########| |........########| |........########| |........########| |........########| |........########| |........########| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 064: /----------------\ |............####| |............####| |............####| |............####| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 065: /----------------\ |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |................| |................| |................| |................| \----------------/ 066: /----------------\ |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 067: /----------------\ |####............| |####............| |####............| |####............| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 068: /----------------\ |................| |................| |................| |................| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| |############....| \----------------/ 069: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |########........| |########........| |########........| |########........| |########........| |########........| |########........| |########........| \----------------/ 06a: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |####............| |####............| |####............| |####............| \----------------/ 06b: /----------------\ |................| |................| |................| |................| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| |....############| \----------------/ 06c: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |........########| |........########| |........########| |........########| |........########| |........########| |........########| |........########| \----------------/ 06d: /----------------\ |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |............####| |............####| |............####| |............####| \----------------/ 06e: /----------------\ |##..##..##..##..| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| |................| \----------------/ 06f: /----------------\ |................| |................| |#...............| |#...............| |................| |................| |#...............| |#...............| |................| |................| |#...............| |#...............| |................| |................| |#...............| |#...............| \----------------/ Glosory: Tile: MCD entry using Tile Images to define one placeable map item (wall, floor, animated object). Tile Set: colection of Tile's from one MCD file Tile Image: pck image enterys used to make a tile Terrain (set): A group of 1 to 5 Tile Sets used for a series of maps. Map: A single .map file Map Tile: a group of 4 tiles, each tile representing a ground, north, west and content Map Set: a group of map files with the same first 6 letters and numberd 00 to 99 That all use the same terrain. World Texture: the image used for geoscape quads representing real world climates or sea depths World Map set: a group of Map Sets that can be use on a specific World Texture. (ie Farms on grass land.) Ship Map: A single .map file for a UFO/USO with it's corispoinding Terrain. Default Ship: the original Ship Map from the Release version of UFO/TFTD Ship Set: a group of ship maps that are posible reandom replacments for a single default ship. (terrain does not have to be the same) Link to comment Share on other sites More sharing options...
Bagirov Posted November 2, 2003 Share Posted November 2, 2003 For editing MCD Files I suggest : MCDEdit Link to comment Share on other sites More sharing options...
Bagirov Posted November 2, 2003 Share Posted November 2, 2003 MCD files contain variable number of MCD records. Each record is 62 bytes long and have the following format @ BladeFireLightDo you know whether there is a possibility to increase the number of records in a MCD file ?Unfortunately the editor is not capable to do that. Link to comment Share on other sites More sharing options...
Zombie Posted July 6, 2008 Share Posted July 6, 2008 Ok, I guess this is the best place for this post. The other day I was looking at the MCD entry in the X-COM Wiki and ran across the footstep sound effects in [052]: 0 Not used in XCOM (makes a metal sound if hacked); is used on TFTD for some objects -Hobbes 1 Metal 2 Normal (Grass, Wood, Dirt) 3 Three mountain ground tiles, and some city apt. furniture objects that can't be walked on? (six furniture objects might've been - but they're death tiles that nothing points to) Uses same sound as 6. 4 Pool of water (Not used in XCOM) 5 Sand (Desert) 6 Martian 7 Snow (Not used in XCOM, Arctic actually uses 2)I fooled around with this for a little bit and MapView verifies most of the values. Fine. So off I went to reintroduce the snow footstep sound effect for polar/arctic landscape by editing the ground tiles in polar.mcd[052] to a value of 7 instead of 2. When I went into a polar mission to check my handiwork, I was rewarded with footsteps sounding like an MC attack + some strange sound. Obviously something was up, so I listened to all the battlescape sounds for clues (thanks to Danial for uploading them). From what I can determine there are only 6 footstep sound effects in the .cat file (actually it's 12: there are two sounds for a footstep, the usual klip - klop pairing). The value of 7 doesn't point to a valid pairing of footsteps, just the next two sounds in the file. After scratching my head a little bit, I went ahead and changed the footstep sound value to 6 instead. To me it sounds like the scruntch sound made by snow - not Martian sand. Therefore, I uploaded the fix to our files section here for consideration. My confusion probably is because the pointer is shifted down by one in the .cat file from what the wiki shows. Not sure though. Any ideas folks? Is the CE version missing some sounds? For reference, the footstep sounds are the following pairings in Danial's file (ordering starts at 1, not 0): 24/25 26/27 28/29 30/31 32/33 34/35- Zombie Link to comment Share on other sites More sharing options...
Quantifier Posted July 6, 2008 Share Posted July 6, 2008 I fooled around with this for a little bit and MapView verifies most of the values. Fine. So off I went to reintroduce the snow footstep sound effect for polar/arctic landscape by editing the ground tiles in polar.mcd[052] to a value of 7 instead of 2. When I went into a polar mission to check my handiwork, I was rewarded with footsteps sounding like an MC attack + some strange sound. Obviously something was up, so I listened to all the battlescape sounds for clues (thanks to Danial for uploading them). From what I can determine there are only 6 footstep sound effects in the .cat file (actually it's 12: there are two sounds for a footstep, the usual klip - klop pairing). The value of 7 doesn't point to a valid pairing of footsteps, just the next two sounds in the file. After scratching my head a little bit, I went ahead and changed the footstep sound value to 6 instead. To me it sounds like the scruntch sound made by snow - not Martian sand. Therefore, I uploaded the fix to our files section here for consideration. My confusion probably is because the pointer is shifted down by one in the .cat file from what the wiki shows. Not sure though. Any ideas folks? Is the CE version missing some sounds? The CE version uses different indexing for footsteps, which is interpreted straight forward as index into the .CAT file. However, DOS version does some magic, and behaves in the way described in the table. Try using value 7 again, but this time in DOS, you'll hear proper footsteps in the snow.I'm afraid the fix for polar terrain will be platform dependent. Link to comment Share on other sites More sharing options...
Zombie Posted July 6, 2008 Share Posted July 6, 2008 The CE version uses different indexing for footsteps, which is interpreted straight forward as index into the .CAT file. However, DOS version does some magic, and behaves in the way described in the table. Try using value 7 again, but this time in DOS, you'll hear proper footsteps in the snow.I'll have to give that a try sometime, it's been a long time since I ran the DOS version of the game due to all the hassles of getting it to run under DosBox, etc. With the CE it's a simple double click on the executable and I'm off to the races. Certainly though, the Wiki footstep listing is true for one version of the game, but which one? It makes no mention. I mean, isn't there sound differences between v1.2 (or even the original) and v1.4? Was there changes between v1.4 and CE? Obviously, in Danial's extracted sound file there are only so many footstep sound effects. The "extra" metal footstep for a hacked value of 0 isn't in there (I think, unless it actually points to metal sound #1). The same goes for a value of 3 which I assume points to the Martian #6 and isn't a separate sound. That would explain why there are only 6 footsteps in the game... and my confusion. I'm afraid the fix for polar terrain will be platform dependent.Yeah, it sounds like it for now. Well, I renamed the file so as not to confuse anyone trying to patch their DOS version with the CE fix. - Zombie Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now