|
/* ---------------------------------------------------------
Super Star Trek
C++ Port Copyright 2008, James M. Curran <jamescurran@mvps.org>
based upon the C Port, Copyright 1996, Chris Nystrom
based upon the PC Basic port, Copyright 1978, Workman Publishing
based upon the HP Basic original, PD circa 1971, Mike Mayfield
C++ code licensed using the Code Project Open License v1.02
http://www.codeproject.com/info/cpol10.aspx
-------------------------------------------------------------- */
// ShipSystem.h: interface for the ShipSystem class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SHIPSYSTEM_H__77A88B29_0B3D_11D1_9963_00AA0020E483__INCLUDED_)
#define AFX_SHIPSYSTEM_H__77A88B29_0B3D_11D1_9963_00AA0020E483__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "output.h"
#include <string>
using std::string;
class Ship;
class ShipSystem
{
public:
bool Use();
bool DoCommand();
ShipSystem(Ship& s);
virtual string name() const = 0;
virtual string keyword() const = 0;
virtual string description() const {return(keyword() + " - " + name());}
// Does the actual work of the ship system.
// returns true if game should continue.
virtual bool activate() { cout << "not implemented yet." << endl; return(true);}
bool isFunctional() const {return ( nDamageLevel >= 0.0);}
virtual bool isDamaged() const {return ( nDamageLevel < 0.0);}
void isDamaged(double damage) { RepairDamage(-damage); }
void RepairDamage(double d);
double AcceptCourse(string officer);
static void ReportDamage(ShipSystem& system);
static double TimeToFix(ShipSystem& system);
static void FixDamage(ShipSystem& system);
private:
double nDamageLevel;
protected:
Ship& ship;
};
#endif // !defined(AFX_SHIPSYSTEM_H__77A88B29_0B3D_11D1_9963_00AA0020E483__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
20+ years as a developer : Assembly, C, C++ and C# (in that order) with sidelines in ASP/VBScript, ASP.Net, JavaScript, Perl, QuickBasic, VisualBasic, plus a few others which I'm not going to mention because if I did someone might ask me to use them again (shudder)
Microsoft MVP in VC++ (1994-2004)
I also run www.NJTheater.com as a hobby.
Full resume & stuff at NovelTheory.com
Underused blog at HonestIllusion.com