Network updates contributed by Oliver Delise.
This commit is contained in:
parent
7a56d332ad
commit
0660ea821a
11 changed files with 153 additions and 51 deletions
|
@ -539,13 +539,16 @@ void NetIdDialog_OK (puObject *)
|
||||||
int PauseMode = t->getPause();
|
int PauseMode = t->getPause();
|
||||||
if(!PauseMode)
|
if(!PauseMode)
|
||||||
t->togglePauseMode();
|
t->togglePauseMode();
|
||||||
|
/*
|
||||||
char *s;
|
The following needs some cleanup because
|
||||||
NetIdDialogInput->getValue(&s);
|
"string options.NetId" and "char *net_callsign"
|
||||||
NetId = s;
|
*/
|
||||||
|
NetIdDialogInput->getValue(&net_callsign);
|
||||||
|
NetId = net_callsign;
|
||||||
|
|
||||||
NetIdDialog_Cancel( NULL );
|
NetIdDialog_Cancel( NULL );
|
||||||
current_options.set_net_id( NetId.c_str() );
|
current_options.set_net_id( NetId.c_str() );
|
||||||
|
/* Entering a callsign indicates : user wants Net HUD Info */
|
||||||
net_hud_display = 1;
|
net_hud_display = 1;
|
||||||
|
|
||||||
if( PauseMode != t->getPause() )
|
if( PauseMode != t->getPause() )
|
||||||
|
@ -592,6 +595,13 @@ static void NewNetIdInit(void)
|
||||||
static void net_display_toggle( puObject *cb)
|
static void net_display_toggle( puObject *cb)
|
||||||
{
|
{
|
||||||
net_hud_display = (net_hud_display) ? 0 : 1;
|
net_hud_display = (net_hud_display) ? 0 : 1;
|
||||||
|
printf("Toggle net_hud_display : %d\n", net_hud_display);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void net_blaster_toggle( puObject *cb)
|
||||||
|
{
|
||||||
|
net_blast_toggle = (net_blast_toggle) ? 0 : -1;
|
||||||
|
printf("Toggle net_blast : %d\n", net_blast_toggle);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************** End Networking **************/
|
/*************** End Networking **************/
|
||||||
|
@ -646,11 +656,12 @@ puCallback optionsSubmenuCb [] = {
|
||||||
#ifdef FG_NETWORK_OLK
|
#ifdef FG_NETWORK_OLK
|
||||||
char *networkSubmenu [] = {
|
char *networkSubmenu [] = {
|
||||||
"Unregister from FGD ", "Send MSG to All", "Send MSG", "Show Pilots", "Register to FGD",
|
"Unregister from FGD ", "Send MSG to All", "Send MSG", "Show Pilots", "Register to FGD",
|
||||||
"Scan for Deamons", "Enter Callsign", "Display Netinfos", "Toggle Display", NULL
|
"Scan for Deamons", "Enter Callsign", "Display Netinfos", "Toggle Display",
|
||||||
|
"Hyper Blast", NULL
|
||||||
};
|
};
|
||||||
puCallback networkSubmenuCb [] = {
|
puCallback networkSubmenuCb [] = {
|
||||||
notCb, notCb, notCb, notCb, notCb, notCb, NewCallSign, notCb,
|
notCb, notCb, notCb, notCb, notCb, notCb, NewCallSign, notCb,
|
||||||
net_display_toggle, NULL
|
net_display_toggle, net_blaster_toggle, NULL
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,9 @@
|
||||||
#include <Math/polar3d.hxx>
|
#include <Math/polar3d.hxx>
|
||||||
#include <Math/fg_random.h>
|
#include <Math/fg_random.h>
|
||||||
#include <Misc/fgpath.hxx>
|
#include <Misc/fgpath.hxx>
|
||||||
|
#ifdef FG_NETWORK_OLK
|
||||||
|
#include <Network/network.h>
|
||||||
|
#endif
|
||||||
#include <Objects/materialmgr.hxx>
|
#include <Objects/materialmgr.hxx>
|
||||||
#include <Scenery/scenery.hxx>
|
#include <Scenery/scenery.hxx>
|
||||||
#include <Scenery/tilemgr.hxx>
|
#include <Scenery/tilemgr.hxx>
|
||||||
|
@ -1121,6 +1124,11 @@ int main( int argc, char **argv ) {
|
||||||
ssgFlatten( tux_obj );
|
ssgFlatten( tux_obj );
|
||||||
ssgStripify( penguin_sel );
|
ssgStripify( penguin_sel );
|
||||||
|
|
||||||
|
#ifdef FG_NETWORK_OLK
|
||||||
|
// Do the network intialization
|
||||||
|
printf("Multipilot mode %s\n", fg_net_init() );
|
||||||
|
#endif
|
||||||
|
|
||||||
scene->addKid( terrain );
|
scene->addKid( terrain );
|
||||||
scene->addKid( penguin_sel );
|
scene->addKid( penguin_sel );
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,9 @@ bool global_fullscreen = true;
|
||||||
#include <Debug/logstream.hxx>
|
#include <Debug/logstream.hxx>
|
||||||
#include <FDM/flight.hxx>
|
#include <FDM/flight.hxx>
|
||||||
#include <Misc/fgstream.hxx>
|
#include <Misc/fgstream.hxx>
|
||||||
|
#ifdef FG_NETWORK_OLK
|
||||||
|
# include <Network/network.h>
|
||||||
|
#endif
|
||||||
#include <Time/fg_time.hxx>
|
#include <Time/fg_time.hxx>
|
||||||
|
|
||||||
#include "options.hxx"
|
#include "options.hxx"
|
||||||
|
@ -201,7 +204,7 @@ fgOPTIONS::fgOPTIONS() :
|
||||||
}
|
}
|
||||||
|
|
||||||
airport_id = ""; // default airport id
|
airport_id = ""; // default airport id
|
||||||
net_id = "";
|
net_id = "Johnney"; // default pilot's name
|
||||||
|
|
||||||
// initialize port config string list
|
// initialize port config string list
|
||||||
port_options_list.erase ( port_options_list.begin(),
|
port_options_list.erase ( port_options_list.begin(),
|
||||||
|
@ -661,6 +664,12 @@ int fgOPTIONS::parse_option( const string& arg ) {
|
||||||
tris_or_culled = 1;
|
tris_or_culled = 1;
|
||||||
} else if ( arg.find( "--serial=" ) != string::npos ) {
|
} else if ( arg.find( "--serial=" ) != string::npos ) {
|
||||||
parse_serial( arg.substr(9) );
|
parse_serial( arg.substr(9) );
|
||||||
|
#ifdef FG_NETWORK_OLK
|
||||||
|
} else if ( arg == "--net-hud" ) {
|
||||||
|
net_hud_display = 1;
|
||||||
|
} else if ( arg.find( "--net-id=") != string::npos ) {
|
||||||
|
net_id = arg.substr( 9 );
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
|
FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
|
||||||
return FG_OPTIONS_ERROR;
|
return FG_OPTIONS_ERROR;
|
||||||
|
@ -801,11 +810,16 @@ void fgOPTIONS::usage ( void ) {
|
||||||
printf("\t--time-offset=[+-]hh:mm:ss: offset local time by this amount\n");
|
printf("\t--time-offset=[+-]hh:mm:ss: offset local time by this amount\n");
|
||||||
printf("\t--start-date-gmt=yyyy:mm:dd:hh:mm:ss: specify a starting date/time. Time is Greenwich Mean Time\n");
|
printf("\t--start-date-gmt=yyyy:mm:dd:hh:mm:ss: specify a starting date/time. Time is Greenwich Mean Time\n");
|
||||||
printf("\t--start-date-lst=yyyy:mm:dd:hh:mm:ss: specify a starting date/time. Uses local sidereal time\n");
|
printf("\t--start-date-lst=yyyy:mm:dd:hh:mm:ss: specify a starting date/time. Uses local sidereal time\n");
|
||||||
|
#ifdef FG_NETWORK_OLK
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
printf("Network Options:\n");
|
||||||
|
printf("\t--net-hud: Hud displays network info\n");
|
||||||
|
printf("\t--net-id=name: specify your own callsign\n");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
fgOPTIONS::~fgOPTIONS( void ) {
|
fgOPTIONS::~fgOPTIONS( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
8
src/Network/FILES
Normal file
8
src/Network/FILES
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
FILES - This file, describing the other files
|
||||||
|
README - containing Network info
|
||||||
|
Makefile.am -
|
||||||
|
net_hud.cxx - display found player's info in bottom/left part of HUD
|
||||||
|
network.cxx - initialization of netcode and vars
|
||||||
|
network.h - declaration of used vars and functions for libnetwork.a
|
||||||
|
should be included from other files using libnetwork
|
||||||
|
Tools - directory containing network tools and toys
|
|
@ -1,5 +1,5 @@
|
||||||
noinst_LIBRARIES = libNetwork.a
|
noinst_LIBRARIES = libNetwork.a
|
||||||
|
|
||||||
libNetwork_a_SOURCES = net_hud.cxx net_hud.h network.h
|
libNetwork_a_SOURCES = net_hud.cxx network.cxx network.h
|
||||||
|
|
||||||
INCLUDES += -I$(top_builddir) -I$(top_builddir)/Lib -I$(top_builddir)/Simulator
|
INCLUDES += -I$(top_builddir) -I$(top_builddir)/Lib -I$(top_builddir)/Simulator
|
||||||
|
|
|
@ -5,6 +5,8 @@ related code.
|
||||||
For the moment all you get is a new menu entry "Network" with the
|
For the moment all you get is a new menu entry "Network" with the
|
||||||
folowing entries:
|
folowing entries:
|
||||||
|
|
||||||
|
- Hyper Blast : Toggles between LaRCsim and a tuned Flight-Model
|
||||||
|
you can change between both "on the fly "
|
||||||
- Toggle Display : enable/disable info (Lat/Lon/Alt) about found player
|
- Toggle Display : enable/disable info (Lat/Lon/Alt) about found player
|
||||||
well, by now it will be you. ;-))
|
well, by now it will be you. ;-))
|
||||||
- Display Netinfos : n.i. will display more detailed information
|
- Display Netinfos : n.i. will display more detailed information
|
||||||
|
@ -23,8 +25,8 @@ You don't need a net-access to test this new stuff since it is just an idea
|
||||||
of how to incorporate a Multi-Pilot Mode in FGFS.
|
of how to incorporate a Multi-Pilot Mode in FGFS.
|
||||||
|
|
||||||
There are two security options:
|
There are two security options:
|
||||||
a) Compiletime - commenting the "#define FGD" in "network.h" disables _ALL_
|
a) Compiletime - commenting the "#define FG_NETWORK_OLK" in "network.h"
|
||||||
network related stuff in case of problems, should not happen ;-)
|
disables ALL network related stuff in case of problems, shouldn't occur ;-)
|
||||||
b) Runtime - setting the "int net_hud_display" variable to 0 disables any
|
b) Runtime - setting the "int net_hud_display" variable to 0 disables any
|
||||||
network display (default)
|
network display (default)
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
# include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
#ifdef HAVE_WINDOWS_H
|
#ifdef HAVE_WINDOWS_H
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -59,20 +61,22 @@ extern "C" {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <Main/options.hxx>
|
||||||
#include <Cockpit/hud.hxx>
|
#include <Cockpit/hud.hxx>
|
||||||
|
|
||||||
int net_hud_display = 0;
|
extern char *net_callsign;
|
||||||
|
|
||||||
|
|
||||||
void net_hud_update(){
|
void net_hud_update(){
|
||||||
char fgd_str[80];
|
static char fgd_str[80];
|
||||||
char *fgd_pilot;
|
static float fgd_lon, fgd_lat, fgd_alt;
|
||||||
float fgd_lon, fgd_lat, fgd_alt;
|
|
||||||
|
|
||||||
sprintf( fgd_pilot, "%s", current_options.get_net_id().c_str() );
|
|
||||||
fgd_lon = get_longitude();
|
fgd_lon = get_longitude();
|
||||||
fgd_lat = get_latitude();
|
fgd_lat = get_latitude();
|
||||||
fgd_alt = get_altitude();
|
fgd_alt = get_altitude();
|
||||||
sprintf(fgd_str,"Found %s %3.3f %3.3f", fgd_pilot, fgd_lat, fgd_lon);
|
sprintf(fgd_str,"Found %s %3.3f %3.3f", net_callsign, fgd_lat, fgd_lon);
|
||||||
// printf("Lon: %.3f Lat: %.3f Alt: %.f\n", fgd_lon, fgd_lat, fgd_alt);
|
// HUD_TextList.add( fgText( 40, 18, net_callsign) );
|
||||||
HUD_TextList.add( fgText( 40, 18 ,fgd_str) );
|
HUD_TextList.add( fgText( 40, 18, fgd_str) );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
// net_hud.h -- data structures for managing network.
|
|
||||||
//
|
|
||||||
// Written by Oliver Delise, started May 1999.
|
|
||||||
//
|
|
||||||
// Copyleft (C) 1999 Oliver Delise - delise@rp-plus.de
|
|
||||||
//
|
|
||||||
// This program is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU General Public License as
|
|
||||||
// published by the Free Software Foundation; either version 2 of the
|
|
||||||
// License, or (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful, but
|
|
||||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
// General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with this program; if not, write to the Free Software
|
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
|
|
||||||
|
|
||||||
#define FGD
|
|
||||||
|
|
||||||
#include <Cockpit/hud.hxx>
|
|
79
src/Network/network.cxx
Normal file
79
src/Network/network.cxx
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
// network.cxx -- data structures for initializing & managing network.
|
||||||
|
//
|
||||||
|
// Written by Oliver Delise, started May 1999.
|
||||||
|
//
|
||||||
|
// Copyleft (C) 1999 Oliver Delise - delise@rp-plus.de
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU General Public License as
|
||||||
|
// published by the Free Software Foundation; either version 2 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but
|
||||||
|
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
#ifdef HAVE_WINDOWS_H
|
||||||
|
# include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
# define exception c_exception
|
||||||
|
#endif
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#include <GL/glut.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_VALUES_H
|
||||||
|
# include <values.h> // for MAXINT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
#include <Debug/logstream.hxx>
|
||||||
|
#include <GUI/gui.h>
|
||||||
|
#include <Include/fg_constants.h>
|
||||||
|
#include <Main/options.hxx>
|
||||||
|
#include <Math/fg_random.h>
|
||||||
|
#include <Math/mat3.h>
|
||||||
|
#include <Math/polar3d.hxx>
|
||||||
|
#include <Scenery/scenery.hxx>
|
||||||
|
#include <Time/fg_timer.hxx>
|
||||||
|
|
||||||
|
#if defined ( __sun__ ) || defined ( __sgi )
|
||||||
|
extern "C" {
|
||||||
|
extern void *memmove(void *, const void *, size_t);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <Main/options.hxx>
|
||||||
|
|
||||||
|
int net_blast_toggle;
|
||||||
|
int net_hud_display;
|
||||||
|
char *net_callsign;
|
||||||
|
|
||||||
|
char *fg_net_init( void ){
|
||||||
|
|
||||||
|
// We enable display of netinfos only if user wishes it via cmd-line param
|
||||||
|
net_hud_display = (net_hud_display == 0) ? 0 : 1;
|
||||||
|
// Get pilot's name from options, can be modified at runtime via menu
|
||||||
|
net_callsign = (char *) current_options.get_net_id().c_str();
|
||||||
|
// Disable Blast Mode -1 = Disable, 0 = Enable
|
||||||
|
net_blast_toggle = -1;
|
||||||
|
return("activated");
|
||||||
|
}
|
|
@ -25,8 +25,10 @@
|
||||||
|
|
||||||
#define FGD
|
#define FGD
|
||||||
|
|
||||||
|
extern char *net_callsign;
|
||||||
extern int net_hud_display;
|
extern int net_hud_display;
|
||||||
|
extern int net_blast_toggle;
|
||||||
|
extern char *fg_net_init( void );
|
||||||
extern void net_hud_update( void );
|
extern void net_hud_update( void );
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Add table
Reference in a new issue