Jump to content

SceneNavi - A simple Ocarina of Time level editor


xdaniel
 Share

Recommended Posts

So...individual scene saving?

With real life starting to move again for me, I haven't had much time for SceneNavi over the last week, and what time I did find for programming I spent on my Zelda-ish engine thingy.

...and from that "movement", right now I've got a terrible sunburn and am rather tired. Also, honestly, individual file saving is a lower priority for me anyway as most people apparently work with ROMs. It's not forgotten, I will implement it, but it's still a version or two away.
Link to comment
Share on other sites

  • 1 month later...

So I've implemented my own parser for the actor definitions and there are some things I want to tweak with the format.
 
The biggest change would be to restructure the format a bit so that you have three "classes" of definitions (room actor, transition actor, spawn? actor). Each class must have a "default" definition that serves as a template for other definitions within a class, something like...

<?xml version="1.0" encoding="utf-8" ?>
<ActorDatabase ProgramVersion="1.0.1.6">
	<Class Type="RoomActor">
		<Definition IsDefault="True">
			<Item Index="0" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Usage="ActorNumber" Description="Actor Type" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="2" ValueType="System.Int16" Usage="PositionX" Description="Position (X)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="4" ValueType="System.Int16" Usage="PositionY" Description="Position (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="6" ValueType="System.Int16" Usage="PositionZ" Description="Position (Z)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="8" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationX" Description="Rotation (X)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="10" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationY" Description="Rotation (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="12" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationZ" Description="Rotation (Z)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"/>
			<Item Index="14" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Description="Variable" ControlType="System.Windows.Forms.TextBox"/>
		</Definition>
		<Definition> ... </Definition>
	</Class>

Then instead of adding in Actor Number, Position, Rotation, Variable for every actor, they will be inherited from the default definition. Then in cases like the Chest Actor where Z-Rotation cannot be set, a special element could be added that tells a parser to ignore a rule with a given Usage value, something like...

<Ignore>RotationZ</Ignore>

I also want to add a few possible Usage attribute values.

  • Standard or Default - Basically a default value to revert to when none is provided
  • SwitchFlag - I want to someday make some sort of program that can detect conflicts with switch flags. I also want to be able to describe whether the actor simply reads the flag state, writes it, or read and writes to it (SwitchFlagR, SwitchFlagW, SwitchFlagRW).
  • CollectableFlag - Same reasons as above, but read/write states won't be necessary
  • ChestFlag - Same as above.

Lastly, I think I want a <Note> element would be nice for documenting special case behavior that can't be corrected by Scene Navi. For example, the bombable walls used in Dodongo's Cavern will trigger the intro cutscene for the area if the SwitchFlag is set to a specific value.

Link to comment
Share on other sites

  • 1 month later...

So real quick post here. mzxrules post about actor definitions I'll need to address later, as well as generally get back to SceneNavi - it's been three or so months since I worked on it.

 

Anyway... CloudMax shouted something that had me sit up and take notice, so to speak: "(03 November 2013 - 01:54 PM) Ugh, image formats... so annoying. Especially when everyone seems to have different standards. I4 to RGBA for example. the result should be a rgba image where the RGBA values are all the same for each pixel, however, a lot of people don't seem to do this and set the Alpha to an individual value. How will I be able to make a convertor when everyone sets up the images differently T_T" Emphasis mine.

 

Does that sound familiar?

 

Does "pathway alpha" ring a bell?

 

If he's right, he's just single-handedly solved something that's been haunting me literally for years, since the days of OZMAV1 I reckon:

 

 

r9ecnUu.png

6L7U0XJ.png

oS4tIzk.png

 

  • Like 7
Link to comment
Share on other sites

Its funny how one simple statement can flick on a light bulb and change your path of thinking.

 

Good to see you back on Scene Navi. I was starting to think it would never be improved upon. I know it is unlikely you would be interested but my offer still stands :)

Link to comment
Share on other sites

You may wanna click on "Check for Update" in your copies of v1.0 Beta 6...
 

SceneNavi v1.0 Beta 7 released - changelog below:

  • Fixed conversion of I4 and I8 type textures; finally fixes missing alpha channels on ex. Hyrule Field pathways, certain cobwebs, etc.
  • Added support for custom maps generated by Hylian Toolbox; problem was related to polygon type definition offsets
  • Changed scene and room selection tree; headers now condensed into stages, similar to Map Select screen
  • Area title card can now be exported for editing and reimported
  • Added stubs for a few other features (ex. loading and editing of environment settings); not fully implemented yet

This is pretty much just "Beta 6.5", but my versioning system doesn't allow for that :P

 

More changes, fixes and additions to come once I get back into things...

 

  • Like 3
Link to comment
Share on other sites

https://dl.dropboxusercontent.com/u/16672629/ootroomwtf.png

 

okay... I found this while browsing the maps in the Debug ROM.  Considering how much scrutiny this game has gotten I simply refuse to believe that this hadn't been found before, and therefore must be a bug in SceneNavi, hence why I'm posting this here.  I don't know how this could've happened though.

Link to comment
Share on other sites

waits...

 

This weekend. Wanted to get Beta 7 out after this long silence, but haven't had the chance to think about and comment on your suggestions yet.

 

https://dl.dropboxusercontent.com/u/16672629/ootroomwtf.png

 

okay... I found this while browsing the maps in the Debug ROM.  Considering how much scrutiny this game has gotten I simply refuse to believe that this hadn't been found before, and therefore must be a bug in SceneNavi, hence why I'm posting this here.  I don't know how this could've happened though.

 

That... appears to be correct, oddly enough. It's in UoT SVN R10, OZMAV2, SayakaGL and previous versions of SceneNavi... with distinct collision even. The surface of the bed inside the room uses collision polygons #24 and #25, while the odd one outside uses #22 and #23... they also use polygon type 3 instead of 4, which has the ground type as "Earth/packed wood" instead of "Earth/dirt".

 

...I guess the game's not been under enough scrutiny yet. But considering how closely under our noses this has been the whole time - I mean, this would've been visible even with old-ass viewers like my crappy first attempt 5 years ago - it's... odd and kinda ironic.

 


EDIT: Been foolin' around with the update function...

 

 

FJFAvEY.png

 

Loads and displays release notes from a remote RTF file, otherwise works pretty much like the previous message boxes.

 

Edited by xdaniel
  • Like 1
Link to comment
Share on other sites

I'd chalk it up to

...I guess the game's not been under enough scrutiny yet. But considering how closely under our noses this has been the whole time - I mean, this would've been visible even with old-ass viewers like my crappy first attempt 5 years ago - it's... odd and kinda ironic.

Personally I see it as being more that Ocarina of Time is just a really big and complex game.

Link to comment
Share on other sites

Unrelated to the WIP screenshot above, individual scene/room file support is mostly broken in the current build, because of the way I restructured the treeview compared to Beta 6; didn't catch that one before release. It's already fixed, tho. Also, petrie, I haven't forgotten about adding saving support in that mode. I'll make that a goal for Beta 8.

 

Also, regarding the WIP stuff, it's just...

 

...waterboxes :P Will also heed IIRC DeathBasket's notes about the room number in each waterbox.

 

Link to comment
Share on other sites

This can be fixed? :/

 

Fixed it, was a bit of an oversight on my part. Null bytes didn't get removed when the title was read, because (all?) official games use spaces to pad the title to 20 characters, so I didn't expect null bytes to ever be in there. I changed the ROM handler class to remove null bytes from the string, as well as excess spaces from the end of the string. Also removing null bytes from the game ID, just in case.

 

Also gotta put off the actor definition system reviewing for another day or two, not been feeling very well since Sunday. At least it's not the tonsillitis again, it's just a normal cold... Sorry, mzxrules -.-

  • Like 1
Link to comment
Share on other sites

I know, I ought to get my immune system going better - take more vitamins, generally eat more healthy food, improve my physical condition... It's kinda hard to get started on all this, tho.

 

EDIT: On a more positive note, some more WIP. Still need to hook up editing capabilities, as well as make another textbox for the "properties" or "camera effects" or whatever the remaining data of each waterbox really is (the wiki's not very helpful there):

 

3a2tLWD.png

Edited by xdaniel
  • Like 1
Link to comment
Share on other sites

Dude looking awesome!

 

I know what you mean about physical condition. Been working out for years now and lost a ton of weight. Feel great, doc says I am healthy, etc. But there are still those days (more that I care to admit) where I just dont feel like working out at all. So in summation, it never gets easier...lol

 

Especially as you get older    <---is older :)

Link to comment
Share on other sites

I think waterbox support is pretty much done for now...

 

 

mK06j0a.png

 

Changelog for v1.0 Beta 8 so far:

  • Improved update and version checking functionality; now displays release notes from remote RTF file
  • Fixed loading of individual scene and room files; the changes to the treeview in Beta 7 broke header selection
  • Fixed SFX and reverb options under Scene Metadata being disabled; slight GUI changes broke this feature
  • Added waterbox support; allows changing of waterbox position, size, room number and other properties
Edit, oh yeah, and before I forget, something I shouted earlier: A waterbox with room number 0x3F means it exists in every room in the scene, as far as I can see. Two waterboxes in the Forest Temple are set to this and appear to be scene-wide, and changing one in the Deku Tree to that number yielded the same result. So, yeah. Edited by xdaniel
  • Like 3
Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.