Project Agamemnon Omega-Class Destroyer (Babylon 5)

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
Just wanted to drop in and give an update. I have not had any further opportunity to work on the Agamemnon lately. Long work days, as we continue implementation of a new ERP system at my company, have left me not even wanting to look at a computer when I get home, let alone on the weekends (other than a little minecraft once in a while). That's not to say I don't want to work on this project. Nothing could be further from the truth. I just need some time in the evenings away from coding after staring at SQL and VBScript all day long.

Work will resume, eventually. I have a lot of ideas, things that I want to do better than on the Cortez. Regardless, if anyone wants to add/contribute in the meantime, the github repository is there.

Regards,
n122vu
 

XeroZohar

New member
Joined
Jan 31, 2012
Messages
15
Reaction score
0
Points
0
Just wanted to drop in and give an update. I have not had any further opportunity to work on the Agamemnon lately. Long work days, as we continue implementation of a new ERP system at my company, have left me not even wanting to look at a computer when I get home, let alone on the weekends (other than a little minecraft once in a while). That's not to say I don't want to work on this project. Nothing could be further from the truth. I just need some time in the evenings away from coding after staring at SQL and VBScript all day long.

Work will resume, eventually. I have a lot of ideas, things that I want to do better than on the Cortez. Regardless, if anyone wants to add/contribute in the meantime, the github repository is there.

Regards,
n122vu
Don't worry about it. I'm sure we've all been there at one time or another. Just get to it when the spirit (of Valen?) moves you. :cheers:
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
As posted in the screenshot thread, work on the project has resumed. Continuing to work on visual improvements at this point, focusing on reworking the normal maps and adjusting specular settings in the materials. Will post a few screenshots later of my progress.

Plans are to wrap up these improvements today or tomorrow then turn my attention back to coding the 2D panel. A virtual cockpit is planned for a future release but will not be part of the first version I upload to OH.

---------- Post added at 09:53 PM ---------- Previous post was at 06:38 AM ----------

As promised, a couple images of the progress on the visual improvement of the Agamemnon.

Here, a mostly-full-length shot of the Agamemnon shows the improvement of the normal maps and the specular reflection properties of the various hull materials.


Compare this to a similar shot from when normal maps were first added to the project:


Here is a close-up of a portion of the rear hull. I'm pleased with how much better this looks. I don't have a comparison shot for this one, but trust me, I probably didn't do a close-up for a reason.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
After many busy months, I will soon have time to resume work on my Orbiter addon projects. Having said that, I have made the decision at this time to officially suspend work on the Agamemnon. With the upcoming release of OrbiterSound 4.0, I feel it would be best to go back and update the EAS Cortez to be compatible, and to also take better advantage of some of the features available in the D3D9 & D3D11 clients for that vessel.

There are just so many ideas I had for that ship that I honestly feel like I released it in an unfinished state. Plus, some of the new sound features available in OS4.0 will allow me to realize some of those ideas to an even greater degree than I originally hoped.

As a side note, if anyone would like to continue to work on the Agamemnon while I suspend my work, just let me know. The source code is available, and I can provide my updated meshes & textures. I am not asking for someone to hand it off to. I still want to finish and release this one. I just want to make it clear that if someone else wanted to run with it, I'd have no problems releasing my work to them.

Regards,
n122vu
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
So, nearly 7 years later, I'm picking this back up. I still have the code, but unfortunately the mesh work I did may be lost, so I'll have to re-familiarize myself with the tools and methods I used, or newer/better alternatives.

The good news is, I've managed to get the DLL compiled in VS2017 for Orbiter 2016, minus OrbiterSound and UMMU. Unfortunately, the centrifuge section isn't animating, mainly because clbkConsumeBufferedKey isn't firing. I'm still troubleshooting, but at this point I'm stumped. Here's the code:

Code:
int Agamemnon::clbkConsumeBufferedKey (DWORD key, bool down, char *kstate)
{
		if (!down) return 0; // only process keydown events	

		//Start/Stop the gravity wheel
		if(key==OAPI_KEY_K&&!KEYMOD_SHIFT(kstate)&&!KEYMOD_CONTROL(kstate))
		{

			if (gravwheel_run == 0)
			{
				gravwheel_run = 1;
				return 1;
			}

			if (gravwheel_run == 1)
			{
				gravwheel_run = 0;
				return 1;
			}			
		}
	
	return 0;
}
Since this code isn't firing, gravwheel_run never gets set to 1.

Pretty much identical to what the Cortez used (which I'll also be bringing up to 2016 compatibility shortly).
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
Something must be amiss with the property pages for VS2017 I downloaded off the hangar. I configured them just as in the YouTube video, however the compiler is creating additional libraries and objects alongside the dll. I believe this is what is causing the issue. Any idea which setting in the property sheets controls this? Can't seem to find it, and Google is of no help so far.
 
Last edited:

asbjos

tuanibrO
Addon Developer
Joined
Jun 22, 2011
Messages
611
Reaction score
29
Points
28
Location
This place called "home".
I'm no C++ pro, so don't know how it does return's, but this seems a bit dangerous:
Code:
if (gravwheel_run == 0)
{
	gravwheel_run = 1;
	return 1;
}

if (gravwheel_run == 1)
{
	gravwheel_run = 0;
	return 1;
}
It should be an if-else statement instead. Or possibly an elseif.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
35,546
Reaction score
64
Points
138
Location
Wolfsburg
I'm no C++ pro, so don't know how it does return's, but this seems a bit dangerous:
Code:
if (gravwheel_run == 0)
{
    gravwheel_run = 1;
    return 1;
}

if (gravwheel_run == 1)
{
    gravwheel_run = 0;
    return 1;
}
It should be an if-else statement instead. Or possibly an elseif.
On the side of maintainability you are right, this is a case for an if-else statement.

But its otherwise perfectly fine code. It leaves the current function instantly, everything after the return is unreachable code. But if gravwheel_run is not correctly initialized or in a value other than 1 or 0, it would never return in those statements.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
gravwheel_run is initialized to zero. And I've confirmed its value using the debug string.

The clbkConsumeBufferedKey always returns zero unless the key press conditions are met. Although you're correct, in this situation it should be an if, elseif statement. I'm not sure why this worked in the past, or where I got the idea to code it this way. I'll try correcting that this evening, although I'm not sure it will make a difference since it doesn't appear to even be making it to this code.
 

n122vu

Addon Developer
Addon Developer
Donator
Joined
Nov 1, 2007
Messages
3,152
Reaction score
1
Points
63
Location
Location, Location
Changing the if statement to an if/else if/else statement had no effect on the issue of the gravwheel_run value not changing. The problem is that clbkConsumeBufferedKey simply is not working at all. Even putting a debug string at the beginning yielded no results.

I still think it's related to the code being compiled into external libraries instead of all in the dll. Building in either debug or release configuration results in the following files in the Modules directory:

Agamemnon.dll
Agamemnon.exp
Agamemnon.lib

I do not recall seeing these files in older builds using older versions of VS. Any ideas?
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
35,546
Reaction score
64
Points
138
Location
Wolfsburg
The Agamemnon.lib library could be just an interface library. Not needed for Orbiter. You can disable or ignore it.

RTTI would be one candidate. Not sure if the clbkConsumeBufferedKey has the correct signature, I would need to check when I am back in Wolfsburg.
 
Top