OpenEQ Progress report #1: 10/2/04
Well, development has been moving a bit slowly on the last few days, but it's picking up now. I'm rewriting and redesigning a decent portion of the zone loading code now, as jbb has figured out the final major parts of the placeable object code. (THANK YOU!)
I wrote a new linked-list implementation which is extremely powerful, and wrote wrapper macros around it to simplify its use as much as possible. What follows is our agenda for what needs to be done in the next week or two. If you have any interest in working on any of these, please reply here so that everyone can see it and we don't have multiple people working on the same things. 1) Work on figuring out the character model formats and also the animations in the new zones. 2) Work on making the WLD convertor output a fully packaged EQG complete with proper placeable objects and all. 3) Write a decent UI implementation to replace my half-assed one. 4) Rewrite the zone loading code. I'm currently working on this. Thanks to everyone who has helped out :) Happy Hacking, Lord Daeken M. BlackBlade (Cody Brocious) Edit: I usually spell implement 'impliment', even though I know the proper spelling of it... freaky :P |
You are probably better off using STL instead of a custom linked list. The original way that EQEMu stored entities was horrible and was a pain in the ass to change when I noticed how horrible it was.
EDIT: For the love of god it is implement |
Quote:
Not to mention that whole hatred of the STL and everything associated with it :P |
Yeah, that would be a problem. Still, linked-lists are not the best choice. If you are going to store all mobs(npcs+players) you probably want them stored in a r-b binary tree based on id instead of a linked-list. Hell if you want store them in a linked list but have a way of referencing them better than iterating through the linked list.
|
Quote:
|
I'm less hopeful about being able to figure out the character models and animation details. I can't decide if I should look at that, the new zone lighting information, or making a loader dll for my engine for old style zones first.
|
Quote:
The lighting data should be very simple and pretty much trivial to RE. As for making a loader DLL... sounds like *cough* fun :P |
Quote:
|
Not to worry...I've been working on mob animation and I believe I've figured it out...
In the 0x12 fragment, we *thought* that the fields were like this: RotateDenominator RotateXNumerator RotateYNumerator RotateZNumerator TranslateXNumerator TranslateYNumerator TranslateZNumerator TranslateDenominator Where they were either 4 bytes or eight bytes, depending on a flag. The translate stuff is okay, but the rotation stuff isn't. Actually they are Euler parameters, and the fields should be like this: E0 E1 E2 E3 TranslateXNumerator TranslateYNumerator TranslateZNumerator TranslateDenominator You animate a mob in this way: from the Euler parameters E0...E3, form a 3x3 transformation matrix. The matrix describes a rotation around an arbitrary axis. Then, instead of rotating around X, Y, and Z as before, multiply the matrix by the (X, Y, Z) position vector for the vertex: V' = VM Then translate as before. The matrix multiplications, like the rotations we did earlier as well as the translations, are cumulative. Here is an example code snippet (this routine is actually nested in a larger one and not all variables it uses are declared here): Code:
Procedure CalculatePieceInfo(Frame: Single; Index,LastIndex: Integer; XOfs,YOfs,ZOfs: Double); WC |
Very cool WC, but that's WLD-only, right?
Have you taken a look at the mob animation for the new file formats? |
Nope...I'm only tackling WLD at the moment...I plan on looking at the new stuff at some point, but I have a lot on my plate at the moment (more than you know, :wink: ) I have a strong suspiction that mathematically the new stuff will be similar.
WC |
Quote:
I'm working on some stuff alongside OpenEQ, so I can't devote all of my time to it right now, otherwise I'd be working on that stuff already hehe |
All times are GMT -4. The time now is 09:29 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.