Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/22/2020 in all areas

  1. [UPDATE 1.7.2020]: Version 1.4 was superseded by version 2.0. Downloads in this topic are outdated. Go to this thread for more information and download of new version: https://forum.dune2k.com/topic/28802-map-and-mission-editor-new-major-version-20-pre-release/ Hello all! It's finally time for a new release of D2kEditor! It's been more than a year since I made the last release (v1.3). After some time of rest, I saw Warcraft 2 snowy tileset made by Cm_blast which inspired me to work on the program further. I wanted D2kEditor to be more friendly with custom tilesets, and ended up with plenty of ideas and improvements I made in order to make the program more powerful and yet easier to use. I already showed preview of most of the new features in the other thread (https://forum.dune2k.com/topic/28518-d2keditor-v14-new-feature-preview-new-tileset-research/) so you should be already familiar with most of them. But during last days, I worked intensively on even more bug fixes and new features that came into my mind, and here it is, really rich changelog. Download (OUTDATED, take Release Candidate 3 please) Changelog: Added: Smooth spice rendering. Thin spice and thick spice is now drawn exactly how it appears in game. Added: Save minimap image feature Fixed: Outpost and Modified Outpost are visually distinguished by antenna turn direction. Fixed: The "Maximized" window property is now preserved for all dialogs when you close and open program again. Fixed: The last used directory for various open/save dialogs is preserved independently for each dialog. Fixed: Scrolling map with arrows will always work Fixed: Some key shortcuts (i.e. Ctrl+G) will no longer select a preset Added: You can use Shift + mouse wheel up/down to change brush size Added: You can hold Ctrl + click to map to easily and quickly switch to Select mode and start a selection Added: Select structures only mode. You can set the checkbox "Structures" next to "Select mode" radio button to third (grayed) state, which means select structures only. Useful for copying or moving a base layout. Added: Area type in Select mode. You can make a selection only of tiles of specified type, which makes possible to select more precise non-rectangle areas. If you hold Shift, the selected area is erased, which makes possible to easily move the area around. Added: Using "Reopen map" immediately after starting program will open the map which was open last time. Added: New dialog window to change a tileset. When you start new map, this dialog will open so you can select a tileset. Added: Reload tileset option. Useful when you modify tileset .ini file. Changed: In D2kEditor.ini file, the default tileset is not specified as tileset index, but as tileset name (setting was renamed to "DefaultTilesetName"). Added: Editor will load contents of custom TEXT.UIB file, if it is specified in mission .ini file. The "Test map" feature will automatically launch game with custom TEXT.UIB file. Added: Preset Helper feature (accessible from "Open tileset" window). Here you can easily design a block preset and copy its code to tileset .ini file, or directly use that block in terrain editor. Three major new features and changes: 1) Merged TileAtrEditor program into D2kEditor, so D2kEditor now has built-in Tile Attribute editor. TileAtrEditor became obsolete and no longer needed. 2) Significant improvements related to creating maps using custom tilesets. Creating maps using custom tilesets is now much easier and faster. 3) Major changes in tileset configurations (tileset .ini files) related to new features and improvements. You will need to update your custom tileset .ini files to make them compatible with this version of program. Ad 1) - Tile Attribute editor is now available from main menu under Tileset. - You can edit the current tileset used by current map. Swithching tileset would change it for current map too. - You save map and tile attributes independently. When you save attributes, changes will apply immediately to your map. - There is "Test in-game" feature (F8) that would save attributes and launch current map in game. - You can now edit all 32 game attributes. Previously only 7 attributes (which were present in original TILEATRx.BIN files) were editable, but according to latest TILEATRx.BIN research, it was discovered that the other attributes are internal attributes used by game during gameplay for various purposes. You can achieve various effects using those additional attributes, for example place a real working concrete on a map. - Editor attributes (special attributes used only by the editor to recognize which tile is sand, rock, dune tile etc.) are no longer part of TILEATRx.BIN files, because they conflicted with internal game attributes. You no longer need to distribute two separate versions of TILEATRx.BIN files: one for game and one for editor. - Editor attributes are stored inside tileset .ini file and editor saves them into .ini file automatically. - TILEATRx.BIN files are no longer distributed with the program. The program loads these files from game folder. - Added more flexible ways how you can filter tiles by attributes. Added "Filter tiles having any of attributes" mode, as well as "Filter tiles by rule" mode. Removed "Mark infantry-only" mode as this was just a specific case of a rule. - "Filter tiles by rule" is the most advanced mode, where you can specify which attributes tiles need to have (either all of any of them) and which attributes tiles must not have (basically combination of all three previous filter modes). In this mode you can easily design your rule and then use it in your tileset .ini file. - Added new view modes: "Draw minimap colors" and "Draw fill area groups" mode. These modes can help you design minimap color rules and fill area rules in your tileset .ini file, as you can easily and immediately see the result here. - Added "Edit tile hint text" mode. Tile hint text is a text that displays in game when you move mouse cursor over that tile. In original tilesets this is used only on spice tiles. Ad 2) - In Terrain editing mode, there are now 4 common paint groups and 8 tileset-specific paint groups (12 paint groups total). - The 4 common pain groups are reserved for Thin Spice, Thick Spice, Concrete and Void. The latter two are not commonly used in maps, but are potentially usable for new designs, or in custom tilesets. For example concrete can be used for decoration (in original tilesets it cannot be built on it), but it can be made buildable using specific tile attributes and used as real concrete in for example Dune 2 tileset. The Void could be used to make non-rectangle maps, or it is useful for indoors tilesets (i.e. Heighliner). - The 8 paint groups can be used for any terrain types. The original tilesets use no more tha 3 types (Sand/Rock/Dunes) or 4 types (Ice), however, in custom tilesets you can use all 8. - Improved "Auto-Smooth edges" feature (Shift-Click) and made it more flexible and configurable for custom tilesets. You can take advantage of this feaure for any terrain type in custom tilesets, it is not strictly limited for Rock and Dunes edge in original tilesets. - Added "Restrict painting" feature, which will let you paint specific tiles only on specific terrain type (i.e. spice and dunes can be painted only on sand, concrete can be painted only on rock). This can be turned off in Settings menu. - Added support for block presets with "blank" tiles. You can now have presets of any shape (not strictly rectangle shape). Ad 3) - Changed the way how rules (minimap color rules, fill area rules) are specified. Rules are now specified in this form: $attrubites_tile_must_have -OR- $attrubites_tile_must_have;$attrubites_tile_must_not_have If $attrubites_tile_must_have is negative, it means tile must have ANY of specified attributes. To design a rule, you can simply use specific filter on Tile Attributes editor and just copy the rule specification. - Fill area rules now have names. The names correspond to area types in Select mode. - You can specify up to 12 paint groups in [Paint_Tile_Groups] section. Groups A,B,C,D are reserved for thin spice, thick spice, concrete and void. Groups 1-8 are tileset-specific groups you can use for any terrain type. - The list of tiles used by a paint group is no longer specified by marking those tiles by editor attributes (Paint type 1-4), but directly as part of paint group specification ("GroupX.paint_tiles"). You can specify same tile number multiple times, which would increase probability of that tile being randomly selected. - The block presets used by "Auto-smooth edges" feature (Shift-click) are specified with "GroupX.smooth_preset_group" and "Group2.smooth_presets" properties. The presets are specified as list of keys on keyboard. There are two different modes of "Auto-smooth edges" feature: 1) 20 presets mode: used by original Dune2000 tilesets. Uses 12 1x1 blocks and 8 2x2 curved blocks. 2) 12 presets mode: uses only 1x1 blocks (4 straight blocks, 4 corners, 4 inner turns). - Added paint group restruction rule, which can be specified as "GroupX.restriction_rule" - The [Spice_Settings] section was completely removed. The spice minimap colors are now specified as additional minimap color rules. The thin/thick spice name, tile and restriction rule is specified as part of paint group A and B. - Spice is now also specified as separate fill area group. - Changed way how custom block presets (= blocks consisting of tiles not continuously arranged in tileset) are specified. You no longer need to specify them under separate [Custom_Blocks] section, but directly under [Block_Preset_Group_X] section along with standard blocks. To distinguish custom blocks, the width and height must be negative. You can utilize "Preset Helper" feature to easily design a block preset, and then copy its code and paste to .ini file. - Normal block presets are represented as "width.height.tileset_x.tileset.y", but you can newly specify them also in simplified form "width.height.tile_index" - Added "default_paint_group" under [Basic] section which is used to fill a new map. If not specified, group 1 is used. Just try it out and I hope you will like it. Note that this is still a Release Candidate, so in case you find any problem or bug, or any other idea comes into your mind, you can tell me and I can still add it into the release before it will get officially published on D2K+ website.
    1 point
  2. Hello all, most probably you already know something about tile attributes and those TILEATRx.BIN files. Tile attributes are defining the behavior of each tile, i.e. whether vehices and infantry can move on this tile, whether buildings can be placed on that tile, whether your units move slowly etc. Each TILEATRx.BIN file contains 800 entries (one entry for each tile, there are 800 tiles in tileset), each entry has 32 bits. 32 bits means there can be 32 different attributes for each tile (a bit can have two values: 0 or 1, off or on). In the original TILEATRx.BIN files shipped with the game, only 7 out of 32 attributes are used. Which leaves 25 attributes unused. Because the editor needs some extra information about tiles, which cannot be determined from existing attributes used by game, I decided to use 8 more bits (from those 25 unused bits) to store "Editor Attributes". These extra attributes tell the editor which tiles are sand tiles, rock tiles or dunes tiles, or the respective areas, so some of the features like fill area can work. I was assuming that using those 8 extra bits, which were not used in any of original TILEATRx.BIN files, would not affect the game behavior at all, but still, to be 100% safe, I decided to use two separate versions of same TILEATRx.BIN file: The original one for game, and the modified one (with extra attributes added into it) for the editor. However, later it turned out, that those extra "editor" attributes, which I thought were not used it game, are in fact used by the game, and are affecting game behavior. So if you take the TILEATRx.BIN file shipped with editor, and copy it into game folder, strange things will start happening, for example your units cannot move on tiles where they should normally be able to move. So I made some research in order to find out what's going on. And I discovered, that all those extra 25 attributes are game's internal attributes, which are added/removed from tiles by game logic during gameplay. These attributes were not meant by game authors to be used directly in TILEATRx.BIN files, however, you can exploit them to alter game behavior and have more modding possibilities. For example, you can place a real working concrete on you map! Here is the complete list of all those 32 attributes and their meanings. Attributes marked with * are those 7 attributes which are used in original TILEATRx.BIN files. 01: Building/Unit owner side (bit1) 02: Building/Unit owner side (bit2) 03: Building/Unit owner side (bit3) 04: Occupied by Unit 05: Occupied by Building 06: Occupied by Infantry (middle) 07: Occupied by Infantry (top-right) 08: Occupied by Infantry (down-right) 09: Occupied by Infantry (down-left) 10: Occupied by Infantry (top-left) 11: Wall 12: Concrete 13: Non-buildable 14: * Vehicles can pass 15: * Infantry can pass 16: * Buildings can be placed, Rock craters 17: * Sandworm can pass, Sand craters 18: Concrete owner side (bit 1) 19: Concrete owner side (bit 2) 20: Concrete owner side (bit 3) 21: Spice amount (bit 1) 22: Spice amount (bit 2) 23: Spice amount (bit 3) 24: Unknown/Unused 25: Unknown/Unused 26: Unknown (side bit 1) 27: Unknown (side bit 2) 28: Unknown (side bit 3) 29: Unknown/Unused 30: * Rock (wheeled +10% speed) 31: * Dunes (wheeled -50%, other -20% sp.) 32: * Rough Rock (all -50% speed) Now let's try to explain them. 05: Occupied by Building: Units cannot move on this tile and buildings cannot be placed. Cursor changes to "select" cursor when moved over this tile, like when cursor moves over a building or unit, but clicking will not do anything. The color of this tile on minimap changes to color of respective side, which this "building" belongs to (blue for Atreides, red for Harkonnen etc). The side who owns this "building" is defined by first three attributes: 01: Building/Unit owner side (bit1), 02: Building/Unit owner side (bit2), 03: Building/Unit owner side (bit3). Set those attributes to following possible combinations (0 = attribute not set, 1 = attribute set): 000 = Atreides 100 = Harkonnen 010 = Ordos 110 = Emperor 001 = Fremen 101 = Smugglers 011 = Mercenaries 111 = Sandworm If the owner is your side, you can place buildings near this tile, like when there was standing your own building. And same for the other AI players. 04: Occupied by Unit: Units cannot move on this tile and buildings cannot be placed. If you place any unit on a tile with this attribute with the Map and Mission Editor, the game will crash with error message "Tile already occupied by unit". Again, use first three attributes to define which side this "unit" belongs to. If the unit belongs to your side, cursor changes to "select" cursor when moved over this tile. Minimap is not affected by this attribute. 06 - 10: Occupied by Infantry: The tile behaves like there was infantry standing on the tile at one the 5 respective positions. I.e. if you use all 5 attributes, infantry is standing on all 5 positions. Again, use first three attributes to define which side the "infantry" belongs to. If the infantry belongs to your side, cursor changes to "select" cursor when moved over this tile. If you do not use all 5 attributes and the owner side is you, you can move your infantry on this tile, but they will be able to stand only on the "free" positions. If the owner side is not you, you cannot move your infantry on this tile even if there are free positions (like you cannot group your and enemy's infantry on same tile), but you can move heavy vehicles on this tile (i.e. tank, harvester etc.), like they were crushing enemy infantry, if the owner side is your enemy. And most importantly, your stealth units will get revealed when standing next to tile with this attribute whose owner is not you. 11: Wall: The tile behaves like a wall or turret. When you place a wall or turret next to a tile with this attribute, it will visually link to that tile, like when there was built a wall (but you can build and move units on this tile). 12: Concrete: The tile behaves like concrete. You cannot build concrete on this tile, but placing other buildings on it, they will not damage over time like they were built on a concrete. The tile is destructible, so when you shoot it, it will turn into rock tile and lose its effect (then you can build concrete on it). The side who owns the "concrete" is defined by these three attributes: 18: Concrete owner side (bit 1), 19: Concrete owner side (bit 2), 20: Concrete owner side (bit 3). Use same combination of values, like for buildings and units. If the concrete belongs to you, you can build on it even if no other your building is near, and you can place buildings near it too. 13: Non-buildable: You cannot place buildings on this tile, even if "Buildings can be placed" attribute is set. Apparently this attribute is internally used on tiles below buildings where you can move units but not place other buildings. 21 - 23: Spice amount: If all three are not set, the tile behaves normally. But if you set any combination of these attributes, the tile will graphically change to thin or thick spice, and will behave like spice, i.e. Harvester can harvest it and it will disappear once fully harvested. Possible combinations: 100 = Thin spice, can be harvested only once, then disappears 010 = Thin spice, can be harvested twice, then disappears 110 = Thick spice, can be harvested only once, then turns into thin spice (can be harvested 3 times total) 001 = Thick spice, can be harvested twice, then turns into thin spice (can be harvested 4 times total) Other combinations = Thick spice, cannot be harvested 26 - 28: Unknown: To be used with combination with "Occupied by Infantry" attribute. If you run over enemy infantry (meaning tile with "Occupied by Infantry" attribute) with a heavy vehicle, then owner of that infantry becomes the side defined by these three attributes. Meaning, if you are for example Fremen and set attributes 26-28 to combination of 001, and attributes 1-3 are some other value (enemy) and you move your heavy vehicle on this tile, the tile changes its behavior like it was your infantry - you can no longer move heavy units on it but can move infantry on free positions. Other function of these attributes was not discovered yet. So, here are a few examples what useful things you can do with these attributes: - Place real working concrete on map, and you can use any tile for it, not necessarily the concrete tiles in tileset. If you do not want you or enemy or other player to be able to build on it or next to it if no other building is near (i.e. the concrete is placed on separated rock area and you must only use MCV to reach it), make Sandworm as owner of the concrete. - Make some tiles appear on minimap in specific side's color, like it belonged to that side. Useful for some static structures and buildings, which are part of tileset graphics. (not confirmed if it affects AI behavior) - Make "narrow infantry passage", like a very narrow tunnel where only 1 infantry can walk through. Or make that infantry can stand only on specific positions on specific tile. The big disadvantage is that this works only for one side, who is defined as owner of the infantry attribute. - Make "heavy vehicle only" passage, exploiting the "Occupied by infantry" behavior - Place thin spice which can be harvested only once, or thick spice which can be harvested 3 times total - Make spice you can place buildings on, or after harvesting it (if you combine "Buildings can be placed" and "Spice amount" attributes) I'm currently working on improved version of "Tile Attributes editor" and integrating it into "Map and Mission editor", so it will no longer be a separate program. Here is a preview incomplete version I'm working on. For example editor attributes are not working yet. After it's fully finished I will release it as Map and Mission editor v1.4. You can use it and play around with the extra attributes, and possibly discover some new things! Download: https://www90.zippyshare.com/v/IruQNN0N/file.html
    1 point
×
×
  • Create New...