RelicNews Forums

Go Back   RelicNews Forums > RDN - Relic Game Mods > Homeworld 2 - Tanis Shipyards
User Name
Password
Register FAQ Members List Arcade Mark Forums Read



Reply
 
Thread Tools
Old 5th Nov 06, 6:34 PM Forum Rules   # 1
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

New Tool: MissionDude - a HW2 level editor (currently v1.6.2)

DESCRIPTION
This is a map editor for Homeworld 2. It supports drag-and-drop editing of files, loading and saving works in progress, as well as exporting and importing to and from HW2's ".level" file format. There are a variety of built-in functions to create maps in different shapes and sizes. All level files use a common API that makes maps much easier to modify later.

DOWNLOAD
MediaFire
Homepage

INSTALLATION
  • Log onto Windows using an administrator account.
  • Copy the contents of this archive to a folder somewhere on your harddrive. Remember where this folder is located, and create a shortcut to "MissionDude.hta" on your desktop or in your "Start" menu.
  • Associate "missiondude.ico" with the shortcut. You do this by right-clicking on the shortcut, selecting "Properties", and locating "missiondude.ico" using the "Change icon..." dialog.
  • If you are running a 32-bit version of Windows: Copy "cjDialogs.dll" to your "Windows\system32\" folder and register the file using "regsvr32.exe". For example, after copying "cjDialogs.dll" to the correct directory, type the following command-line into the "Start > Run" prompt:
    "regsvr32 cjDialogs.dll"
  • If you are running a 64-bit version of Windows: Copy "cjDialogs.dll" to your "Windows\SysWOW64\" folder and register the file using "regsvr32.exe". For example, after copying "cjDialogs.dll" to the correct directory, type the following command-line into the "Start > Run" prompt:
    "regsvr32 C:\Windows\SysWOW64\cjDialogs.dll"
  • Install a recent version of Internet Explorer. Version 7 is recommended. The program has not been tested with versions earlier than version 6 or with the version 8 beta.
  • Make sure that version 5.6 or later of the Windows Scripting Host (abbrv. "WSH") is installed. The latest version is version 5.7. It offers several benefits, including increased performance, so there's no real reason not to update. Version 5.7 can be downloaded here. Note that version 5.6 comes pre-installed on Windows XP, and version 5.7 comes pre-installed on Windows Vista, so you may not have to update anything.
  • Install version 3.03 of the Adobe SVG browser plugin (abbrv. "ASV"). It can be downloaded here. The pre-release of version 6 is not recommended, as undesired graphical glitches and poorer performance result as a consequence of using it.
  • You might get an error, "There is no disk in the drive. Please insert a disk into drive (...)." The error will go away permanently when you have successfully loaded one of the sample levels at least once. You will have to do this once for each of the Load, Save, Export, etc. buttons. I will fix this in a later release.

RUNNING THE PROGRAM
The file with the ".hta" extension is the executable. Simply double-click on it to run the program.

An icon file ("missiondude.ico") is included along with this archive so that you can change the icon for the application's shortcut.

SCREENSHOTS


PRIOR READING
If you've never created a map before, I recommend reading Malignus's mapping tutorial before proceeding any further. It provides a general overview of how to create a map, as well specific information regarding the relevant SCAR functions.

HOW THE MAPS WORK
This editor uses a principle of populating a map with objects stored in containers--called 'Distributions'--that is carried over from the original Homeworld and Homeworld: Cataclysm. Distributions are an efficient means of storing data and making changes to large numbers of objects, simply and easily.

Distributions exist in the form of tables (or arrays) of information. All map objects are stored in these tables. These tables contain all the information (in the form of parameters) necessary to recreate the map objects. These tables can also contain objects that reference other tables, thereby making it possible to nest objects within each other. Distribution tables are declared at the head of the 'DetermChunk' portion of a level file, and are referenced later by the map-populating functions.

The map-populating functions (such as the 'shapeAdd' function) count the number and types of objects within a distribution and place the objects on the map according to an algorithm. Any coordinates specified within the distribution are tabulated in addition to whatever results are determined by the algorithm.

THINGS TO REMEMBER
  • If you have the Adobe SVG browser-plugin installed, you can zoom in on the map by pressing the CTRL key and clicking on the map with the mouse. Use CTRL + SHIFT to zoom out. Holding the ALT key while dragging the mouse will move the map. Finally, right-clicking on the map will bring up a list of additional options. Other browser plugins may work differently.
  • You can import any (uncompiled) HW2 level, but the application is optimized for importing levels generated using version 1.4 or later of MissionDude.
  • Each map MUST have one distribution named 'Main'. This is the top-level distribution. All objects stored in this distribution are added to the map as entered. Each distribution uses a local coordinate system, so if distributions are nested, then the coordinates from one distribution are added to the coordinates of the other distribution.
  • Object labels are followed by one or more numbers contained within square brackets. The first number always refers to the number of objects being added to the map. Squadrons have two additional numbers: the owner player index, and a boolean flag telling whether the squadron is a normal squadron or a "reactive" squadron (0 is normal, 1 is reactive).
  • Make sure to save all objects after editing their properties! (You will be warned if this is not the case.)
  • Use the "Capture" button to clone the selected object at the mouse's current coordinates.
  • Maps created using this editor probably won't work over multiplayer (from experience they usually cause de-syncs). The solution for this is to manually configure the starting points using a text editor.
  • Objects stored in distributions that later get referenced by the special shape functions should generally all be positioned at the origin of the distribution's local coordinate system. The special functions will later modify the objects' positions dynamically, so there's no need to adjust them. You can experiment by disregarding this tip, however.
  • Compiled ".level" files by default are generated with the ".levelc" extension. You'll have to rename them back to ".level" in order for them to work in HW2. Note also that compiled levels cannot be later imported back into MissionDude.
  • Squadron and point names do not increment properly if the distributions they belong to are referenced more than once within the same map. Make sure to reference a distribution that contains any "named" objects (e.g., squadrons, points and spheres) only once if you intend to later add them to sobgroups or paths, or intend to check other objects' positions using volumes in a gamerule.
  • Objects in the "Main" distribution should generally not have an "Amount" value greater than one (unless you want the objects to overlap).
  • To decrease the size of exported level files, use Lua's "dofilepath" function to read in a single, external copy of "MapFunctions.lua", instead of storing separate copies within each level file.
  • All objects need to have unique labels! Be careful to check whether two objects use the same label. Take special note that objects with labels ending with an underscore followed by some digits may be considered the same as labels without them. The program uses underscores and digits internally to increment their values, and naming them in this fashion may interfere with this.
  • You can change the visual style of the application to its default state, or to a "blue" state, in the "Options" dialog.
  • Reactive Squadrons are used only for singleplayer campaigns. They require a "playerXreinforce.lua" file associated with the mission scripts in order to work. They must always be added to a sobgroup, and may never be added to more than one sobgroup.
  • The window zoom feature (CTRL+= and CTRL+-) of IE7 is a bit buggy. It doesn't always fire the "window.onresize" event. As a result, you may witness odd results when zooming the window. You can press the F5 key to try and fix this. Remember to save your work first!
  • Players are indexed according to the order in which they appear in the "Players" dialog, beginning with zero at the top. Similarly, start points are indexed according to the order in which they get added to the map. For multiplayer maps, players should have matching start points sharing the same index. For singleplayer maps, this is typically not necessary, though a single point named "PlayerStartPoint" may be required for the first player. The label for each player (e.g., "Player #1", "Player #2", etc.) is an independant means of tracking the player, but is typically ignored by the game.
  • The "Scale on Zoom" option can be set to configure whether map objects get scaled when zooming. Disabling it speeds up the redraw speed when zooming, but slows it down when dragging.
  • You can place a background image over the map. Simply place three images, named "image1.png", "image2.png" and "image3.png", representing the three map views in the "MissionDude/maps" folder. You can change the position and displayed size of the images in the "Options" dialog.
__________________
Download my HW2 mods, maps & tools. link

Last edited by Mikail : 23rd Jul 10 at 7:56 PM. Reason: Updated link to homepage.
Mikail is offline  
Old 7th Nov 06, 1:07 PM Forum Rules   # 2
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

I updated the program to version 1.01.
I fixed a bug where the player table wasn't being indexed properly.
Mikail is offline  
Old 7th Nov 06, 3:52 PM Forum Rules   # 3
Tefeari
Livin La Vida Florida
 
Tefeari's Avatar
 
Join Date: Oct 2003

Screenshots?
Tefeari is offline Send a message via AIM to Tefeari Send a message via MSN to Tefeari Send a message via Yahoo to Tefeari  
Old 7th Nov 06, 5:54 PM Forum Rules   # 4
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Here's one:

Mikail is offline  
Old 10th Nov 06, 10:03 AM Forum Rules   # 5
Tefeari
Livin La Vida Florida
 
Tefeari's Avatar
 
Join Date: Oct 2003

Whenever I try to run this I get a ton of errors like this:



When I press yes or no it will usually come up with another one with a different number etc and won't stop coming up with new/different/same ones.
Tefeari is offline Send a message via AIM to Tefeari Send a message via MSN to Tefeari Send a message via Yahoo to Tefeari  
Old 10th Nov 06, 11:07 AM Forum Rules   # 6
Zatch
Devil's Advocate
 
Zatch's Avatar
 
Join Date: Feb 2004
Location: CA, USA

A very small and simple suggestion: change the button text color to white or (and this is a bit more reasonable) some shade of yellow. That way tabs (which have a white text) are easy to tell apart from buttons, which should also be easy to read. Black on Dark Blue is painful.

Edit: PS I just tried the program and it works fine once the SVGViewer is installed (I had scripting errors as well, until I installed the plugin.)

Here's the Windows 98 - XP SVG Viewer installer. (2.27MB)
And the page where that download is available: linky. Just scroll down until you see the download table.
__________________
~
Zatch is offline Send a message via MSN to Zatch  
Old 10th Nov 06, 3:06 PM Forum Rules   # 7
Deionarra
Your Friendly Dictator
 
Deionarra's Avatar
 
Join Date: Aug 2005
Location: London

I never have tried making any maps so I'll definatly have to give this a go.

At least if I can cope with all that blue anyway.
__________________
Cake can change the nature of a man!
Deionarra is offline Send a message via AIM to Deionarra Send a message via MSN to Deionarra  
Old 10th Nov 06, 5:20 PM Forum Rules   # 8
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

@Tefeari
Make sure install the SVG browser plugin. I've only tested it with the Adobe plugin, though it should work with any plugin.

@Zatch
I'll make sure to change the color of the tabs for the next release.

I hope everyone else is enjoying this program!

[edit]

Update to v1.10

Changes in 1.10
- You can now save and restore viewing settings.
- Default map size increased.
- Changed color of text for deselected tabs.
- You can now reorder points and squadrons within existing
paths and sobgroups, respectively.
- Changed the name of the main executable file.

Last edited by Mikail : 10th Nov 06 at 7:50 PM.
Mikail is offline  
Old 7th Apr 08, 11:35 PM Forum Rules   # 9
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.20

CHANGES IN 1.2
• Fixed bug where adding an object without saving its
properties caused maps not to save.
• Fixed bug where saving or resetting an object's properties
caused a new and anonymous copy of the object to be created.
• Updated to latest version of "MapFunctions.lua".
• The names of those objects which can take a name are now
incremented automatically if more than one are added at a
time. This is always the case with start points.
• Improved drag-and-drop support. It is now enabled by default.
• Added a "Delete file" dialogue.
• Added "Help" dialogue.
Mikail is offline  
Old 8th Apr 08, 12:56 AM   # 10
xxobot
Member
 
xxobot's Avatar
 
Join Date: Jan 2008

*worships*
__________________



Owns (from relic):Company of heroes, dawn of war(s), dawn of war II(s), Impossible creatures


Besides my rabid hate for sisters of battle in soulstorm (worst idea ever, liked DE though) I have nothing but praise for relic for their gameplay innovations

---------------------------------------

And finally I lost the game (I warned you)
xxobot is offline  
Old 8th Apr 08, 3:12 PM Forum Rules   # 11
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.21

CHANGES IN 1.21
• Labels for properties were sometimes breaking onto a new line.
• Improved documentation and help.
• Added new keyboard shortcuts.

Last edited by Mikail : 9th Apr 08 at 1:26 AM. Reason: singular to plural
Mikail is offline  
Old 8th Apr 08, 6:12 PM Forum Rules   # 12
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.22

Sorry about the bugs (and so many releases in the same day). I can't believe I missed such an obvious thing.

CHANGES IN 1.22
• You can now type in a filename to load.
• Fixed broken map loading. (ARGGH! I missed this!)
• Slight change to label incrementation when adding new objects.
• You're now informed about which file gets deleted or
overwritten (even though it's pretty self-explanatory).
• Fixed point-capturing when the mouse clicks on another object.

Last edited by Mikail : 9th Apr 08 at 1:26 AM. Reason: clarify which item I missed
Mikail is offline  
Old 8th Apr 08, 7:04 PM   # 13
Wintermute
Member
 
Wintermute's Avatar
 
Join Date: Mar 2007
Location: The sprawl

Wow. How did I just find this today?

Awesome tool, thanks.
__________________
A Brave New Homeworld. (◔ ◡ ◔ )

DA
Wintermute is offline  
Old 9th Apr 08, 1:22 AM Forum Rules   # 14
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.23

More bugs goddammit. This time in the LUA scripts, as well (causing exported level files not to load at all). This time I went through all the steps of creating, saving and exporting a file to make sure they work in Homeworld instead of counting on my programming skill alone.

CHANGES IN 1.23
• "New and anonymous copies of objects" problem fixed for good,
this time. Whew!
• User is now warned to fill all of an object's parameters
before saving the object.
• The program now fills in default properties when creating new
objects.
• Fixed a bug in "MapFunctions.lua". Included the new version.
• The sample map included with the program can now actually be
exported to a working level file. (Doh!)

This version seems pretty stable. In the next version I'm going to focus on adding a few more "safety" features to keep users from making mistakes. The way distributions are currently handled is confusing--i.e., leaving it up to the user to list the distribution tables in the proper order is too much to expect.

I also want to provide better examples of using the various special functions. The current (included) sample map is very basic.

There's a few other features I want to add, such as giving some visual representation of the size of the objects being added, as well as some speed optimizations I noticed I could make (not that it's really necessary).

Last edited by Mikail : 9th Apr 08 at 1:29 AM. Reason: more comments
Mikail is offline  
Old 15th Apr 08, 4:24 AM Forum Rules   # 15
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.30

This is a major update. The program was almost rewritten from scratch. Lots of bug fixes. The program actually works now (I said that before *sigh*.) The biggest bug was that I was not properly handling special characters and spaces in object labels. This has been fixed.

Mikail is offline  
Old 17th Apr 08, 1:39 AM Forum Rules   # 16
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.31

Bug fixes, and a new feature: you can now see the radius of any clouds you add. Here's what it looks like:



I plan something similar for the custom functions, but it will take a lot more work.

CHANGES IN 1.31
• Fixed the bug where renaming an object caused it to not be
selectable.
• Fixed the bug where dragging an object in one map view caused
the coordinates to be messed up for the other views.
• Text contained within map objects' text nodes no longer
becomes selected (e.g., blue, like when selecting text to
copy) when dragging objects.
• Saved maps now take up a little less disk space.
• The program now asks you whether you want to save or export
when there aren't enough players or starting positions (in
case you prefer to manually configure them in a text editor).
• Fixed the bug where some objects' translation coordinates
weren't being updated if other objects in the distribution
had been removed.
• Fixed the bug where removing the first object in the
distribution caused the (next) current object not to be set
properly.
• The radius of an object such as a nebula or cloud is now
represented using a partially-opaque circle.
• Added "Defaults" button to object properties list.
• Noted another hotkey.
• Replaced the "Map Size" button with "Map Width" and "Map
Height" input fields, so you can set the map dimensions
explicitely.
• Position capturing is now once again only enabled when
"Capture" mode is on. However, you may use either the mouse
or the "Add" button.
• You can now once again drag objects while "Capture" mode is
on.

[edit]
Slight update in the last few minutes. Please download again if you have already. Sorry.

Last edited by Mikail : 17th Apr 08 at 1:09 AM.
Mikail is offline  
Old 18th Apr 08, 10:59 AM Forum Rules   # 17
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.32

A minor change.

CHANGES IN 1.32
• Improved documentation.
• Fixed mouse coordinates when the entire application is zoomed
using CTRL and the mousewheel.
• Added a doctype. The application no longer runs in quirksmode
and is, as a result, more standards-compliant.
• Increased the dimensions of all the selection list panes.
• Put all the help articles into their own individual pages and
made it so that they are loaded using IFRAMEs.
• User is now permitted to choose to continue saving despite
errors.
• Program now checks for an extension before saving or
exporting a file.
• Created a new, Vista-compatible icon.

[edit] An important bug fix occured in the last few minutes. Download again, please.
[edit] Some more changes, this time merely cosmetic.

Last edited by Mikail : 18th Apr 08 at 2:36 PM.
Mikail is offline  
Old 18th Apr 08, 12:43 PM   # 18
ZuiljiN
Guest
 

Seems to be a nice map editor. Do you plan to add an import function (.level) in the future? It could be great to be able to edit maps already made in notepad or with maya
 
Old 18th Apr 08, 2:36 PM Forum Rules   # 19
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

That's an interesting idea. The easiest way to do it would be to create a Lua script that reads the level file and outputs JavaScript (I don't want to write another Lua parser...). I'm not sure how to execute Lua scripts, though. I have SciTE set up on my computer. I'll check and see if there's a "compile and run" feature for Lua scripts.

If I do this, it may require that users have Lua4.exe or something installed and set up properly. I'm not sure what the license is for it. If it's an open license, maybe I can distribute it along with my own program.

Last edited by Mikail : 18th Apr 08 at 2:48 PM.
Mikail is offline  
Old 18th Apr 08, 7:49 PM Forum Rules   # 20
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

I checked the Lua license, and it says it's free to be redistributed. Also, I tested running a script using the Lua interpreter. I successfully was able to read and write to a new file. So, an level import feature should be in the works for the near future.
Mikail is offline  
Old 18th Apr 08, 8:06 PM   # 21
ZuiljiN
Guest
 

i dont see why youll need to redistribute lua4 with it. Even if its lua code inside the .level its still simple text. All you have to do is on text xxx then create object xxx on coord x,y,z like you do for the export but in the opposite way. But im a newb at javascript and i dont know how your program work so i might be wrong
 
Old 18th Apr 08, 8:41 PM Forum Rules   # 22
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Trust me, it's not that simple. I've written a Lua parser before, and it has over a thousand lines of code, over 200 of which are regular expressions.
Mikail is offline  
Old 18th Apr 08, 8:58 PM   # 23
ZuiljiN
Guest
 

hehehe
i only have some experience with VB and from what i can see parsing was way more easier to do but if its easier to do your parsing in lua4 than rewrote it in javascript well go with it

Last edited by ZuiljiN : 18th Apr 08 at 9:16 PM.
 
Old 19th Apr 08, 12:57 PM Forum Rules   # 24
Zatch
Devil's Advocate
 
Zatch's Avatar
 
Join Date: Feb 2004
Location: CA, USA

Regular expressions allow for parsing of anything syntactically correct, not just direct text matching. That's why Mikail's using LUA (regular expressions can be done even in VB, but not efficiently.)
Zatch is offline Send a message via MSN to Zatch  
Old 20th Apr 08, 9:45 PM Forum Rules   # 25
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.33

No import feature in this version. The main new features are the ability to add comments to maps, and a new default style.

CHANGES IN 1.33
• The program now only checks for the application's (not the
SVG map's!!!) zoom level when maps are loaded or the
application is refreshed (e.g., by using the F5 key). Before,
there was a timer that would periodically update this value
(this, because the "onresize" event wouldn't consistently
fire in IE7), but I believe it was causing a memory leak.
• Removed the 8 and 4-bit application icons, as they were
creating artifacts when displayed in the Windows taskbar. Not
sure what causes this problem (it may be an HTA bug, I don't
know).
• The map legend's position is now updated when you toggle it
on or off.
• The program now selects the correct file to export or save to
if it exists. If not, it suggests a value for the file name.
• You now have to save a file first before you may export it.
• Added a new stylesheet for the application and enabled it by
default. The stylesheet can now be selected from the
"Options" menu.
• Many buttons are now disabled depending on the number of
objects available.
• Starting a new map no longer resets the application.
• You can now add comments to your map.
• Renamed the "Map" button to "Other".
• The colored axes now scale according to the width and height
of the map window.
• Slight speed improvement when moving the mouse over the map.
• The status text is no longer reset when moving the mouse away
from a map object.

[edit] Slight unimportant change in the last few minuts.

Last edited by Mikail : 20th Apr 08 at 11:58 PM.
Mikail is offline  
Old 21st Apr 08, 4:41 AM   # 26
kaos
Guest
 

could we by chance have a tutoral on how to make a basic level? and maybe how to link to objectives for those of us to stupid or lazy to work it out though your selfs??
prefabl....perfably....perferbably...................
with using long words
 
Old 21st Apr 08, 7:14 PM Forum Rules   # 27
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

You can search the forum for Malignus's mapping tutorial. You can also find it on the Karos Graveyard wiki.

As for mission objectives, these are defined in the gametype scripts--not the level files. Therefore, they exist outside the scope of this tool.
Mikail is offline  
Old 22nd Apr 08, 1:45 AM Forum Rules   # 28
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.34

CHANGES IN 1.34
• Many SVG elements consolidated.
• Size of "Data.js" decreased.
• More speed improvements.
• Fixed bug where object's translation coordinates weren't
getting updated when dragging the object (bug may have been
introduced between versions).
• Added a "Drop-shadow" option. Requires a *very* fast CPU.
Mikail is offline  
Old 25th Apr 08, 10:01 AM Forum Rules   # 29
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.40

The biggest change in this version is the addition of a new level import feature. It works with all HW2 levels, but is optimized for levels created using MissionDude (this version and future versions of MissionDude, specifically). There are also a lot of bug fixes, as well as a new "Compile" command so you can compile your level on the fly.

Mikail is offline  
Old 26th Apr 08, 9:24 PM Forum Rules   # 30
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.41

CHANGES IN 1.41
• Some stylesheet changes.
• Switched to a stripped-down version of "MapFunctions.lua"
without comments, so that exported level file sizes are
smaller.
• Fixed a bug in the Boy, Klein and Kuen surfaces in
"MapFunctions.lua".
• Maps are now compiled with the "-s" switch so that they take
up less space. As a result, they can now also never be
decompiled.
• Sorted the source files into directories.
• Fixed bug with saving output and input folder paths.
• The program now reports any Lua script errors in the level
file being imported.
Mikail is offline  
Old 28th Apr 08, 11:43 AM Forum Rules   # 31
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.42

CHANGES IN 1.42
• The map window now retains its relative scale as you resize
the application window, and remembers these settings for
the next time you run the program. As a consequence,
the "Map Width" and "Map Height" options have been
removed.
• Fixed the bug where map axes were changing size at a different
rate than the rest of the map.
• Fixed bug the where text size option wasn't being loaded when the
application started.
• The program now has a separate "Zoom" option to control the
inital scale of the map.
• Slight change to the "Default" stylesheet.
Mikail is offline  
Old 2nd May 08, 1:49 AM Forum Rules   # 32
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.44

CHANGES IN 1.43
• Fixed bug in "makeRectangle" in "MapFunctions.lua".
• "MapFunctions.lua" has been split into several files. The
program now only adds custom level functions to the exported
".level" file when and if they are needed, thereby saving
disk space and reducing download times.
• The map is no longer reset each time the view is switched,
speeding up the editing process.
• Fixed several bugs in "importlevel.lua". (Thanks JMScomp!)
• Switched back to absolute instead of fixed positioning for
child windows. It now works in IE6 again. (Thanks JMScomp!)
• Map object labels are now generated/displayed in a different
manner, resulting in fewer SVG elements being added to the
map and increased speed, hopefully. Especially beneficial for
heavily populated maps.
• Replaced all anonymous functions, thereby eliminating memory
leaks and otherwise improving performance.
• Added a progress bar and additional confirmations for several
I/O operations.

Barring any unforseen events, in the next version (v1.50), you will be able to actually see the shapes generated by the special functions.

[edit]
CHANGES IN 1.44
• Fixed bug in positioning of map objects when dragging.
• Speed improvement when dragging objects.

Sorry!

Last edited by Mikail : 2nd May 08 at 1:24 PM.
Mikail is offline  
Old 11th May 08, 1:47 AM Forum Rules   # 33
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.50

Lots of performance enhancements. Some bug fixes. Still no display of custom functions (maybe in the next version ).

CHANGES IN 1.50
• Fixed bug where buttons were being activated belatedly when
adding objects.
• Enlarged the size of the "Point" and "StartPoint" SVG
elements.
• Whatever object gets grabbed now automatically is popped to
the top of the stack.
• The select highlight box is now located in the top layer,
above all the other map objects.
• The program now differentiates between regular squadrons and
megaliths.
• Fixed bug where object labels were incrementing by twos
instead of by ones.
• Significant speed-up of the SVG map. One result is that the
coordinates of the mouse are now displayed in the bottom-
right corner of the map itself, instead of in the
application's status field.
• Significant speed-up of all file I/O operations due to
optimizations.
• The child windows generated for such things as the "Load" and
"Options" dialogs now use real, modeless windows instead of
fake, floating DIVs.
• Fixed the bug where the two different versions of the "getn"
and "tinsert" functions were conflicting with each other when
importing levels that were made using MissionDude.
• Fixed the bug where you couldn't import or compile levels
with spaces in their filenames.
• Map loading and initialization now also shows the progress
bar.
• Probably some miscellaneous other bug fixes I neglected to
remember.
• The help files are once again combined into a single HTML
file instead of being spread across multiple IFRAMEs.
• Drop shadows now work! They are now also enabled by default.
• Added a "Scale on Zoom" option to configure whether map
objects get scaled when zooming. Disabling it speeds up the
redraw speed when zooming, but slows it down when dragging.
• The map select box now scales to the width of the text
element.

Here are the things on my to-do list:

TO-DO LIST
• Show shapes of custom functions.
• Squadron and point names do not increment properly if the distribution they belong to is referenced more than once by the map.
• Show visual representation of paths. (Can only do this once the above two are done.)
• Add a 3D view. (Maybe...!)
• Maybe add a "jitter" button to randomize positions a bit, or a special dialog to generate random numbers to copy/paste into the fields.
• Accesskeys no longer working properly since some buttons were disabled.
• Slight issue with the stylesheets leaving artifacts when switching styles. Doesn't occur when starting the app--only when switching.
• Map object labels disappear if you zoom in all the way in to the map.
• Double-check whether conflicts exists between my own Lua identifiers, and whatever the user chooses to name an object.
• Update Asteroids with the latest parameter definitions. Experiment with other objects to determine the unknown parameters.
• Check for intersecting asteroids. (partially completed)
• Abandon MissionDude and take over development of Flashworld2.
• Find a way to determine the completion status of a child process, such as "LuaC".
• Split the child window pages into individual HTML files (or, find a way to clone the relevant nodes).
• Absolute paths in file-selection menus. Navigate file system in file I/O dialogs. Icons next to files/folders.
• Write a better tutorial on using MissionDude.
• Port a random number generator over to Lua so that the maps don't rely on the "random()" function. This way, one can set the seed once and be guaranteed that the "random" values will always be the same each time you load the map in HW2.
• Add a visual representation of object (e.g., squadron) rotation angles.

There's a big surprise hidden in there somewhere . [Edit: Errr..., two surprises I guess.]

Last edited by Mikail : 11th May 08 at 4:06 AM.
Mikail is offline  
Old 11th May 08, 3:16 AM   # 34
L@pt0p Guy
Guest
 

in your 3d view could you possibly add a representation of the hod files so that when making maps you get a better feel of the map. i remember the old hw1 map tool having this . ive never seen a hw2 map tool that does this.

ive got another map tool that has a 3d view but the objects are all represented with blobs and squares depending on if there a megalith or a ship.


but from the nature of your tool being a html app im not sure it would be possible.


last but not least. your tool is great i had a play with it
 
Old 11th May 08, 3:55 AM Forum Rules   # 35
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

I don't think I could do the HOD thing in HTML. Flashworld2 is written in Flash, and has an animation of the Hiigaran mothership hyperspacing in. I'm not sure if this animation is rendered in real-time using data from the HOD files. If it is, then I guess it would be possible in Flash.

[Edit: added three more items to the to-do list.]

Last edited by Mikail : 11th May 08 at 4:06 AM.
Mikail is offline  
Old 11th May 08, 11:43 PM Forum Rules   # 36
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.51

Bugfixes, mostly, as well as some changes behind the scenes.

CHANGES IN 1.51
• Switched to a table format for "settings.ini". Old settings
are no longer compatible with the new method.
• More code optimizations, this time for space/managability
instead of speed.
• Fixed the "returncopy" function so that it actually does what
it's supposed to.
• Fixed bug where level settings weren't being imported.
• Fixed bug where the "Author" and "Comments" settings were in
some cases not being updated properly when importing levels.
• The map is now only reset if the calculated sizes are
different than they were before. (Was causing some slow-down
on my setup.)
• Fixed bug where objects weren't being removed from sobgroups
or paths when their types changed to something unsupported.
• Fixed bug where sobgroups and paths weren't being updated
when objects were deleted.
Mikail is offline  
Old 12th May 08, 2:59 PM   # 37
maxdamage
Member
 
maxdamage's Avatar
 
Join Date: Dec 2003
Location: Gauteng,South Africa

Is it possible to import a top-view screenshot of a map from another game to the editor's background and then recreate it as accurate as possible according to the shape,positions of the asteroids,etc.. and then manually edit the heights to look same as in the original map?
__________________
maxdamage is offline Send a message via ICQ to maxdamage Send a message via MSN to maxdamage  
Old 12th May 08, 3:55 PM Forum Rules   # 38
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

I have no idea. That isn't even close to anything that is done by MissionDude. Object detection in images is frought with difficulties. That's why a lot of sites you have to register to have those "read the letters and numbers in the image" tests.
Mikail is offline  
Old 12th May 08, 4:04 PM   # 39
maxdamage
Member
 
maxdamage's Avatar
 
Join Date: Dec 2003
Location: Gauteng,South Africa

What I meant was use the image as a guide to manually place the stuff yourself into the mapeditor like in mlikshape 3d's background image....

Last edited by maxdamage : 12th May 08 at 4:46 PM.
maxdamage is offline Send a message via ICQ to maxdamage Send a message via MSN to maxdamage  
Old 12th May 08, 4:39 PM Forum Rules   # 40
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Oh, that should be relatively easy to do. I'll make sure and add that feature for the next version. Thanks for the suggestion!
Mikail is offline  
Old 12th May 08, 5:01 PM   # 41
maxdamage
Member
 
maxdamage's Avatar
 
Join Date: Dec 2003
Location: Gauteng,South Africa

No problem!Cannot wait to try this prog out as I have been using editpad to make maps but I have been thinking of using scite to make maps in as it is possible to do so.....

Last edited by maxdamage : 12th May 08 at 5:18 PM.
maxdamage is offline Send a message via ICQ to maxdamage Send a message via MSN to maxdamage  
Old 13th May 08, 12:27 AM Forum Rules   # 42
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.52

CHANGES IN 1.52
• Added "Snap to Grid" and "Grid Size" options.
• The map select and highlight boxes are now black or white
depending on the luminance of the underlying color.
• You can now place a background image over the map. Simply
place three images, named "image1.png", "image2.png"
and "image3.png", in the "MissionDude/maps" folder. You
can set the position and displayed size of the images in the
"Options" dialogue.
Mikail is offline  
Old 15th May 08, 9:28 PM Forum Rules   # 43
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.53

CHANGES IN 1.53
• Fixed bug when changing application settings to their
default values.
• Fixed bug in "returncopy" function.
• Removed the "false color" filter of the highlight and select
box SVG elements added in the last version. It was slowing
things down too much, and was ugly to boot. I'll leave it to
users to adjust the color settings of the background image to
fit the application, instead of vise versa.
• Turned off anti-aliasing of background images.
• Fixed bug where status box and legend became hidden when
adjusting the "mapzoom" option.
• Refactored the way map object selection is done to make it
more similar to the way it is done for other objects.
• Lots of little changes.
• Speed of map rendering improved. The map is now rendered only
once per map zoom.
• Most DOM nodes and events are now nullified upon unload. This
mainly resolves memory and performance issues I was
encountering when repeatedly refreshing the application, but
may also decrease load (or reload) times at other times, as
well.
• The occasional error when displaying (or trying to display)
the progress bar or a child window should now be resolved.
• Converted the text element for the "Function" SVG map object
to a path element.
• You can now zoom in the map all the way to 16x (at least,
near the center of the map).
• Adjusted the parameters of the map and mouse coordinate
checking routines in case I need to scale the contents of the
SVG file at some point in the future.
Mikail is offline  
Old 16th May 08, 4:26 PM Forum Rules   # 44
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Just a heads-up: the current version doesn't work at all on Vista. I know why, and am currently working on a workaround that doesn't sacrifice the performance gains in the recent versions.
Mikail is offline  
Old 16th May 08, 4:29 PM   # 45
maxdamage
Member
 
maxdamage's Avatar
 
Join Date: Dec 2003
Location: Gauteng,South Africa

Busy atm working on the map based on the map Centrifuge from the demo of Sins of a Solar Empire as I would like to try to recreate but it is too big so I am making a smaller version of it and this program is very helpfull in making it....
maxdamage is offline Send a message via ICQ to maxdamage Send a message via MSN to maxdamage  
Old 16th May 08, 10:55 PM Forum Rules   # 46
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

I'd like to see your map when its done, OK?
Mikail is offline  
Old 23rd May 08, 2:29 PM   # 47
maxdamage
Member
 
maxdamage's Avatar
 
Join Date: Dec 2003
Location: Gauteng,South Africa

atm all I have is a rough map which has where the asteroids,dustcoulds,etc are and I used pebbles for the hyperspace lanes but I have to now start moving the objects to where they are in the y-axis just like in the demo of SoaSE.Would it be possible to have all the start points automatically face to the center of the map whereever they are on the map when added in missiondude?
maxdamage is offline Send a message via ICQ to maxdamage Send a message via MSN to maxdamage  
Old 25th May 08, 5:49 AM Forum Rules   # 48
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Update to v1.55

The important changes in this release are that the program now uses a ".dll" file for file I/O operations. This ".dll" file needs to be registered using "regsvr.exe" before you can use MissionDude. Note that the installation instructions have changed in the first post.

CHANGES IN 1.55
• Fixed the bug where map objects were growing in size when
trying to drag them in ASV6.
• Fixed the bug where disabled filters were blanking the screen
in ASV6.
• The program now uses a ".dll" file for all file I/O
operations. The file needs to be copied to the
"Windows\system32\" directory and registered using
"regsvr32.exe" before MissionDude can be used.
• The default import/export folder paths are now saved
automatically after importing/loading or exporting/saving
a file. There is no longer any visible means of changing them
manually.
• Worked around the issue with the last version of MissionDude
where the program was crashing on Windows Vista. One side-
effect, unfortunately, is that performance is now much slower
on Vista than it is on Windows XP. Hopefully, Microsoft will
release a real fix for this in the future.
• Saved maps have been condensed a bit further.
• More code has been condensed.
• Removed the "Delete" button, as file deletion can now be
achieved easily using the load/save dialogs.
• The "More..." button is now only enabled when an object has
properties that make use of it.
• The "viewangle" parameter is now indexed starting with zero
instead of one.
• The user is now prompted to save objects when setting values
to their defaults.
• Split the "Other" tab into two tabs: "Level" and "Info".
Added the "Players" dialog to the "Level" tab.
• You can now manually define player characteristics (i.e., the
"player" table in the exported level file) using the new
"Players" dialog. You can specify the race, name and
starting RUs for each player, as well as whether a starting
point is required.
• Removed the "maxPlayers" and "levelDesc" options from the
"Level Settings" dialog. The "levelDesc" option was moved to
the "Info" tab. "maxPlayers" is now calculated automatically
based on the number of players.
• Moved the SVG and HTML files to a new "XML" subdirectory.
• Renamed the "style" subdirectory to "css".
• Other fixes.

Quote:
Would it be possible to have all the start points automatically face to the center of the map whereever they are on the map when added in missiondude?

I suppose so. I would have to consider how best to add the command to the program's interface.

Last edited by Mikail : 25th May 08 at 6:23 AM.
Mikail is offline  
Old 25th May 08, 1:05 PM Forum Rules   # 49
Mikail
Lost in the Web...
 
Mikail's Avatar
 
Join Date: Jun 2003
Location: %HW2_ROOT%

Quote:
Quote:
Would it be possible to have all the start points automatically face to the center of the map whereever they are on the map when added in missiondude?

I suppose so. I would have to consider how best to add the command to the program's interface.


I'm a bit hesitant about adding the feature, as the interface is already getting a bit cluttered. (I think that usability took a big hit when the fourth tab was added to the left pane in the last version.) I'm not sure where to cram a button for the new command. In the interim, I suggest you do the following:
  1. Add these functions to your ".level" file (if some of them already exist in your level file, remove the previous copies):
    Code:
    -------------------------------------------------------------------------------- -- Some vector functions. -- -- Returns the normalized form of a vector. function vnormalize(tVec) return vdivide(tVec, vlength(tVec)) end -- Returns the length of a vector. function vlength(tVec) return sqrt(vsum(vpower(tVec, 2))) end -- Returns the distance between two vectors. function vdistance(tVec1, tVec2) return vlength(vsubtractV(tVec2, tVec1)) end -- Returns the dot product of two vectors. function vdot(tVec1, tVec2) return vsum(vmultiplyV(tVec1, tVec2)) end -- Returns the angle between two vectors. function vangle(tVec1, tVec2) return acos(vdot(vnormalize(tVec1), vnormalize(tVec2))) end -- Returns the cross product of two vectors as a new vector. function vcross(tVec1, tVec2) return { tVec1[2] * tVec2[3] - tVec1[3] * tVec2[2], tVec1[3] * tVec2[1] - tVec1[1] * tVec2[3], tVec1[1] * tVec2[2] - tVec1[2] * tVec2[1], } end -- Adds an amount to each vector component, then returns the resulting vector. function vadd(tVec, fVal) local tmpVec = {} for i, tTab in tVec do tmpVec[i] = tVec[i] + fVal end return tmpVec end -- Adds the components of the second vector to the components of the first vector, then returns the resulting vector. function vaddV(tVec1, tVec2) local tmpVec = {} for i, tTab in tVec2 do tmpVec[i] = tVec1[i] + tTab end return tmpVec end -- Subtracts an amount from each vector component, then returns the resulting vector. function vsubtract(tVec, fVal) local tmpVec = {} for i, tTab in tVec do tmpVec[i] = tVec[i] - fVal end return tmpVec end -- Subtracts the components of the second vector from the components of the first vector, then returns the resulting vector. function vsubtractV(tVec1, tVec2) local tmpVec = {} for i, tTab in tVec2 do tmpVec[i] = tVec1[i] + tTab end return tmpVec end -- Multiplies each vector component by some amount, then returns the resulting vector. function vmultiply(tVec, fVal) local tmpVec = {} for i, tTab in tVec do tmpVec[i] = tTab * fVal end return tmpVec end -- Multiplies the components of the first vector by the components of the second vector, then returns the resulting vector. function vmultiplyV(tVec1, tVec2) local tmpVec = {} for i, tTab in tVec2 do tmpVec[i] = tVec1[i] * tTab end return tmpVec end -- Divides each vector component by some amount, then returns the resulting vector. function vdivide(tVec, fVal) local tmpVec = {} for i, tTab in tVec do tmpVec[i] = tTab/fVal end return tmpVec end -- Divides the components of the first vector by the components of the second vector, then returns the resulting vector. function vdivideV(tVec1, tVec2) local tmpVec = {} for i, tTab in tVec2 do tmpVec[i] = tVec1[i]/tTab end return tmpVec end -- Raises each vector component to the some power, then returns the new vector. function vpower(tVec, fVal) local tmpVec = {} for i, tTab in tVec do tmpVec[i] = tTab^fVal end return tmpVec end -- Raises the components of the first vector to the power specified by the components the second vector, then returns the new vector. function vpowerV(tVec1, tVec2) local tmpVec = {} for i, tTab in tVec2 do tmpVec[i] = tVec1[i]^tTab end return tmpVec end -- Returns the sum of all the vector's components. function vsum(tVec1) local tmpVal = 0 for i, tTab in tVec1 do tmpVal = tmpVal + tTab end return tmpVal end -- Returns a vector converted into a string. function vstr(tVec) local tmpStr = "{" for i, tTab in tVec do tmpStr = tmpStr .. tTab .. ", " end tmpStr = tmpStr .. "}\n" return tmpStr end -- Rotates a vector around the origin by the specified Euler angles, then returns the resulting vector. -- Rotates around the Z-axis first, followed by the X-axis and the Y-axis. function vrotate(tVec, tAng) tVec = { tVec[1] * cos(tAng[3]) - tVec[2] * sin(tAng[3]), tVec[1] * sin(tAng[3]) + tVec[2] * cos(tAng[3]), tVec[3], } tVec = { tVec[1], tVec[2] * cos(tAng[1]) - tVec[3] * sin(tAng[1]), tVec[2] * sin(tAng[1]) + tVec[3] * cos(tAng[1]), } tVec = { tVec[1] * cos(tAng[2]) + tVec[3] * sin(tAng[2]), tVec[2], -1 * tVec[1] * sin(tAng[2]) + tVec[3] * cos(tAng[2]), } return tVec end -- Returns an array containing the vector's Euler angles, relative to the Z-axis. -- To reproduce the original vector, rotate a point on the Z-axis by these angles. function vanglesXY(tVec2) local fSgnX, fSgnY, tPrjB1 = 1, 1, vnormalize({tVec2[1], 0, tVec2[3],}) if (tPrjB1[1] ~= 0) then fSgnX = tPrjB1[1]/abs(tPrjB1[1]) * -1 end local fAngY = acos(tPrjB1[3]) * fSgnX local tPrjB2 = vnormalize(vrotate(tVec2, {0, fAngY, 0,})) if (tPrjB2[2] ~= 0) then fSgnY = tPrjB2[2]/abs(tPrjB2[2]) end local fAngX = acos(tPrjB2[3]) * fSgnY return {fAngX * -1, fAngY * -1, 0,} end -- Rotates the first vector around the second vector by some amount, then returns the resulting vector. function vaxis_rotate(tVec1, tVec2, fAngZ) local tAng = vanglesXY(tVec2) return vrotate(vrotate(vrotate(vrotate(tVec1, {0, tAng[2], 0,}), {tAng[1], 0, 0,}), {0, 0, fAngZ,}), vmultiply(tAng, -1)) end
  2. Edit the entries for your ships from this:
    Code:
    {1,"Squadron","Squadron #1","vgr_destroyer",{9056,0,-9333},0,{0,0,0,},0,0,},

    to this:
    Code:
    {1,"Squadron","Squadron #1","vgr_destroyer",{9056,0,-9333},0,vanglesXY(vmultiply({9056,0,-9333}, -1)),0,0,},

Last edited by Mikail : 25th May 08 at 6:25 PM.
Mikail is offline  
Old 26th Nov 08, 12:16 PM   # 50
Siber
Member
 
Siber's Avatar
 
Join Date: Jan 2008

Finally I whipped my computer into running the .hta file. On startup it complains that "File does not exist". If I try to use the new map button, it says "Can't find data.js". On close it comments "file does not exist" and "Cannot find "settings.ini"". All these files that it names I can locate, in what would appear to be the right place. Does this need to be placed in certain location to work properly?
__________________
Co-founder of Homeworld:@
Open to new members
Siber is offline  
Reply



Go Back   RelicNews Forums > RDN - Relic Game Mods > Homeworld 2 - Tanis Shipyards
User Name
Password
Register FAQ Members List Arcade Mark Forums Read



Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




All times are GMT -7. The time now is 4:47 AM.

Page generated in 0.94763589 seconds (93.46% PHP - 6.54% MySQL) with 9 queries

Powered by: vBulletin Version 3.0.7
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.