-
-
-//====================== Top of HudLadder Class =======================
-HudLadder::HudLadder(const string& name,
- int x,
- int y,
- UINT width,
- UINT height,
- float factr,
- FLTFNPTR ptch_source,
- FLTFNPTR roll_source,
- float span_units,
- float major_div,
- float minor_div,
- UINT screen_hole,
- UINT lbl_pos,
- bool frl_spot,
- bool target,
- bool vel_vec,
- bool drift,
- bool alpha,
- bool energy,
- bool climb,
- bool glide,
- float glide_slope_val,
- bool worm_energy,
- bool waypoint,
- bool working,
- int zenithsymbol,
- int nadirsymbol,
- int hat_marker) :
- dual_instr_item( x, y, width, height,
- ptch_source, roll_source, working, HUDS_RIGHT),
- width_units ( (int)(span_units) ),
- div_units ( (int)(major_div < 0? -major_div: major_div) ),
- minor_div ( (int)(minor_div) ),
- label_pos ( lbl_pos ),
- scr_hole ( screen_hole ),
- vmax ( span_units/2 ),
- vmin ( -vmax ),
- factor ( factr ),
- hudladder_type ( name ),
- frl ( frl_spot ),
- target_spot ( target ),
- velocity_vector ( vel_vec ),
- drift_marker ( drift ),
- alpha_bracket ( alpha ),
- energy_marker ( energy ),
- climb_dive_marker ( climb ),
- glide_slope_marker ( glide ),
- glide_slope ( glide_slope_val),
- energy_worm ( worm_energy),
- waypoint_marker ( waypoint)
-
-
+#include <Main/viewer.hxx>
+
+// FIXME
+extern float get_roll(void);
+extern float get_pitch(void);
+
+
+HudLadder::HudLadder(const SGPropertyNode *node) :
+ dual_instr_item(
+ node->getIntValue("x"),
+ node->getIntValue("y"),
+ node->getIntValue("width"),
+ node->getIntValue("height"),
+ get_roll,
+ get_pitch, // FIXME getter functions from cockpit.cxx
+ node->getBoolValue("working", true),
+ HUDS_RIGHT),
+ width_units(int(node->getFloatValue("span_units"))),
+ div_units(int(fabs(node->getFloatValue("division_units")))),
+ minor_div(0 /* hud.cxx: static float minor_division = 0 */),
+ label_pos(node->getIntValue("lbl_pos")),
+ scr_hole(node->getIntValue("screen_hole")),
+ factor(node->getFloatValue("compression_factor")),
+ hudladder_type(node->getStringValue("name")),
+ frl(node->getBoolValue("enable_frl", false)),
+ target_spot(node->getBoolValue("enable_target_spot", false)),
+ velocity_vector(node->getBoolValue("enable_velocity_vector", false)),
+ drift_marker(node->getBoolValue("enable_drift_marker", false)),
+ alpha_bracket(node->getBoolValue("enable_alpha_bracket", false)),
+ energy_marker(node->getBoolValue("enable_energy_marker", false)),
+ climb_dive_marker(node->getBoolValue("enable_climb_dive_marker", false)),
+ glide_slope_marker(node->getBoolValue("enable_glide_slope_marker",false)),
+ glide_slope(node->getFloatValue("glide_slope", -4.0)),
+ energy_worm(node->getBoolValue("enable_energy_marker", false)),
+ waypoint_marker(node->getBoolValue("enable_waypoint_marker", false)),
+ zenith(node->getIntValue("zenith")),
+ nadir(node->getIntValue("nadir")),
+ hat(node->getIntValue("hat"))