Home Forum Downloads My Favorites Register FAQ

Go Back   EQInterface Forums > Developer Discussion > General authoring help / discussion
User Name
Password

Reply
 
Thread Tools Display Modes
Old 10-10-2007, 11:50 AM   #61
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

This stuff is just goofy. The inventory window has some odd dimensions that I just can't seem to figure out. The inventory page is 388x401. I found the source of the page by looking at the WEIGHT label which is at 0x379, and the name label, which is at 4,2. As you can see in the image below, the buttons go outside of that bounding box, but yet increases the page height to match their height + 1 spare pixel. The top left corner of the skills button is 1, 402, outside of the pages bounding box.



I think I'm missing some key behavior of the Page/TabBox elements that are important for it's size.
__________________

"Computers are like Air Conditioners, they stop working properly when you open Windows."
shillingworth is offline   Reply With Quote
Old 10-10-2007, 01:59 PM   #62
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

Well I set it to a fixed height, 22 pixels, since that's what it seems to stay at no matter what I do to the XML file.

Side by Side with the tab box drawing it's stuff properly at last.


But now I got a bug to where the pages are causing the entire render chain to fail, background of the editor draws fine but anything in the active UI won't. Think I may be overloading the video memory with how many render targets I was using to clip labels to their boundaries. I'll test that theory later when I have enough time to set up a video memory counter.

Oh yeah, I know the QMark isn't drawing on my editor, that's due to it's not flagged as on in the inventory window. Probably something SoE did when they put in that new help system a few months ago, to flag them on for windows with help available.
shillingworth is offline   Reply With Quote
Old 10-10-2007, 03:04 PM   #63
Drakah
Skinning Guru
 
Drakah's Avatar
 
Join Date: Jul 2002
Posts: 1,076
Interface Author - Click to view interfaces
Default

There is a ton of "old code" that was not removed when they updated to the "new" default, so that isn't surprising. Why they made an animations file is beyond me... they should had just put the code into the window that needs it and move on. The animations file should had just been any code that is static throughout the entire UI (ie: dragitems, bordering, etc.).

I hear from the grapevine they may be updating the "Default" again soon.. unknown when, but if they do, I certainly hope they take my critisism seriously this time as I did a lot of UI fixes before the "new" default was launched, and they did not use 1 of my fixes at all. Hopefully they will get the guy from Vanguard to update the code, as he was the original coder of EQ1 and his Vanguard UI (functionality/customizable) is amazing to me.
__________________
Regards,

Drakah

shakahr.com
Remember...it is only a GAME
Drakah is offline   Reply With Quote
Old 10-10-2007, 10:56 PM   #64
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

Well the whole UI structure is laid out to make sense inside a scene graph, that's essentially what it is. A UI by definition is something that defines the visual behavior of the interface the user will use, but a scene graph defines the appearance of objects that will appear on the screen. The idea behind the animation file is that, you have one file you have to load resources from, the rest just references those resources. It's faster to load all the resources at once, but easier to maintain if it's broken up into it's objects, a trade-off that as we see with EQ, is easy to decide upon (EQ needs every last bit of performance tweaks with how bad it's renderer is).

Honestly I think they should just scrap SIDL/EQIDL, it's an archaic relic compared to the options available now. With .Net, which EQ does use for some small stuff, there's a set of libraries that turn XML into code and code into XML, you can even put segments of code in XML's and have them loaded at load-time as if they were part of the game itself.
shillingworth is offline   Reply With Quote
Old 10-11-2007, 12:32 PM   #65
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

Well the render chain crashing is a more serious bug than I thought it was at first. Rewrote most of the relative positioning, but now I got some bug that settings the width and height of every single element to 1. No where in my code is the width and height set to 1, which makes no sense because the Update function caps them at a lowest of 2.

However before the whole relative position rewrite, I got the child elements to draw:



Can see why I'm rewriting relative positioning, it just plain wasn't working.
shillingworth is offline   Reply With Quote
Old 10-11-2007, 12:54 PM   #66
Drakah
Skinning Guru
 
Drakah's Avatar
 
Join Date: Jul 2002
Posts: 1,076
Interface Author - Click to view interfaces
Default

I wish there was a dev that you could bounce issues back and forth with to develop this easier. Perhaps there may be a way to contact one of them from the forums to get their email address because it would also be in their best interest as well since they might use the program to create/update future windows.
Drakah is offline   Reply With Quote
Old 10-11-2007, 02:06 PM   #67
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

I've tried that already Drakah. One of the guys I talked to was willing to give me all the info I needed on how they handle positioning and sizes, and the actual code structure of the UI, but when he asked his superior he was told that they are not allowed to give out any information about the UI system that isn't already included in the game's documentation. It would be nice though to have a developer who is experienced enough to understand some of the problems I run into.

However I got a big chunk of the problems I was having solved now. Relative positions are working great, just have to tweak it a lil more and it'll be perfect. Here's my latest SS. I have no clue where teh 1x1 sizes came from, they just kinda disappeared after working out some of the positions.

shillingworth is offline   Reply With Quote
Old 10-11-2007, 04:48 PM   #68
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

My goal for this week is complete. I present you, a fully working preview of the inventory window !

shillingworth is offline   Reply With Quote
Old 10-11-2007, 04:54 PM   #69
Barzec
Premium Member
 
Join Date: Jan 2003
Posts: 23
Interface Author - Click to view interfaces
Default

Grats Shillingworth... awesome job thus far!
Barzec is offline   Reply With Quote
Old 10-11-2007, 05:39 PM   #70
danille
Feeling Elemental?
 
danille's Avatar
 
Join Date: Apr 2003
Server: Bristlebane
Posts: 363
Interface Author - Click to view interfaces
Default

HOLY CRAP! That is amazing!
__________________

Danille Impholder
The Magician's Tower
Bristlebane ~ Sol Invictus
Keep Norrath Safe
Caretaker of AYA
danille is offline   Reply With Quote
Old 10-12-2007, 01:27 PM   #71
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

Created a class to use for EQ types. This way when changing the EQ type of an element, a list can be shown with valid EQ types for that element. It reads from an ini file that looks like the following:

Code:
[LabelTypes] 1=Name 2=Level 3=Class 4=Deity 5=Strength 6=Stamina 7=Dexterity 8=Agility 9=Wisdom 10=Intelligence 11=Charisma 12=Resist Poison 13=Resist Disease 14=Resist Fire 15=Resist Cold 16=Resist Magic 17=Hp Current Number 18=Hp Maximum Number 19=Hp Percentage 20=Mana Percentage 21=Endurance Percentage 22=Armor Class 23=Attack 24=Weight Current 25=Weight Maximum 26=Exp Percentage 27=Alternate Exp Percentage 28=Target Name 29=Target Hp Percentage 30=Group 1 Name 31=Group 2 Name 32=Group 3 Name 33=Group 4 Name 34=Group 5 Name 35=Group 1 Hp Pecentage 36=Group 2 Hp Pecentage 37=Group 3 Hp Pecentage 38=Group 4 Hp Pecentage 39=Group 5 Hp Pecentage 40=Group 1 Pet Hp Pecentage 41=Group 2 Pet Hp Pecentage 42=Group 3 Pet Hp Pecentage 43=Group 4 Pet Hp Pecentage 44=Group 5 Pet Hp Pecentage 60=Spell 1 Name 61=Spell 2 Name 62=Spell 3 Name 63=Spell 4 Name 64=Spell 5 Name 65=Spell 6 Name 66=Spell 7 Name 67=Spell 8 Name 68=Pet Name 69=Pet Hp Percentage 70=Hp Current/Maximum Number 71=Alternate Advancement Points Current 72=Exp to Alternate Advancement Ratio 73=Surname 74=Title 75=MP3 Song Name 76=MP3 Song Duration Minutes Number 77=MP3 Song Duration Seconds Number (2-Digit) 78=MP3 Song Position Minutes Number 79=MP3 Song Position Seconds Number (2-Digit) 86=Pet Buff 1 87=Pet Buff 2 88=Pet Buff 3 89=Pet Buff 4 90=Pet Buff 5 91=Pet Buff 6 92=Pet Buff 7 93=Pet Buff 8 94=Pet Buff 9 95=Pet Buff 10 96=Pet Buff 11 97=Pet Buff 12 98=Pet Buff 13 99=Pet Buff 14 100=Pet Buff 15 101=Pet Buff 16 102=Pet Buff 17 103=Pet Buff 18 104=Pet Buff 19 105=Pet Buff 20 106=Pet Buff 21 107=Pet Buff 22 108=Pet Buff 23 109=Pet Buff 24 110=Pet Buff 25 111=Pet Buff 26 112=Pet Buff 27 113=Pet Buff 28 114=Pet Buff 29 115=Pet Buff 30 116=Tribute 117=Tribute 118=Tribute 119=Tribute 120=Target of Target Percentage 121=Guild Tribute Timer 122=Guild Tribute Pool 123=Guild Tribute Payment 124=Mana Current Number 125=Mana Maximum Number 126=Endurance Current Number 127=Endurance Maximum Number 128=Mana Current/Maximum Number 129=Endurance Current/Maximum Number 130=Group Leadership Exp 131=Raid Leadership Exp 132=Task System Duration Timer 133=Spell 9 Name 134=CastingSpell Name 135=Target of Target Name 136=Resist Corruption 137=Combat Rest Time 500=Buff 0 501=Buff 1 502=Buff 2 503=Buff 3 504=Buff 4 505=Buff 5 506=Buff 6 507=Buff 7 508=Buff 8 509=Buff 9 510=Buff 10 511=Buff 11 512=Buff 12 513=Buff 13 514=Buff 14 515=Buff 15 516=Buff 16 517=Buff 17 518=Buff 18 519=Buff 19 520=Buff 20 521=Buff 21 522=Buff 22 523=Buff 23 524=Buff 24 550=Blocked Buff 0 551=Blocked Buff 1 552=Blocked Buff 2 553=Blocked Buff 3 554=Blocked Buff 4 555=Blocked Buff 5 556=Blocked Buff 6 557=Blocked Buff 7 558=Blocked Buff 8 559=Blocked Buff 9 560=Blocked Buff 10 561=Blocked Buff 11 562=Blocked Buff 12 563=Blocked Buff 13 564=Blocked Buff 14 565=Blocked Buff 15 566=Blocked Buff 16 567=Blocked Buff 17 568=Blocked Buff 18 569=Blocked Buff 19 600=Song Buff 0 601=Song Buff 1 602=Song Buff 2 603=Song Buff 3 604=Song Buff 4 605=Song Buff 5 606=Song Buff 6 607=Song Buff 7 608=Song Buff 8 609=Song Buff 9 610=Song Buff 10 611=Song Buff 11 612=Song Buff 12 613=Song Buff 13 614=Song Buff 14 650=Pet Blocked Buff 0 651=Pet Blocked Buff 1 652=Pet Blocked Buff 2 653=Pet Blocked Buff 3 654=Pet Blocked Buff 4 655=Pet Blocked Buff 5 656=Pet Blocked Buff 6 657=Pet Blocked Buff 7 658=Pet Blocked Buff 8 659=Pet Blocked Buff 9 660=Pet Blocked Buff 10 661=Pet Blocked Buff 11 662=Pet Blocked Buff 12 663=Pet Blocked Buff 13 664=Pet Blocked Buff 14 665=Pet Blocked Buff 15 666=Pet Blocked Buff 16 667=Pet Blocked Buff 17 668=Pet Blocked Buff 18 669=Pet Blocked Buff 19 [GaugeTypes] 1=HP 2=Mana 3=Stamina 4=Exp 5=Alternate Exp 6=Target 7=Casting 8=Breath 9=Memorize 10=Scribe 11=Group 1 Hp 12=Group 2 Hp 13=Group 3 Hp 14=Group 4 Hp 15=Group 5 Hp 16=Pet Hp 17=Group 1 Pet Hp 18=Group 2 Pet Hp 19=Group 3 Pet Hp 20=Group 4 Pet Hp 21=Group 5 Pet Hp 22=MP3 Song Current Progress 23=Group Leadership Exp 24=Raid Leadership Exp 26=Combat Ability Window TimeRemaining 27=Target of Target Hp 28-Respawn Timer 29=Out of Combat Timer 39=Combat Timer [InventoryTypes] 0=Charm 1=Ear Left 2=Head 3=Face 4=Ear Right 5=Neck 6=Shoulder 7=Arms 8=Back 9=Wrist Left 10=Wrist Right 11=Range 12=Hands 13=Primary Slot 14=Secondary Slot 15=Finger Left 16=Finger Right 17=Chest 18=Legs 19=Feet 20=Belt 21=Power Source 22=Ammo 23=Inventory Slot 1 (Top Left) 24=Inventory Slot 2 (Top Middle Left) 25=Inventory Slot 3 (Bottom Middle Left) 26=Inventory Slot 4 (Bottom Left) 27=Inventory Slot 5 (Top Right) 28=Inventory Slot 6 (Top Middle Right) 29=Inventory Slot 7 (Bottom Middle Right) 30=Inventory Slot 8 (Bottom Right) 30=Container Slot 1 31=Container Slot 2 32=Container Slot 3 33=Container Slot 4 34=Container Slot 5 35=Container Slot 6 36=Container Slot 7 37=Container Slot 8 38=Container Slot 9 39=Container Slot 10


Was also a good excuse to get started on parsing and writing an INI processor. Which turned out real nice, the INI processor can convert XML to INI (had that INI size bug in mind with that one). It can also read/write the INI while the program is running, gives me a good start at creating a method of saving a UI layout to an UI_CharName_ServerName.INI from the editor.
shillingworth is offline   Reply With Quote
Old 10-12-2007, 03:44 PM   #72
Zhaann
A Ghoul
 
Join Date: Nov 2003
Posts: 18
Default so far so good

wow whenever you get this UI up and going I can't wait to give it a try, so far looks like you got your work cut out for you though. I"m no coder and no designer but I so want to learn how to do this kind of stuff I'm tired of having to wait for a UI fix every time SoE decides to change something on the UI like last patch with switching all the keys on the map to the right when they started out on the left uhg what a PITA!!.
Zhaann is offline   Reply With Quote
Old 10-12-2007, 04:21 PM   #73
Drakah
Skinning Guru
 
Drakah's Avatar
 
Join Date: Jul 2002
Posts: 1,076
Interface Author - Click to view interfaces
Default

Shil, I dont remember if I mentioned this before, but going to ask this anyway. Will you be placing an option in the program to position certain window elements on a "screen layout", for the resolution selected, that will automatically save the positioning/size code needed for the UI INI file? This I think would be a highly usefull feature.
Drakah is offline   Reply With Quote
Old 10-12-2007, 05:09 PM   #74
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

Quote:
Originally Posted by Drakah
Shil, I dont remember if I mentioned this before, but going to ask this anyway. Will you be placing an option in the program to position certain window elements on a "screen layout", for the resolution selected, that will automatically save the positioning/size code needed for the UI INI file? This I think would be a highly usefull feature.


Aye I will, that's why I'm working on the INI parser/processor this weekend. Hoping to get it at least saving the basics like position, size, and tint for the meantime.
shillingworth is offline   Reply With Quote
Old 10-15-2007, 02:01 PM   #75
shillingworth
A Predatory Creeper
 
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
Interface Author - Click to view interfaces
Default

Well I had to rewrite the way the stuff draws again. I didn't realise that my frame counter was put in the update function instead of the draw function, so my FPS (frames per second) was actually UPS (updates per second). When placed in the draw function it revealed a very low frame rate of 24 to 30. Now that I rewrote the way stuff draws, in window mode the frame rate bounces from 59 to 65, which is kinda strange because the cap in window mode is at 60.

This is probably the last time I have to touch the drawing stuff, the way it's drawing now, relative positioning is handled naturally. I'm drawing each object to a texture, last time I tried this I overflowed video memory very easily, but this time I wrote in a redraw flag. Unless something that'll affect what the object looks like is changed, it never gets drawn a second time.

Only real downside to this method is memory usage. While the idle memory usage is at an all time low (86MB while drawing the inventory window), the peak usage is at an all time high (of 147MB while preparing the inventory window's texture).
shillingworth is offline   Reply With Quote
Reply




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


All times are GMT -5. The time now is 04:14 PM.


vBulletin Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© MMOUI