X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FCockpit%2Fhud.cxx;h=a8b7f5dd6ffd58611ef08da794846310f0bf3b92;hb=ddda2c68d5000377c7f76193f27ef78645fe316e;hp=fa795c535a5134d18fe2b75de7914fb30564b311;hpb=471fecd72c1a7c3f1bf3a6fc08ee0a4250e55a20;p=flightgear.git diff --git a/src/Cockpit/hud.cxx b/src/Cockpit/hud.cxx index fa795c535..a8b7f5dd6 100644 --- a/src/Cockpit/hud.cxx +++ b/src/Cockpit/hud.cxx @@ -84,19 +84,12 @@ int HUD_style = 0; float HUD_matrix[16]; -//$$$ begin - added, Neetha, 28 Nov 2k - static string name; static int x; static int y; static UINT width; static UINT height; -static float factor; static float span_units; -static float division_units; -static float minor_division = 0; -static UINT screen_hole; -static UINT lbl_pos; static bool working; static string loadfn; static UINT options; @@ -110,13 +103,9 @@ static int dp_showing = 0; static string label_format; static string prelabel; static string postlabel; -static int justi; -static int blinking; static float maxBankAngle; static float maxSlipAngle; static UINT gap_width; -static bool latitude; -static bool longitude; static bool tick_bottom; static bool tick_top; static bool tick_right; @@ -129,43 +118,21 @@ static float marker_off; static string type; static bool enable_pointer; static string type_pointer; -static bool frl_spot; -static bool target; -static bool vel_vector; -static bool drift; -static bool alpha; -static bool energy; -static bool climb_dive; -static bool glide; -static float glide_slope_val; -static bool worm_energy; -static bool waypoint; static string type_tick; static string length_tick; -static bool label_box; -static int digits; static float radius; static int divisions; static int zoom; -static int zenith; -static int nadir ; -static int hat; static bool tsi; static float rad; static FLTFNPTR load_fn; -static fgLabelJust justification; -static const char *pre_label_string = 0; -static const char *post_label_string = 0; int readHud( istream &input ); int readInstrument ( const SGPropertyNode * node); -static instr_item * readLadder ( const SGPropertyNode * node); static instr_item * readCard ( const SGPropertyNode * node); -static instr_item * readLabel( const SGPropertyNode * node); static instr_item * readTBI( const SGPropertyNode * node); -//$$$ end - added, Neetha, 28 Nov 2k static void drawHUD(); static void fgUpdateHUDVirtual(); @@ -175,7 +142,7 @@ public: RECT rect; locRECT( UINT left, UINT top, UINT right, UINT bottom); - RECT get_rect(void) { return rect;} + RECT get_rect(void) { return rect; } }; locRECT :: locRECT( UINT left, UINT top, UINT right, UINT bottom) @@ -198,65 +165,6 @@ locRECT :: locRECT( UINT left, UINT top, UINT right, UINT bottom) // mustange and the engine readouts of a B36! // -#define INSTRDEFS 21 - -//$$$ begin - added, Neetha, 28 Nov 2k -static instr_item * -readLadder(const SGPropertyNode * node) -{ - - instr_item *p; - - name = node->getStringValue("name"); - x = node->getIntValue("x"); - y = node->getIntValue("y"); - width = node->getIntValue("width"); - height = node->getIntValue("height"); - factor = node->getFloatValue("compression_factor"); - span_units = node->getFloatValue("span_units"); - division_units = node->getFloatValue("division_units"); - screen_hole = node->getIntValue("screen_hole"); - lbl_pos = node->getIntValue("lbl_pos"); - frl_spot = node->getBoolValue("enable_frl",false); - target = node->getBoolValue("enable_target_spot",false); - vel_vector = node->getBoolValue("enable_velocity_vector",false); - drift = node->getBoolValue("enable_drift_marker",false); - alpha = node->getBoolValue("enable_alpha_bracket",false); - energy = node->getBoolValue("enable_energy_marker",false); - climb_dive = node->getBoolValue("enable_climb_dive_marker",false); - glide = node->getBoolValue("enable_glide_slope_marker",false); - glide_slope_val = node->getFloatValue("glide_slope",-4.0); - worm_energy = node->getBoolValue("enable_energy_marker",false); - waypoint = node->getBoolValue("enable_waypoint_marker",false); - working = node->getBoolValue("working"); - zenith = node->getIntValue("zenith"); - nadir = node->getIntValue("nadir"); - hat = node->getIntValue("hat"); - // The factor assumes a base of 55 degrees per 640 pixels. - // Invert to convert the "compression" factor to a - // pixels-per-degree number. - if (fgGetBool("/sim/hud/enable3d", true)) { - if (HUD_style == 1) { - factor = 1; - factor = (640./55.) / factor; - } - } - - SG_LOG(SG_INPUT, SG_INFO, "Done reading instrument " << name); - - p = (instr_item *) new HudLadder( name, x, y, - width, height, factor, - get_roll, get_pitch, - span_units, division_units, minor_division, - screen_hole, lbl_pos, frl_spot, target, vel_vector, - drift, alpha, energy, climb_dive, - glide, glide_slope_val, worm_energy, - waypoint, working, zenith, nadir, hat); - - return p; - -} //end readLadder - static instr_item * readCard(const SGPropertyNode * node) { @@ -382,165 +290,6 @@ readCard(const SGPropertyNode * node) return p; }// end readCard -static instr_item * -readLabel(const SGPropertyNode * node) -{ - instr_item *p; - - int font_size = (fgGetInt("/sim/startup/xsize") > 1000) ? HUD_FONT_LARGE : HUD_FONT_SMALL; - - name = node->getStringValue("name"); - x = node->getIntValue("x"); - y = node->getIntValue("y"); - width = node->getIntValue("width"); - height = node->getIntValue("height"); - loadfn = node->getStringValue("data_source"); - label_format = node->getStringValue("label_format"); - prelabel = node->getStringValue("pre_label_string"); - postlabel = node->getStringValue("post_label_string"); - scaling = node->getFloatValue("scale_data"); - options = node->getIntValue("options"); - justi = node->getIntValue("justification"); - blinking = node->getIntValue("blinking"); - latitude = node->getBoolValue("latitude",false); - longitude = node->getBoolValue("longitude",false); - label_box = node->getBoolValue("label_box",false); - working = node->getBoolValue("working"); - digits = node->getIntValue("digits"); - - - SG_LOG(SG_INPUT, SG_INFO, "Done reading instrument " << name); - - - if ( justi == 0 ) { - justification = LEFT_JUST; - } else { - if ( justi == 1 ) { - justification = CENTER_JUST; - } else { - if ( justi == 2 ) { - justification = RIGHT_JUST; - } - } - } - - if ( prelabel == "NULL" ) { - pre_label_string = NULL; - } else { - if ( prelabel == "blank" ) { - pre_label_string = " "; - } else { - pre_label_string = prelabel.c_str(); - } - } - - if ( postlabel == "blank" ) { - post_label_string = " "; - } else { - if ( postlabel == "NULL" ) { - post_label_string = NULL; - } else { - if ( postlabel == "units" ) { - post_label_string = units; - } else { - post_label_string = postlabel.c_str(); - } - } - } - -#ifdef ENABLE_SP_FMDS - if ( loadfn== "aux1" ) { - load_fn = get_aux1; - } else if ( loadfn == "aux2" ) { - load_fn = get_aux2; - } else if ( loadfn == "aux3" ) { - load_fn = get_aux3; - } else if ( loadfn == "aux4" ) { - load_fn = get_aux4; - } else if ( loadfn == "aux5" ) { - load_fn = get_aux5; - } else if ( loadfn == "aux6" ) { - load_fn = get_aux6; - } else if ( loadfn == "aux7" ) { - load_fn = get_aux7; - } else if ( loadfn == "aux8" ) { - load_fn = get_aux8; - } else if ( loadfn == "aux9" ) { - load_fn = get_aux9; - } else if ( loadfn == "aux10" ) { - load_fn = get_aux10; - } else if ( loadfn == "aux11" ) { - load_fn = get_aux11; - } else if ( loadfn == "aux12" ) { - load_fn = get_aux12; - } else if ( loadfn == "aux13" ) { - load_fn = get_aux13; - } else if ( loadfn == "aux14" ) { - load_fn = get_aux14; - } else if ( loadfn == "aux15" ) { - load_fn = get_aux15; - } else if ( loadfn == "aux16" ) { - load_fn = get_aux16; - } else if ( loadfn == "aux17" ) { - load_fn = get_aux17; - } else if ( loadfn == "aux18" ) { - load_fn = get_aux18; - } else -#endif - if ( loadfn == "ax" ) { - load_fn = get_Ax; - } else if ( loadfn == "speed" ) { - load_fn = get_speed; - } else if ( loadfn == "mach" ) { - load_fn = get_mach; - } else if ( loadfn == "altitude" ) { - load_fn = get_altitude; - } else if ( loadfn == "agl" ) { - load_fn = get_agl; - } else if ( loadfn == "framerate" ) { - load_fn = get_frame_rate; - } else if ( loadfn == "heading" ) { - load_fn = get_heading; - } else if ( loadfn == "fov" ) { - load_fn = get_fov; - } else if ( loadfn == "vfc_tris_culled" ) { - load_fn = get_vfc_tris_culled; - } else if ( loadfn == "vfc_tris_drawn" ) { - load_fn = get_vfc_tris_drawn; - } else if ( loadfn == "aoa" ) { - load_fn = get_aoa; - } else if ( loadfn == "latitude" ) { - load_fn = get_latitude; - } else if ( loadfn == "anzg" ) { - load_fn = get_anzg; - } else if ( loadfn == "longitude" ) { - load_fn = get_longitude; - } else if (loadfn=="throttleval") { - load_fn = get_throttleval; - } - - p = (instr_item *) new instr_label ( x, - y, - width, - height, - load_fn, - label_format.c_str(), - pre_label_string, - post_label_string, - scaling, - options, - justification, - font_size, - blinking, - latitude, - longitude, - label_box, - working, - digits); - - return p; -} // end readLabel - static instr_item * readTBI(const SGPropertyNode * node) { @@ -620,56 +369,46 @@ int readInstrument(const SGPropertyNode * node) if (ladder_group != 0) { int nLadders = ladder_group->nChildren(); for (int j = 0; j < nLadders; j++) { - - HIptr = readLadder(ladder_group->getChild(j)); - HUD_deque.insert( HUD_deque.begin(), HIptr); - - }// for - ladders + HIptr = static_cast(new HudLadder(ladder_group->getChild(j))); + HUD_deque.insert(HUD_deque.begin(), HIptr); + } } const SGPropertyNode * card_group = node->getNode("cards"); if (card_group != 0) { int nCards = card_group->nChildren(); for (int j = 0; j < nCards; j++) { - HIptr = readCard(card_group->getChild(j)); - HUD_deque.insert( HUD_deque.begin(), HIptr); - - }//for - cards + HUD_deque.insert(HUD_deque.begin(), HIptr); + } } const SGPropertyNode * label_group = node->getNode("labels"); if (label_group != 0) { int nLabels = label_group->nChildren(); for (int j = 0; j < nLabels; j++) { - - HIptr = readLabel(label_group->getChild(j)); - HUD_deque.insert( HUD_deque.begin(), HIptr); - - }//for - labels + HIptr = static_cast(new instr_label(label_group->getChild(j))); + HUD_deque.insert(HUD_deque.begin(), HIptr); + } } const SGPropertyNode * tbi_group = node->getNode("tbis"); if (tbi_group != 0) { int nTbis = tbi_group->nChildren(); for (int j = 0; j < nTbis; j++) { - HIptr = readTBI(tbi_group->getChild(j)); HUD_deque.insert( HUD_deque.begin(), HIptr); - - }//for - tbis + } } const SGPropertyNode * rwy_group = node->getNode("runways"); if (rwy_group != 0) { int nRwy = rwy_group->nChildren(); for (int j = 0; j < nRwy; j++) { - SG_LOG( SG_COCKPIT, SG_DEBUG, - "************** Reading runway properties" ); + SG_LOG(SG_COCKPIT, SG_DEBUG, "*** Reading runway properties ***"); HIptr = readRunway(rwy_group->getChild(j)); HUD_deque.insert( HUD_deque.begin(), HIptr); - - }//for - runways + } } return 0; }//end readinstrument