#ifndef _TREKI_
#define _TREKI_
#include "cmdview.h"
#include "load.h"
#include "console.h"
extern bool g_bEnableSound;
enum ScreenID {
ScreenIDInvalid = -2,
ScreenIDCombat = -1,
ScreenIDSplashScreen = 0,
ScreenIDIntroScreen = 1,
ScreenIDCreateMission = 2,
ScreenIDTeamScreen = 3,
ScreenIDGameScreen = 4,
ScreenIDGameOverScreen = 5,
ScreenIDTrainScreen = 6,
ScreenIDZoneClubScreen = 7,
ScreenIDSquadsScreen = 8,
ScreenIDGameStarting = 9,
ScreenIDCharInfo = 10,
ScreenIDTrainSlideshow = 11,
ScreenIDPostTrainSlideshow = 12,
ScreenIDLeaderBoard = 13,
ScreenIDZoneEvents = 14
};
class ChatListPane;
class TrekWindow : public EffectWindow {
protected:
TrekWindow(
EffectApp* papp,
const ZString& strCommandLine,
bool bStartFullscreen,
const WinRect& rect,
const WinPoint& sizeMin
) :
EffectWindow(
papp,
strCommandLine,
GetWindowTitle(),
bStartFullscreen,
rect,
sizeMin
)
{
}
public:
static TRef<TrekWindow> Create(
EffectApp* papp,
const ZString& strCommandLine,
bool bMovies,
bool bSoftware,
bool bHardware,
bool bPrimary,
bool bSecondary
);
static LPCTSTR GetWindowTitle() { return TEXT("Allegiance"); };
virtual TRef<AnimatedImage> LoadAnimatedImage(Number* ptime, const ZString& str) = 0;
virtual void UpdateGameStateContainer() = 0;
virtual Camera* GetCamera() = 0;
virtual Orientation GetCameraOrientation() = 0;
virtual void ResetCameraFOV() = 0;
virtual Camera* GetCameraPosters() = 0;
virtual ConsoleImage* GetConsoleImage() = 0;
virtual Viewport* GetViewport() = 0;
virtual Viewport* GetPosterViewport() = 0;
virtual void SetTimeDamaged(Time now) = 0;
virtual void ToggleWeapon (Mount mount) = 0;
virtual void SwapPart(EquipmentType et, Mount mount) = 0;
virtual float GetDeltaTime (void) const = 0;
virtual float GetHUDStyle (void) const = 0;
virtual void SetHUDStyle (float newStyle) = 0;
enum CameraMode
{
cmCockpit,
cmExternal, cmExternalMin=cmExternal,
cmExternalChase,
cmExternalTarget,
cmExternalBase,
cmExternalMissile,
cmExternalFlyBy,
cmExternalFlyByTarget,
cmExternalOrbit,
cmExternalStation,
cmExternalOverride,
cmExternalTurret, cmExternalMax = cmExternalTurret,
cmExternalCommandView34, cmExternalCommandMin = cmExternalCommandView34,
cmExternalCommandViewTD, cmExternalCommandMax = cmExternalCommandViewTD,
};
enum ViewMode
{
vmHangar,
vmLoadout,
vmCommand,
vmCombat,
vmOverride,
vmUI, c_cViewModes
};
static bool NoCameraControl(CameraMode cm)
{
return InternalCamera(cm) || (cm == cmExternalMissile) || (cm == cmExternalChase);
}
static bool InternalCamera(CameraMode cm)
{
return (cm == cmCockpit);
}
static bool ExternalCamera(CameraMode cm)
{
return ((cm >= cmExternalMin) && (cm <= cmExternalMax));
}
static bool CommandCamera(CameraMode cm)
{
return ((cm >= cmExternalCommandMin) && (cm <= cmExternalCommandMax));
}
virtual int GetRadarMode(void) const = 0;
virtual void SetRadarMode(int radarMode) = 0;
virtual bool GetRoundRadarMode(void) const = 0;
virtual CameraMode GetCameraMode(void) const = 0;
virtual void SetCameraMode(CameraMode cm) = 0;
virtual ViewMode GetViewMode(void) const = 0;
virtual void SetViewMode(ViewMode vm, bool bForce = false) = 0;
virtual void EnableDisplacementCommandView (bool bEnable) = 0;
virtual OverlayMask GetOverlayFlags() const = 0;
virtual void SetOverlayFlags(OverlayMask om) = 0;
virtual void TurnOnOverlayFlags(OverlayMask om) = 0; virtual void TurnOffOverlayFlags(OverlayMask om) = 0;
virtual void ToggleOverlayFlags(OverlayMask om) = 0;
virtual void SetJiggle(float jiggle) = 0;
virtual void OverrideCamera(Time now, ImodelIGC* pmodelTarget, bool bOverridePosition) = 0;
virtual void StartTraining (int iMissionIndex) = 0;
virtual void screen(ScreenID s) = 0;
virtual ScreenID screen(void) const = 0;
virtual void CharInfoScreenForPlayer(int idZone) = 0;
virtual void SquadScreenForPlayer(const char * szName, int idZone, const char * szSquad) = 0;
virtual void LeaderBoardScreenForPlayer(const ZString & strCharacter) = 0;
virtual void SetTarget(ImodelIGC* pmodel, CommandID cid) = 0;
virtual void SetAccepted(ImodelIGC* pmodel, CommandID cid) = 0;
virtual void Terminate() = 0;
virtual void ChangeChatMessage(void) = 0;
virtual void AddMuzzleFlare(const Vector& vecDirection, float duration) = 0;
virtual void SetCluster(IclusterIGC* pcluster) = 0;
virtual void PositionCommandView(const Vector* pposition = NULL, float dt = 2.0f) = 0;
virtual HRESULT HandleMsg(FEDMESSAGE* pfm,
Time lastUpdate,
Time now) = 0;
virtual VOID VTSetText(LPSTR szFormat, ...) = 0;
virtual void SetCursor(const char* pszCursorImage) = 0;
virtual void SetWaitCursor() = 0;
virtual void RestoreCursor() = 0;
virtual void SetLightDirection(const Vector& direction) = 0;
virtual void SetTargetGeo(ImodelIGC* pmodel) = 0;
virtual void OnHelp(bool bOn) = 0;
virtual void OpenMainQuickChatMenu() = 0;
virtual ZString GetSonicChatText(int id, int voice) = 0;
virtual void PlaySonicChat(int id, int voice) = 0;
virtual void SoundEngineUpdate (void) = 0;
virtual TRef<ISoundInstance> StartSound(ISoundTemplate* ptemplate, ISoundPositionSource* psource = NULL) = 0;
virtual TRef<ISoundInstance> StartSound(SoundID soundId, ISoundPositionSource* psource = NULL) = 0;
virtual void TriggerMusic(SoundID newMusicSound) = 0;
virtual bool GetMusicIsOn (void) = 0;
virtual void SetMusicOn (bool bMusicOn) = 0;
virtual void PlayFFEffect(ForceEffectID effectID, LONG lDirection = 0) = 0;
virtual void SetChatListPane(ChatListPane* pchatListPane) = 0;
virtual void SetLobbyChatTarget(ChatTarget ct) = 0;
virtual ChatTarget GetLobbyChatTarget() = 0;
virtual void StartLockDown(const ZString& strReason) = 0;
virtual void EndLockDown() = 0;
virtual void ShowWebPage(const char* szURL = "") = 0;
virtual void DoInputConfigure() = 0;
virtual void ShowOptionsMenu() = 0;
virtual void ShowPlayerContextMenu(PlayerInfo * playerInfo) = 0;
virtual void RejectQueuedCommand(bool bClear = true,
bool bNegative = false) = 0;
virtual void AcceptQueuedCommand(bool bExecute) = 0;
virtual void SetQueuedCommand(IshipIGC* pshipSender, CommandID cid, ImodelIGC* pmodelTarget) = 0;
virtual void SetQueuedCommand(IshipIGC* pshipSender, Money money, HullID hid) = 0;
virtual void StartQuitMission() = 0;
virtual TrekInput* GetInput (void) = 0;
virtual AsteroidAbilityBitMask GetCommandAsteroid(void) const = 0;
virtual void SetCommandAsteroid(AsteroidAbilityBitMask aabm) = 0;
virtual AsteroidAbilityBitMask GetInvestAsteroid(void) const = 0;
virtual void SetInvestAsteroid(AsteroidAbilityBitMask aabm) = 0;
};
TrekWindow* GetWindow();
Engine* GetEngine();
Modeler* GetModeler();
#endif