Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

Helicopter.cpp

Go to the documentation of this file.
00001 /*
00002  * Helicopter.cpp
00003  *
00004  * Part of Fly! Legacy project
00005  *
00006  * Copyright 2003 Chris Wallace
00007  *
00008  * Fly! Legacy is free software; you can redistribute it and/or modify
00009  *   it under the terms of the GNU General Public License as published by
00010  *   the Free Software Foundation; either version 2 of the License, or
00011  *   (at your option) any later version.
00012  *
00013  * Fly! Legacy is distributed in the hope that it will be useful,
00014  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  *   GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  *   along with Fly! Legacy; if not, write to the Free Software
00020  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021  *
00022  */
00023 
00034 #include "../Include/UserVehicles.h"
00035 #include "../Include/Utility.h"
00036 
00037 
00038 CHelicopter::CHelicopter (const char* nfoFilename)
00039 {
00040   // Open stream for NFO file
00041   SStream s;
00042   strcpy (s.filename, "World\\");
00043   strcat (s.filename, nfoFilename);
00044   strcpy (s.mode, "r");
00045   if (OpenStream (&s)) {
00046     ReadFrom (this, &s);
00047   } else {
00048     gtfo ("CHelicopter::CHelicopter : Could not open NFO stream");
00049   }
00050 }
00051 
00052 int   CHelicopter::Read (SStream *stream, Tag tag)
00053 {
00054   int rc = TAG_IGNORED;
00055   char s[256];
00056 
00057   switch (tag) {
00058   case 'sign':
00059     // Signature, must always be 'plan'
00060     ReadString (s, 256, stream);
00061     break;
00062 
00063   case 'make':
00064     // Make/model of aircraft
00065     ReadString (make, sizeof(make), stream);
00066     break;
00067 
00068   case 'icon':
00069     // Aircraft selection menu icon filename
00070     ReadString (iconFilename, sizeof(iconFilename), stream);
00071     break;
00072 
00073   case 'CLAS':
00074     // Classification
00075     ReadInt (&classification, stream);
00076     break;
00077 
00078   case 'USAG':
00079     // Usage
00080     ReadInt (&usage, stream);
00081     break;
00082 
00083   case '_SVH':
00084     // SVH - General Info filename
00085     ReadString (svhFilename, sizeof(svhFilename), stream);
00086     break;
00087 
00088   case '_GAS':
00089     // GAS - Fuel Systems filename
00090     ReadString (gasFilename, sizeof(svhFilename), stream);
00091     break;
00092 
00093   case '_WNG':
00094     // WNG - Wing aerodynamics filename
00095     ReadString (wngFilename, sizeof(wngFilename), stream);
00096     break;
00097 
00098   case '_AMP':
00099     // AMP - Electrical Subsystems filename
00100     ReadString (ampFilename, sizeof(ampFilename), stream);
00101     break;
00102 
00103   case '_PSS':
00104     // PSS - Pitot/Static filename
00105     ReadString (pssFilename, sizeof(pssFilename), stream);
00106     break;
00107 
00108   case '_WHL':
00109     // WHL - Ground Suspension filename
00110     ReadString (whlFilename, sizeof(whlFilename), stream);
00111     break;
00112 
00113   case '_VLD':
00114     // VLD - Variable Loadout filename
00115     ReadString (vldFilename, sizeof(vldFilename), stream);
00116     break;
00117 
00118   case '_PIT':
00119     // PIT - Cockpt Manager filename
00120     ReadString (pitFilename, sizeof(pitFilename), stream);
00121     break;
00122 
00123   case '_CAM':
00124     // CAM - Camera Manager filename
00125     ReadString (camFilename, sizeof(camFilename), stream);
00126     break;
00127 
00128   case '_LOD':
00129     // LOD - Level of Detail filename
00130     ReadString (lodFilename, sizeof(lodFilename), stream);
00131     break;
00132 
00133   case '_RDO':
00134     // RDO - Radio Manager filename
00135     ReadString (rdoFilename, sizeof(rdoFilename), stream);
00136     break;
00137 
00138   case '_ELT':
00139     // ELT - External Lights filename
00140     ReadString (eltFilename, sizeof(eltFilename), stream);
00141     break;
00142 
00143   case '_ENG':
00144     // ENG - Engine Manager filename
00145     ReadString (engFilename, sizeof(engFilename), stream);
00146     break;
00147 
00148   case '_RTR':
00149     // RTR - Rotor Manager filename
00150     ReadString (rtrFilename, sizeof(rtrFilename), stream);
00151     break;
00152 
00153   case '_MIX':
00154     // MIX - Control Mixer filename
00155     ReadString (mixFilename, sizeof(mixFilename), stream);
00156     break;
00157 
00158   case '_CKL':
00159     // CKL - Checklists filename 
00160     ReadString (cklFilename, sizeof(cklFilename), stream);
00161     break;
00162 
00163   case '_FCS':
00164     // FCS - Flight Control System filename
00165     ReadString (fcsFilename, sizeof(fcsFilename), stream);
00166     break;
00167 
00168   case '_SWD':
00169     // SWD - Slope Wind Data filename
00170     ReadString (swdFilename, sizeof(swdFilename), stream);
00171     break;
00172 
00173   case '_SIT':
00174     // SIT - Debug Situation filename
00175     ReadString (sitFilename, sizeof(sitFilename), stream);
00176     break;
00177 
00178   default:
00179     {
00180       char tagstring[8];
00181       TagToString (tagstring, tag);
00182       gtfo ("CAirplane::Read : Unknown tag %s", tagstring);
00183     }
00184   }
00185 
00186   return rc;
00187 }
00188 
00189 
00190 void  CHelicopter::ReadFinished (void)
00191 {
00192   SStream s;
00193 
00194   // Read Simulated Vehicle Info
00195   strcpy (s.filename, "World\\");
00196   strcat (s.filename, svhFilename);
00197   strcpy (s.mode, "r");
00198   if (OpenStream (&s)) {
00199 
00200     CloseStream (&s);
00201   }
00202 
00203   // Read Aerodynamic Model
00204   strcpy (s.filename, "World\\");
00205   strcat (s.filename, wngFilename);
00206   if (OpenStream (&s)) {
00207 
00208     CloseStream (&s);
00209   }
00210 
00211   // Read Electrical Subystems
00212   strcpy (s.filename, "World\\");
00213   strcat (s.filename, ampFilename);
00214   if (OpenStream (&s)) {
00215 
00216     CloseStream (&s);
00217   }
00218 
00219   // Read Pitot/Static Systems
00220   strcpy (s.filename, "World\\");
00221   strcat (s.filename, pssFilename);
00222   if (OpenStream (&s)) {
00223     CloseStream (&s);
00224   }
00225 
00226   // Read Ground Suspension
00227   strcpy (s.filename, "World\\");
00228   strcat (s.filename, whlFilename);
00229   if (OpenStream (&s)) {
00230     CloseStream (&s);
00231   }
00232 
00233   // Read Variable Loadouts
00234   strcpy (s.filename, "World\\");
00235   strcat (s.filename, vldFilename);
00236   if (OpenStream (&s)) {
00237     CloseStream (&s);
00238   }
00239 
00240   // Read Cockpit Manager
00241   strcpy (s.filename, "World\\");
00242   strcat (s.filename, pitFilename);
00243   if (OpenStream (&s)) {
00244     CloseStream (&s);
00245   }
00246 
00247   // Read Camera Manager
00248   strcpy (s.filename, "World\\");
00249   strcat (s.filename, camFilename);
00250   if (OpenStream (&s)) {
00251     CloseStream (&s);
00252   }
00253 
00254   // Read Level of Detail
00255   strcpy (s.filename, "World\\");
00256   strcat (s.filename, lodFilename);
00257   if (OpenStream (&s)) {
00258     CloseStream (&s);
00259   }
00260 
00261   // Read Radio Manager
00262   strcpy (s.filename, "World\\");
00263   strcat (s.filename, rdoFilename);
00264   if (OpenStream (&s)) {
00265     CloseStream (&s);
00266   }
00267 
00268   // Read External Lights
00269   strcpy (s.filename, "World\\");
00270   strcat (s.filename, eltFilename);
00271   if (OpenStream (&s)) {
00272     CloseStream (&s);
00273   }
00274 
00275   // Read Engine Manager
00276   strcpy (s.filename, "World\\");
00277   strcat (s.filename, engFilename);
00278   if (OpenStream (&s)) {
00279     CloseStream (&s);
00280   }
00281 
00282   // Read Control Mixer
00283   strcpy (s.filename, "World\\");
00284   strcat (s.filename, mixFilename);
00285   if (OpenStream (&s)) {
00286     CloseStream (&s);
00287   }
00288 
00289   // Read Checklists
00290   strcpy (s.filename, "World\\");
00291   strcat (s.filename, cklFilename);
00292   if (OpenStream (&s)) {
00293     CloseStream (&s);
00294   }
00295 
00296   // Read Flight Control System
00297   strcpy (s.filename, "World\\");
00298   strcat (s.filename, fcsFilename);
00299   if (OpenStream (&s)) {
00300     CloseStream (&s);
00301   }
00302 
00303   // Read Slope Wind Data
00304   strcpy (s.filename, "World\\");
00305   strcat (s.filename, swdFilename);
00306   if (OpenStream (&s)) {
00307     CloseStream (&s);
00308   }
00309 }
00310 
00311 
00312 void  CHelicopter::Write (SStream *stream)
00313 {
00314 
00315 }
00316 
00317 
00318 
SourceForge.net Logo Documentation generated by doxygen