Navigation Computer v1

Post about your finished mods here.
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

I have found that the new functions make the dream of a stand-alone navigation computer a possibility. I have been putting together a nav computer that can now be used in ANY topology and map it correctly without the use of a difficult to produce data table to get the information from.

The new Navigation Computer will have the full features from the System26 mod, including Flagging systems, Star Log, and the ability to migrate to any topology that you want to use it on, with no major issues like creating a database to represent the topology.

The new version stores any map data needed on it's own special station- much like the stDomina, and this vastly improves it's portability.

I am also preparing a Captain's Log stand-alone logging system for those who just desire an in-game way to make notes.

Additionally, because the navigation computer makes use of an override to the stargate station to function I am including a new version of the Event Manager (EM3) with the mod- this will have a greatly improved method to add events, with a much easier way to make a function call to access the pipeline and perform more event handlers.

EM3 will be able to be switched on or off, and won't affect the workings of the navigation computer. With the EM3 on, you will be able to track the time you first entered a system, roughly how long you spent there and when you left, if you ever came back again, and more.

Logging notes will also have timestamps, and a load of other features that I am migrating from the various 098d mods I made (some I never even released).
Last edited by Periculi on Mon Aug 18, 2008 8:56 am, edited 1 time in total.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

wow very impressive, you know I love standalone stuff. 8)
Plus it makes any network mod you create have one less problem to worry about (and if I recall correctly it was one of the bigger problems other than the systems going away bug)
Crying is not a proper retort!
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

Yes- for instance, if you looked through the Vanilla mapper code from the first release of this style mod for 098d you would find that I not only had to create a list of lists that I used as a data table to mirror the topology, but the names were often wrong because I had no way to retrieve that data from the topology.

Now I can get the name of system remotely with (sysGetName sysID) so all the name are correct no matter how many random choices there may have been, AND I can get the system UNID to produce the correct star type and general environment data. I can walk up and down the topology in code and map the entire thing without any supporting data tables (Yay!)

I can also use the new functions to create the map ROMs that players buy to get the info on a system they haven't visited yet with surprising ease! The new attributes would allow me to break the topology up into smaller divisions to use as map chunks, for instance- or I can create the data from a level based perspective.

The best part of this is that it should be able to simply migrate between adventure extensions without any changes but one (meaning you can leave the mod in the extension folder and use any adventure topology). The one change involves the starting system. When I used sysGetNodes, I got back an alphabetized list of the nodes, and had no idea which one was the starting point for the player. In order to accurately define a network map, I need the starting point.

On the other hand- if you keep the same nodeID for your starting system (whether it uses the same system UNID or not) it won't ever need to be changed. And I may be able to find a way around this- the first stargate that gets created is in the starting system, so I might be able to set it to mark the start, now that I think about it. (have to go try that)
schilcote
Militia Captain
Militia Captain
Posts: 726
Joined: Sat Feb 02, 2008 7:22 pm

Exactly hiw hard would this be to meld with my ship's computer mod (itself an extension of Bobby's)?
[schilcote] It doesn't have to be good, it just has to not be "wow is that the only thing you could think of" bad
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

You could put the trigger to open the navigation dockscreen anywhere you like.

For instance, if you wanted to place it in a custom ship interior dockscreen link you could do that. I was going to include a few options for set ups.

The entire nav computer works without too much in the way of required items or other bits- the dockscreens do all the work pretty much, and an override to the stargates which allows several things to happen- EM3 and Nav data and also:

(Unknown) gate names are being implemented, Betel.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

(Unkown Gate) seems easy now with the one global system create function. 8)
Crying is not a proper retort!
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

Except that I am doing it differently.

The only existing object that I am going to override will be the stargate itself.

Now, I believe I can use the <OnGlobalSystemCreated> event in the stargates, but it doesn't make any difference- when the gates are created they need to register themselves and some other things to make the mods work, so I don't see much of a use for the global system event in this mod.

And it's not a simple thing to get the effect- in System26 there was a data table to look up for each specific named gate which told me whether it was known or not- this changes during the course of the game, so a simple event at system creation does not make the naming changes work.

There is a lot going on to get the names to update. The gates must be aware of the known or unknown state of the system they link to. The gates must also be able to update if the state changes. This is handled from several places, none of which are happening at system creation.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

well I was thinking the system itself would store if it was known or not (easy to take advantage of it starting with nil) and when you enter the system set it to true.
Crying is not a proper retort!
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

If you mean place the script in the system, I would have to override the systems. All of them. Whereas, every system gets a stargate, and that is very simple to override.

The systems DO store the data- but the script is held in the stargate.

In fact, systems store:

A Known state variable (if nil then system is Unknown)
A Visited state variable (if nil then system has never been visited by player)
A first visit flag variable (if nil then not created yet)
A log list (if nil then no logs present)
A flag state (if nil then default to no flag for star icon)
A first entered by player timestamp (nil if not visited or if no event manager is running)
A few other things to include in the description and info panels for the system.

This way, you can still use the navigation mod in custom systems without adding in the code- as long as the system contains a regular stargate (or in the case of Huaramarca, the other gate type can be used- I haven't looked into that yet, but I may leave it out as it is an "uncharted" system anyway.)

My point is, it's easier and more portable to override just the stargate.
User avatar
Betelgeuse
Fleet Officer
Fleet Officer
Posts: 1920
Joined: Sun Mar 05, 2006 6:31 am

I don't think you can put scripts in system types am I wrong on that? I find it fine that the stargates do the script.
Crying is not a proper retort!
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

Well, you can put script in the <Events> in an <OnCreate> and in the <OnGlobalSystemCreate> but I don't think you can put them in anywhere else.

I haven't really tried anything other than in the <OnCreate>.
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

Progress has been made!

Star Network mapping- complete. Navigation computer shows linking and overviews of any topology it is placed in, discovering the gates, destinations and links through the new functions. No bulky database required. Navigation computer screens filter for known systems, systems can become known by either visiting them or purchasing/finding MapROMs.

Star systems on the list can be flagged in 8 different colors.

Star list now shows the star type of the systems on the list.

Star Log is added, using the new <display> tag for dockscreen text to give improved size of log data that a single entry can hold.

What else is left?

Star system information - star systems will be able to generate and display additional data- some of it is purely dressing such as luminousity value and temperature and other 'astronomical' data on the star of the system. Other information both generated and actual will be added in, I will let you see it to believe it. Descriptions about the star types and classification will be able to produce content text about the star system and it's star.


Integration of this mod with the new Event Manager (EM3) and some other upcoming mods will be built in before I release the new mods- EM3 integration will include the ability to timestamp log entries, first entry in a system, time in the system (EM3 'hours/days'), additional entries and times, possibly tracking for planet visits (planet interaction mod) stations visited, and others bits of useful but frivolous data.

Navigation computer is able to become broken- faulty mapROMS, damage to the device from weapons fire incombat, hostile viruses and other pitfalls can remove parts or all of the system functionality for short or long periods of time. Various methods will become available to prevent data loss.

The navigation portion isn't particularly handy for the vanilla game- the network is too easy to comprehend, but I am sure that you will find the additional ability to flag and log systems and also the time tracking may be useful to you.

In the event that larger networks are created, this mod could become much more valuable to you in explorations as it can adapt itself to map any topology that is possible.

Any ideas on what types of additional information I should include about the systems? Do you want to know about anything specific? I can find out the environment and add some content (think "words to describe" it), or a bunch of other things.
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

The basic navigation computer is ready.

(link removed)

Installs by simply unzipping in your extension folder. Has an images folder and a single extension file. Enjoy. ;)

This version is fairly basic, I am going to go back through and upgrade sections as I get more things to add in to it.

I am building a new Event Manager core to integrate with this mod, even though it won't actually be required (thanks to Betel's help with isError).

Some parts are still a little rough, but it may be a while before I have time to release an upgrade for this and I wanted to share this version.

The navigation computer works from a ROM, but you can use different ways to access it- for instance, you could copy over a new dsShipInterior and add an action in the menu there that went something like
<Action name="Navigation Compy" key="N">
(block nil
(scrShowScreen gScreen "&dsNavigation;")
)
</Action>

Then you could access the nav computer from the ship interior.

ROMs are available as level 1 common items, sometimes even in Eridani.

A test map data ROM is included that demonstrates one way to add systems to the navigation computer. You can alter the code in there to reveal more systems or find other ways to filter for new map data packs to be added.

I will be upgrading these to be more interesting with the next release.

The star log is fairly robust, but you may want some new icons. I know I do, and they will be in the next version as well.

I am diving into the Adventure extensions and doing some tutorial work (besides real life.. wow.. busy..) so it might be a week or so before an real upgrade is seen on this one.

Check this version of the mod out, and tell me what you think about these questions:

What can I do to improve the system info?

How could we generate some environ and star system type data that doesn't get repetitive?

What other information or device services would you like to see?

(consider this the price of getting such a handy mod, and just answer the questions after testing the device.. simple, yes?)
Last edited by Periculi on Fri Sep 05, 2008 10:59 pm, edited 1 time in total.
User avatar
Sheltem
Militia Lieutenant
Militia Lieutenant
Posts: 153
Joined: Tue Sep 04, 2007 1:44 pm

nice work, Periculi !
(I didnt expect less from you ;) )

the bugs:
- Eridani and Riegel are sorted uncorrectly - the are sorted at second and third position
- the text-field for writing logs does not support to show more than one line of text although it is fully saved

remarks:
- you cant exit from system info window
- the cargo hold is bad for visualisation of a navigation screen - you have to scroll down to find the system you want ... how will this be when we have 50 systems ?
(You couldn't have made anything better here, but George should think about if his precious space game could use a stylish net-like or 3D nav-computer) (I really like navigation maps)
- you need to use mouse in the log creation window (the shortcut letters are obsolete due to the textfield)
- at the moment the note "You visited system XYZ" makes no sense as you have to be in the system to get it into the nav-comp

improvements:
- you could automaticly save (e.g. as log) scanned friendly and hostile stations, how many ships were sigthed, destroyed, looted, whatevered ...
- implemention of a sorting-option by systemLevel, star type, planet number ... especially the superior-sorting by level could be usefull, lowering the number of items in the network overview an thus finding what you want
- add some indication in which direction the linked gates lead (e.g. to Eridani, to Core, maybe the player could flag the superior systems himself)
- maybe add the linked stargate to nav-computer when scanned in system
regards
Sheltem

What do you think about the endless stream of spawns ?

What about modding wandering spawns which dont attack the player directly ?
User avatar
Periculi
Fleet Officer
Fleet Officer
Posts: 1282
Joined: Sat Oct 13, 2007 7:48 pm
Location: Necroposting in a forum near you

The sorting is done by level. (sysGetNodes) returns an alphabetized list of nodeID, which was displaying Eridani in the "S" department.

"uncorrectly" is not a word.

The text field is what it is.

You only have to scroll on the Overview section, all the other sections keep you focused enough to deal with it. I had to deal with a list of 500 systems in Sys26, it wasn't that hard.

"You have visited XYZ" will make more sense if you use a MapData ROM to increase your known systems without visiting them.


As for the improvements-

You want me to place event code in every station in the game to register them all for events and add an OnObjReconned to every one just to track "scanned" stations? Sorry, more trouble than it is worth.

And then to do the rest- I would need to set up a recurring timer that ate all the game cpu resources counting things. You think you got drag in a Dwarg heavy system? This type of tracking would bring things down to a snail's pace. Not going to happen.

Sorting methods will be in version 2

I suppose I could put some sense of direction in there- but here is the hitch, if used with the gate names, then any time someone wants to make an adventure extension with differently named gates it would throw the directional array off.


Hmm....

A small bit of inspiration has occurred. I think it IS possible to get a primitive 'visual' based map for those who are data-list impaired. Now, this is just conjecture here, but the new dockscreen <display> element has some promising features. It would be quite a trick, but it may be possible to 'tile' images into a sort of primitive network arrangement. I am going to try some experiments placing multiple tiles in there and see how it goes. If successful, Sheltem will need put together a psuedo-cult and raise a temple to my mod-nificence in Eridani. Agreed?
Post Reply