1
0
Fork 0

Incorporated Oliver's initial networking code.

This commit is contained in:
curt 1999-06-22 21:24:31 +00:00
parent 116e3913ae
commit 540849b9c3
7 changed files with 125 additions and 3 deletions

View file

@ -49,6 +49,9 @@
release build */
#undef FG_NDEBUG
/* Define to include Oliver's networking support */
#undef FG_NETWORK_OLK
/* Define to the type of elements in the array set by `getgroups'.
Usually this is either `int' or `gid_t'. */
#undef GETGROUPS_T

View file

@ -50,6 +50,7 @@
#include <Math/fg_random.h>
#include <Math/mat3.h>
#include <Math/polar3d.hxx>
#include <Network/network.h>
#include <Scenery/scenery.hxx>
#include <Time/fg_timer.hxx>
@ -1105,6 +1106,12 @@ void fgUpdateHUD( void ) {
char *gmt_str = get_formated_gmt_time();
HUD_TextList.add( fgText( 40, 10, gmt_str) );
#ifdef FG_NETWORK_OLK
if ( net_hud_display ) {
net_hud_update();
}
#endif
HUD_TextList.draw();
line_width = (current_options.get_xsize() > 1000) ? 1.0 : 0.5;

View file

@ -58,6 +58,7 @@
#include <Main/fg_init.hxx>
#include <Main/views.hxx>
#include <Misc/fgpath.hxx>
#include <Network/network.h>
#include <Time/fg_time.hxx>
#include "gui.h"
@ -507,6 +508,91 @@ static void NewAirportInit(void)
FG_FINALIZE_PUI_DIALOG( AptDialog );
}
/// The beginnings of networking :-)
// Needs cleaning up but works
// These statics should disapear when this is a class
static puDialogBox *NetIdDialog = 0;
static puFrame *NetIdDialogFrame = 0;
static puText *NetIdDialogMessage = 0;
static puInput *NetIdDialogInput = 0;
static char NewNetId[16];
static char NewNetIdLabel[] = "Enter New Callsign";
static puOneShot *NetIdDialogOkButton = 0;
static puOneShot *NetIdDialogCancelButton = 0;
void NetIdDialog_Cancel(puObject *)
{
FG_POP_PUI_DIALOG( NetIdDialog );
}
void NetIdDialog_OK (puObject *)
{
string NetId;
FGTime *t = FGTime::cur_time_params;
int PauseMode = t->getPause();
if(!PauseMode)
t->togglePauseMode();
char *s;
NetIdDialogInput->getValue(&s);
NetId = s;
NetIdDialog_Cancel( NULL );
current_options.set_net_id( NetId.c_str() );
net_hud_display = 1;
if( PauseMode != t->getPause() )
t->togglePauseMode();
}
void NewCallSign(puObject *cb)
{
sprintf( NewNetId, "%s", current_options.get_net_id().c_str() );
NetIdDialogInput->setValue( NewNetId );
FG_PUSH_PUI_DIALOG( NetIdDialog );
}
static void NewNetIdInit(void)
{
sprintf( NewNetId, "%s", current_options.get_net_id().c_str() );
int len = 150 - puGetStringWidth( puGetDefaultLabelFont(),
NewNetIdLabel ) / 2;
NetIdDialog = new puDialogBox (150, 50);
{
NetIdDialogFrame = new puFrame (0,0,350, 150);
NetIdDialogMessage = new puText (len, 110);
NetIdDialogMessage -> setLabel (NewNetIdLabel);
NetIdDialogInput = new puInput (50, 70, 300, 100);
NetIdDialogInput -> setValue (NewNetId);
NetIdDialogInput -> acceptInput();
NetIdDialogOkButton = new puOneShot (50, 10, 110, 50);
NetIdDialogOkButton -> setLegend (gui_msg_OK);
NetIdDialogOkButton -> setCallback (NetIdDialog_OK);
NetIdDialogOkButton -> makeReturnDefault(TRUE);
NetIdDialogCancelButton = new puOneShot (240, 10, 300, 50);
NetIdDialogCancelButton -> setLegend (gui_msg_CANCEL);
NetIdDialogCancelButton -> setCallback (NetIdDialog_Cancel);
}
FG_FINALIZE_PUI_DIALOG( NetIdDialog );
}
static void net_display_toggle( puObject *cb)
{
net_hud_display = (net_hud_display) ? 0 : 1;
}
/*************** End Networking **************/
/* -----------------------------------------------------------------------
The menu stuff
@ -553,6 +639,17 @@ puCallback optionsSubmenuCb [] = {
notCb, notCb, NULL
};
#ifdef FG_NETWORK_OLK
char *networkSubmenu [] = {
"Unregister from FGD ", "Send MSG to All", "Send MSG", "Show Pilots", "Register to FGD",
"Scan for Deamons", "Enter Callsign", "Display Netinfos", "Toggle Display", NULL
};
puCallback networkSubmenuCb [] = {
notCb, notCb, notCb, notCb, notCb, notCb, NewCallSign, notCb,
net_display_toggle, NULL
};
#endif
char *helpSubmenu [] = {
"About...", "Help", NULL
};
@ -626,6 +723,9 @@ void guiInit()
// Set up our Dialog Boxes
ConfirmExitDialogInit();
NewAirportInit();
#ifdef FG_NETWORK_OLK
NewNetIdInit();
#endif
mkDialogInit();
// Make the menu bar
@ -636,6 +736,9 @@ void guiInit()
mainMenuBar -> add_submenu ("Aircraft", aircraftSubmenu, aircraftSubmenuCb);
mainMenuBar -> add_submenu ("Environment", environmentSubmenu, environmentSubmenuCb);
mainMenuBar -> add_submenu ("Options", optionsSubmenu, optionsSubmenuCb);
#ifdef FG_NETWORK_OLK
mainMenuBar -> add_submenu ("Network", networkSubmenu, networkSubmenuCb);
#endif
mainMenuBar -> add_submenu ("Help", helpSubmenu, helpSubmenuCb);
mainMenuBar-> close ();
// Set up menu bar toggle

View file

@ -58,6 +58,7 @@ fgfs_LDADD = \
$(top_builddir)/Simulator/GUI/libGUI.a \
$(top_builddir)/Simulator/Scenery/libScenery.a \
$(top_builddir)/Simulator/Airports/libAirports.a \
$(top_builddir)/Simulator/Network/libNetwork.a \
$(top_builddir)/Simulator/Objects/libObjects.a \
$(top_builddir)/Simulator/Time/libTime.a \
$(top_builddir)/Simulator/Weather/libWeather.a \

View file

@ -427,7 +427,7 @@ static void fgRenderFrame( void ) {
sgMultMat4( sgVIEW, current_view.sgVIEW, sgTRANS );
ssgSetCamera( sgVIEW );
// ssgSetCamera( current_view.sgVIEW );
ssgCullAndDraw( scene );
// ssgCullAndDraw( scene );
}
@ -1066,8 +1066,10 @@ int main( int argc, char **argv ) {
// distribution) specifically from the ssg tux example
//
ssgModelPath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
ssgTexturePath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
// ssgModelPath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
// ssgTexturePath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
ssgModelPath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
ssgTexturePath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
scene = new ssgRoot;
penguin = new ssgTransform;

View file

@ -201,6 +201,7 @@ fgOPTIONS::fgOPTIONS() :
}
airport_id = ""; // default airport id
net_id = "";
// initialize port config string list
port_options_list.erase ( port_options_list.begin(),

View file

@ -151,6 +151,9 @@ private:
// Serial port configuration strings
str_container port_options_list;
// Network options
string net_id;
public:
@ -210,6 +213,7 @@ public:
inline str_container get_port_options_list() const {
return port_options_list;
}
inline string get_net_id() const { return net_id; }
// Update functions
inline void set_airport_id( const string id ) { airport_id = id; }
@ -230,6 +234,7 @@ public:
void toggle_panel();
inline void set_xsize( int x ) { xsize= x; }
inline void set_ysize( int y ) { xsize= y; }
inline void set_net_id( const string id ) { net_id = id; }
private: