mirror of https://github.com/AxioDL/metaforce.git
122 lines
4.3 KiB
C++
122 lines
4.3 KiB
C++
#ifndef __URDE_CAUTOMAPPER_HPP__
|
|
#define __URDE_CAUTOMAPPER_HPP__
|
|
|
|
#include "RetroTypes.hpp"
|
|
#include "CInGameTweakManagerBase.hpp"
|
|
#include "zeus/CQuaternion.hpp"
|
|
#include "zeus/CTransform.hpp"
|
|
#include "zeus/CVector3f.hpp"
|
|
#include "MP1/CInGameGuiManager.hpp"
|
|
|
|
namespace urde
|
|
{
|
|
class CFinalInput;
|
|
class IWorld;
|
|
class CMapWorldInfo;
|
|
class CStateManager;
|
|
class CAutoMapper
|
|
{
|
|
public:
|
|
using EInGameGuiState = MP1::EInGameGuiState;
|
|
enum class EAutoMapperState
|
|
{
|
|
};
|
|
struct SAutoMapperRenderState
|
|
{
|
|
};
|
|
|
|
class CAudioMenu
|
|
{
|
|
public:
|
|
enum class EMenu
|
|
{
|
|
};
|
|
struct SMenuOption
|
|
{
|
|
SMenuOption(const std::string&, s32, s32, s32);
|
|
void BuildDrawableString();
|
|
};
|
|
|
|
private:
|
|
public:
|
|
CAudioMenu()=default;
|
|
void SetIsHighlighted(bool);
|
|
void AddOption(const SMenuOption&);
|
|
void ProcessControllerInput(const CFinalInput&);
|
|
u32 GetSelectionIndex() const;
|
|
const SMenuOption& GetOption(s32) const;
|
|
SMenuOption& Option(s32);
|
|
void SetSelectionIndex(s32);
|
|
void Draw(EMenu) const;
|
|
};
|
|
|
|
private:
|
|
public:
|
|
CAutoMapper(CStateManager&);
|
|
bool CheckLoadComplete();
|
|
bool CanLeaveMapScrean(const CStateManager&) const;
|
|
float GetMapRotationX() const;
|
|
float GetMapRotationZ() const;
|
|
u32 GetFocusAreaIndex() const;
|
|
ResId GetCurrWorldAssetId() const;
|
|
void MuteAllLoopedSounds();
|
|
void UnmuteAllLoopedSounds();
|
|
void ProcessControllerInput(const CFinalInput&, CStateManager&);
|
|
bool IsInPlayerControlState() const;
|
|
void Draw(const CStateManager&, const zeus::CTransform&, float) const;
|
|
bool IsInOrTransitioningToMapScreenState() const;
|
|
float GetTimeIntoInterpolation() const;
|
|
bool IsFullyInMapScreenState() const;
|
|
void BeginMapperStateTransition(EAutoMapperState, const CStateManager&);
|
|
void CompleteMapperStateTransition();
|
|
void ResetInterpolationTimer(float);
|
|
void BuildMiniMapWorldRenderState(const CStateManager&, const zeus::CQuaternion&, s32) const;
|
|
void BuildMapScreenWorldRenderState(const CStateManager&, const zeus::CQuaternion&, s32) const;
|
|
void BuildMapScreenUniverseRenderState(const CStateManager&, const zeus::CQuaternion&, s32) const;
|
|
void SetShouldPanningSoundBePlaying(bool);
|
|
void SetShouldZoomingSoundBePlaying(bool);
|
|
void SetShouldRotatingSoundBePlaying(bool);
|
|
void LeaveMapScreenState();
|
|
void GetMiniMapCameraOrientation(CStateManager&);
|
|
void GetAreaPointOfInterest(CStateManager, s32);
|
|
void FindClosestVisibleArea(const zeus::CVector3f&, const zeus::CUnitVector3f&, const CStateManager&,
|
|
const IWorld&, const CMapWorldInfo&) const;
|
|
void FindClosestVisibleWorld(const zeus::CVector3f&, const zeus::CUnitVector3f&, const CStateManager&) const;
|
|
|
|
void GetMiniMapViewportSize();
|
|
void GetMapScreenViewportSize();
|
|
float GetMapAreaMiniDrawDepth();
|
|
float GetMapAreaMaxDrawDepth();
|
|
void GetMapAreaMiniMapDrawAlphaSurfaceVisited(const CStateManager&);
|
|
void GetMapAreaMiniMapDrawAlphaOutlineVisited(const CStateManager&);
|
|
void GetMapAreaMiniMapDrawAlphaSurfaceUnvisited(const CStateManager&);
|
|
void GetMapAreaMiniMapDrawAlphaOutlineUnvisited(const CStateManager&);
|
|
void GetClampedMapScreenCameraDistance(float) const;
|
|
void GetDesiredMiniMapCameraDistance(const CStateManager&) const;
|
|
float GetBaseCameraMoveSpeed() const;
|
|
float GetFinalCameraMoveSpeed() const;
|
|
bool IsInMapperState(EAutoMapperState) const;
|
|
bool IsInMapperTransition() const;
|
|
bool IsRenderStateInterpolating() const;
|
|
void TransformRenderStatesWorldToUniverse();
|
|
void TransformRenderStatesUniverseToWorld();
|
|
void TransformRenderStateWorldToUniverse(SAutoMapperRenderState&);
|
|
void UpdateOptionsMenu(const CTweakValue::Audio&);
|
|
void UpdateAudioMusicMenu();
|
|
void UpdateAudioEvents();
|
|
void UpdateAudioEventMenu();
|
|
void GetCurrentAudioInfo() const;
|
|
void PresentAudioMenuInput(const CFinalInput&);
|
|
void SetFocusAudioMenu(CAudioMenu::EMenu);
|
|
bool IsStateTransitioning() const;
|
|
bool IsFullyInMiniMapState() const;
|
|
static bool IsDrawState(EAutoMapperState);
|
|
|
|
void OnNewInGameGuiState(EInGameGuiState, const CStateManager&);
|
|
void OnChangeAudioMusicSelection();
|
|
|
|
};
|
|
}
|
|
|
|
#endif // __URDE_CAUTOMAPPER_HPP__
|