10-10-2007, 11:50 AM
|
#61
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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."
|
|
|
10-10-2007, 01:59 PM
|
#62
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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.
|
|
|
10-10-2007, 03:04 PM
|
#63
|
Skinning Guru
Join Date: Jul 2002
Posts: 1,076
|
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
|
|
|
10-10-2007, 10:56 PM
|
#64
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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.
|
|
|
10-11-2007, 12:32 PM
|
#65
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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.
|
|
|
10-11-2007, 12:54 PM
|
#66
|
Skinning Guru
Join Date: Jul 2002
Posts: 1,076
|
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.
|
|
|
10-11-2007, 02:06 PM
|
#67
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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.
|
|
|
10-11-2007, 04:48 PM
|
#68
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
My goal for this week is complete. I present you, a fully working preview of the inventory window !
|
|
|
10-11-2007, 04:54 PM
|
#69
|
Premium Member
Join Date: Jan 2003
Posts: 23
|
Grats Shillingworth... awesome job thus far!
|
|
|
10-11-2007, 05:39 PM
|
#70
|
Feeling Elemental?
Join Date: Apr 2003
Server: Bristlebane
Posts: 363
|
HOLY CRAP! That is amazing!
|
|
|
10-12-2007, 01:27 PM
|
#71
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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.
|
|
|
10-12-2007, 03:44 PM
|
#72
|
A Ghoul
Join Date: Nov 2003
Posts: 18
|
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!!.
|
|
|
10-12-2007, 04:21 PM
|
#73
|
Skinning Guru
Join Date: Jul 2002
Posts: 1,076
|
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.
|
|
|
10-12-2007, 05:09 PM
|
#74
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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.
|
|
|
10-15-2007, 02:01 PM
|
#75
|
A Predatory Creeper
Join Date: Dec 2002
Server: Bertoxxulous
Posts: 251
|
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).
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|