Antidote Posted July 30, 2013 Share Posted July 30, 2013 @xdan, I totally understand, it is a pretty loose format for reasons unknown. Link to comment Share on other sites More sharing options...
xdaniel Posted July 30, 2013 Author Share Posted July 30, 2013 Antidote: Again, I'll keep it in mind, maybe implement it someday with a "caution, no warranty" warning or somesuch Also, I was editing my last post while you were posting yours, not sure if you've seen the edit. Link to comment Share on other sites More sharing options...
Antidote Posted July 30, 2013 Share Posted July 30, 2013 Just saw it, I think that should work quite wonderfully Link to comment Share on other sites More sharing options...
mzxrules Posted July 31, 2013 Share Posted July 31, 2013 Cleaner yes, because an actor definition applies to only an actor with a specific number. More than that though, is that I want to use the definitions with my own projects, and others would possibly want to do the same. It would also allow for the definitions to exist within a singular file and posted on, if someone wanted to do just that. Link to comment Share on other sites More sharing options...
xdaniel Posted July 31, 2013 Author Share Posted July 31, 2013 Hrm, how's that: <?xml version="1.0" encoding="utf-8" ?><ActorDatabase ProgramVersion="1.0.1.6"> <Definition IsDefault="RoomActor, SpawnPoint"> <Item Index="0" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Usage="ActorNumber" Description="Actor Type" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="2" ValueType="System.Int16" Usage="PositionX" Description="Position (X)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="4" ValueType="System.Int16" Usage="PositionY" Description="Position (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="6" ValueType="System.Int16" Usage="PositionZ" Description="Position (Z)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="8" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationX" Description="Rotation (X)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="10" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationY" Description="Rotation (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="12" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationZ" Description="Rotation (Z)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="14" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Description="Variable" ControlType="System.Windows.Forms.TextBox"></Item> </Definition> <Definition IsDefault="TransitionActor"> <Item Index="4" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Usage="ActorNumber" Description="Actor Type" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="0" ValueType="System.Byte" Usage="NextRoomFront" Description="Next Room" Mask="0xFF" ControlType="System.Windows.Forms.ComboBox"></Item> <Item Index="1" ValueType="System.Byte" DisplayStyle="Hexadecimal" Description="Camera (Next)" Mask="0xFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="2" ValueType="System.Byte" Usage="NextRoomBack" Description="Previous Room" Mask="0xFF" ControlType="System.Windows.Forms.ComboBox"></Item> <Item Index="3" ValueType="System.Byte" DisplayStyle="Hexadecimal" Description="Camera (Previous)" Mask="0xFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="6" ValueType="System.Int16" Usage="PositionX" Description="Position (X)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="8" ValueType="System.Int16" Usage="PositionY" Description="Position (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="10" ValueType="System.Int16" Usage="PositionZ" Description="Position (Z)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="12" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationY" Description="Rotation (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="14" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Description="Variable" ControlType="System.Windows.Forms.TextBox"></Item> </Definition> <Definition Number="0x0009" DisplayModel="ColoredDoor" PickModel="Door" FrontOffset="180.0"> <Item Index="4" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Usage="ActorNumber" Description="Actor Type" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="0" ValueType="System.Byte" Usage="NextRoomFront" Description="Next Room" Mask="0xFF" ControlType="System.Windows.Forms.ComboBox"></Item> <Item Index="1" ValueType="System.Byte" DisplayStyle="Hexadecimal" Description="Camera (Next)" Mask="0xFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="2" ValueType="System.Byte" Usage="NextRoomBack" Description="Previous Room" Mask="0xFF" ControlType="System.Windows.Forms.ComboBox"></Item> <Item Index="3" ValueType="System.Byte" DisplayStyle="Hexadecimal" Description="Camera (Previous)" Mask="0xFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="6" ValueType="System.Int16" Usage="PositionX" Description="Position (X)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="8" ValueType="System.Int16" Usage="PositionY" Description="Position (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="10" ValueType="System.Int16" Usage="PositionZ" Description="Position (Z)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="12" ValueType="System.Int16" DisplayStyle="Hexadecimal" Usage="RotationY" Description="Rotation (Y)" Mask="0xFFFF" ControlType="System.Windows.Forms.TextBox"></Item> <Item Index="14" ValueType="System.UInt16" DisplayStyle="Hexadecimal" Description="Variable" ControlType="System.Windows.Forms.TextBox"></Item> </Definition>[... ...] <ActorDatabase ProgramVersion="1.0.1.6"> is now the parent tag for all definitions. ProgramVersion is mandatory and must be the same as the SceneNavi version the file is for; 1.0.1.6 means "v1.0 Beta 6". The leading 1.0 should be obvious as should the 6, the 1 denotes the build type - 0 is Alpha (unused so far), 1 is Beta, 2 is final release, anything else is invalid. <Definition ...> is the actor definition itself. IsDefault is optional and signifies that this definition is the default for the specified kinds of actors, RoomActor, SpawnPoint and/or TransitionActor; one definition can be the default for multiple actor types, separated by commas. Number is the actor number, either in hexadecimal (must be prefixed "0x") or decimal (no prefix), and is mandatory for definitions that are not defaults. DisplayModel, PickModel and FrontOffset I touched upon before, all are optional and default to actor cubes and a front offset of 0 degrees. The Item and Option tags work as before. Actor definitions can be spread across multiple files, as long as they all have the extension .xml and follow the same layout as above (enclosed in ActorDatabase tag with version number, etc.). If you want to use the definitions in your own projects, use or ignore any tags you'd like, but if you want to write some for SceneNavi, heed which ones are mandatory and which are optional. Hope I didn't forget anything; more documentation to come with the first final build. The general layout is planned to stay the same from now, tho pending any feedback from you guys (I guess mzxrules in particular?), DisplayModel/PickModel, Usage and the like might get more possible settings, which will also be documented in due time. 1 Link to comment Share on other sites More sharing options...
HeavyZ Posted August 2, 2013 Share Posted August 2, 2013 So, I was thinking, I'd like to contribute by documenting every enemy's health value and you could implement it into SceneNavi by making creating the option of changing enemy health values. I would document damage charts too, but I can't promise I'll do that part for sure. I would take my time doing the enemy health value thing alone. Link to comment Share on other sites More sharing options...
Arcaith Posted August 3, 2013 Share Posted August 3, 2013 Until it exists in an importer, would it be at all possible to implement per-vertex colour and alpha adjustment? My interior maps look awful without it, and it's kind of required for making decent bottomless pits without wasting space on additional textures that have the fade as part of the texture. Banjo's Backpack has a nice method of picking which vertex is being edited, clicking on the triangle, it picks the nearest vertex of that triangle. It's much easier than picking the actual vertex itself, since there are sometimes multiple verts at the same co-ords. Link to comment Share on other sites More sharing options...
xdaniel Posted August 3, 2013 Author Share Posted August 3, 2013 WIP, triangle selection works so far. Not sure about automatic selection of the nearest vertex; also not sure when this'll be ready. Note that I won't add editing of vertex positions, just colors and alpha - that would be too much work otherwise, which I honestly don't want to do. 2 Link to comment Share on other sites More sharing options...
Antidote Posted August 3, 2013 Share Posted August 3, 2013 If they really want to modify the geometry there are plenty of tools to do so, SceneNavi doesn't really need that feature anyway xdan, Vertex Colors/alpha should be plenty. Also looking good EDIT:Are those spheres? Or just a billboard, kinda hard to tell with that red. Link to comment Share on other sites More sharing options...
Arcaith Posted August 4, 2013 Share Posted August 4, 2013 Looks like a solid implementation. As long as the vert selection area is big enough to detect clicks and I can select the triangle first, I'll be happy. UoT's picker was nightmarish. Also, I've still been getting messed up textures on custom maps, but I'm not sure if that may be due to having different texture types in the same dlist. Link to comment Share on other sites More sharing options...
xdaniel Posted August 4, 2013 Author Share Posted August 4, 2013 (edited) The least you'll be able to, vertex selection-wise, will be selecting one of the three from a drop-down list or somesuch. I'd rather get mouse-based vertex selection working in the way you've described, but that'll be the fallback depending on how it works out. As for messed up textures, in what way are they messed up? Completely incorrect or no textures being loaded? Any way you could upload a patch or the scene/room files for such a broken map, so that I can take a closer look? Edit, Antidote, billboards, or rather vertices being rendered in OpenGL's points mode. Edited August 4, 2013 by xdaniel Link to comment Share on other sites More sharing options...
Arcaith Posted August 4, 2013 Share Posted August 4, 2013 (edited) I did a test map with 1 texture only, and nothing showed up at all. In other maps, you can still tell what the textures are supposed to look like but they're very garbled still. I'll make some ppfs and upload them. edit: PM'ed you the link for the ppf files. Because there are certain things I'm trying to keep secret for a project that I might use in those files :3 Edited August 4, 2013 by Arcaith Link to comment Share on other sites More sharing options...
xdaniel Posted August 9, 2013 Author Share Posted August 9, 2013 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. That said, at least the bugs that Arcaith encountered I managed to fix a few hours ago; more improvements and additions - vertex color editing as mentioned above, more collision and scene metadata stuff, etc. - will come at a somewhat slower pace for now. 1 Link to comment Share on other sites More sharing options...
Antidote Posted August 10, 2013 Share Posted August 10, 2013 It's all good xdan, we've all got stuff we need to do, projects have to take a back seat sometimes. Link to comment Share on other sites More sharing options...
xdaniel Posted August 10, 2013 Author Share Posted August 10, 2013 Select a room, select a room model triangle, then double-click a vertex to access the color picker dialog. Change the color there, the rendering refreshes and shows the changed color. Save the ROM as normal to, uh, save the changes to ROM Might replace the standard Windows ColorDialog with something custom, to also allow changing of the Alpha value. It's also a bit hacky internally - writing changes to the local copy of the room data for rendering AND to the ROM data itself - but it works so I'm not gonna worry about it much. 5 Link to comment Share on other sites More sharing options...
xdaniel Posted August 10, 2013 Author Share Posted August 10, 2013 Rolled my own color (and alpha) picker, although the regular Windows one is still accessible by double-clicking the preview panel: 2 Link to comment Share on other sites More sharing options...
Antidote Posted August 10, 2013 Share Posted August 10, 2013 Nice, the only thing I'm having a problem with is that scroll bar for alpha. I think there is a C# Control for it somewhere. EDIT: After some searching I found this: http://cyotek.com/blog/colorpicker-controls-for-windows-forms Probably a bit much, but you could yank the alpha control from it if you desire lol Link to comment Share on other sites More sharing options...
xdaniel Posted August 10, 2013 Author Share Posted August 10, 2013 (edited) Out goes the scrollbar, in comes... another PictureBox-based slider. Also changed the marker thingy to a triangle, to make it clearer. Edit, compiled the changelog for Beta 6, which might see release later today (Sunday) barring any unforeseen circumstances: Finally added Scene Metadata tab, so far contains a few sound-related settings (daytime BGM, nighttime SFX, reverb); more settings to come Actor definition format changed; actor number now part of definition, definition can be set as default for certain actor types unless overridden by specific definition Changes to transition actor handling; added drop-down lists for rooms to transition actor editing, renamed some options for clarity Actor definitions now also support the properties "DisplayModel", "PickModel" and "FrontOffset", which are currently used mainly with transition actors (documentation forthcoming) Added mouse-based selection of rooms in static objects mode; only works when collision rendering is disabled; selects collision polygons as usual when enabled Added mouse-based selection of room model triangles and vertices; allows editing of vertex colors and alpha Fixes to Ucode interpreter to not reset certain parameters on display list calls (DL, BRANCH_Z); fixes missing textures on ex. Death Mountain Added texture loading macro workaround to Ucode interpreter, now also tries to load textures on SetCombine command; fixes a few missing textures, ex. walls in Water Temple's first room Fixes to texture loading macro implementation, potentially did not correctly apply palettes to CI-type textures; fixes incorrect textures on certain custom maps Fixed offset detection error with polygon type definitions on some custom maps; now correctly loads polygon types Removed some unnecessary OpenGL function calls; gives notable FPS increase in many cases, such as certain temples Added more fallbacks for lower-end hardware, added detection of Intel graphics hardware to disable combiner emulation regardless of the hardware's reported capabilities Fixed room display list caching; now no longer re-renders rooms on every scene change, even if a room has been cached before with the same settings (i.e. textures en-/disabled) Some refactoring to the program's internal data storage (i.e. which scene header is active and what it contains, which room header is active, etc) A few object picking bugfixes; ex. some erratic behavior when selecting things via middle-click More status messages, ex. for ROM loading and saving Rearranged Options menu Edited August 11, 2013 by xdaniel 2 Link to comment Share on other sites More sharing options...
Arcaith Posted August 11, 2013 Share Posted August 11, 2013 Looking awesome, can't wait Link to comment Share on other sites More sharing options...
xdaniel Posted August 11, 2013 Author Share Posted August 11, 2013 SceneNavi v1.0 Beta 6 released and available via the update function, changelog as above. Feedback would be greatly appreciated! (Alternatively, click here to go to the update page...) 3 Link to comment Share on other sites More sharing options...
â–²ChriisTiianâ–² Posted August 11, 2013 Share Posted August 11, 2013 Textures now working perfect for me! (Low Video-Card...) In Kakariko Village or Hyrule Field, i see the grass different, but anyway, it works! Good job xDan! Link to comment Share on other sites More sharing options...
haddockd Posted August 12, 2013 Share Posted August 12, 2013 Of course it works xDan is the closest thing we have to a programming god Nice work xDan! Off topic, I noticed I can report my own post. I ALMOST did it just to do it. Thought that was funny Link to comment Share on other sites More sharing options...
SanguinettiMods Posted August 12, 2013 Share Posted August 12, 2013 Exception Object reference not set to an instance of an object. Show detailed information? Yes System.NullReferenceException: Object reference not set to an instance of an object. at SceneNavi.XMLActorDefinitionReder..ctor(Stringdefdir) in C:\Users\Daniel\Documents\Visual Studio 2010\Projects\SceneNavi\SceneNavi\XMLActorDefinitionReader.cs:line 177 at SceneNavi.ROMHandler.ROMHandler.ctor(String fn) in C:\Users\Daniel\Documents\Visual Studio 2010\Projects\SceneNavi\SceneNavi\ROMHandler\ROMHandler.cs:line 176 This is what I get when I open a Debug ROM. Link to comment Share on other sites More sharing options...
HeavyZ Posted August 12, 2013 Share Posted August 12, 2013 Graphics seem to be working perfectly, even when they didn't on SayakaGL, or the last beta of SceneNavi after disabling combiner. It told me it recognized my Intel hardware too. Link to comment Share on other sites More sharing options...
xdaniel Posted August 12, 2013 Author Share Posted August 12, 2013 (edited) This is what I get when I open a Debug ROM.Hm, looks like it fails while trying to load an actor definition... If you haven't done so, try extracting all files to a fresh folder, making sure the folder structure is the same as in the archive, and try it again. If that doesn't work, I'm not sure, I'd need to do some thinking and hunting for this.Edit, yeah, I got the same exception using the Beta 6 EXE file and Beta 5's XML folder. I'll implement some better error handling in this case for the next build. Edited August 12, 2013 by xdaniel Link to comment Share on other sites More sharing options...
Recommended Posts