GITEdit is a program I'm making to give a visual interface to edit the file, as opposed to the tree view of K-GFF that I despise(not the program, just the layout)...
Currently, the program can:
Load .git files from the .rims, .mods, and override
Parse TLK references
Count the number of each type of file
Provide an interface to each file type
Allows you to input degrees for the bearing and orientation
Compiles each file type into a list
Can delete items from the lists
But I'm at a loss as to what functionality to add to it. I will add the ability to copy and paste item types as soon as I look up the XML parsing. Adding new items of a specific type will be implemented shortly.
Currently, as the program stands, here's what I've got for you:
As an update, the program now saves everything properly, and I've added an interface for the Area Properties(Music settings).
In addition, copy-and-paste works between programs, using XML and the Windows Clipboard. And you can add new items to customize, or past an item as a new instance.
Currently adding support for custom paths(paths for the program to check for .rims/.mods/ or /gits). It supports it now, by the .ini file, but I need to work on implementing it from inside the program...
How are you calculating the conversion? It seems like Perl already has an inbuilt function for it?
Sorry for the late reply.
The orientation for creatures involves rotations on the X and Y axes, which the engine handles in the form of radian rotations around a circle.
When the game handles it, the X Orientation is calculated with the cosine of the angle's measure (most likely in degrees). The Y Orientation is handled with the sine of that same measure.
That is all fine and dandy, except for one issue: Perl deals in radians, and I'm trying to let a user handle the orientation in degrees.
You see, when one gets the X and Y Orientation via scripting within the game, they pass the facing of the object in question in degrees and use the sin(sine) and cos(cosine) functions on the facing. This means that the game handles and treats sin and cos in degrees.
// Get main PC
object oPC = GetFirstPC();
// Set PC's facing to 180 degrees(calculated from the East in-game, which corresponds to the right on the area's map)
// Now get the facing and store it
int iFacing = GetFacing(oPC);
// Here's where Perl and Aurora Engine diverge...
float fXOrientation = cos(iFacing);
float fYOrientation = sin(iFacing);
Notice that I just sent the degrees to the cos and sin functions...
Unfortunately, Perl uses radians for the cos and sin functions, which means that it expects to get passed radians as an argument and will return radians as an answer.
And with 1 Radian = Pi (3.1415926535897932384626433832795 and then some...), no matter what conversion or transformation I apply, I can only get answers that are at or below 180 degrees...
I could modify the .utc and .utw(all that was said above applies to waypoints as well) section to allow for input of the X and Y Orientation, but that would also disable/screw up the circle above it that gives a visual indication of the rotation...
So, what do you guys want me to do here? If anyone can do it, I'd like to talk to this guy, since he was able to do half of what I want/need to do...