Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
monopoly::sequence Namespace Reference

Classes

struct  ClockStartOptions
 
struct  ClockUpdate
 
struct  DescriptionLimits
 
struct  EvaluatedTweekerTransform
 
struct  ForceRedrawSequenceCommand
 
struct  InitialSequenceTransform
 
struct  Matrix2D
 
struct  Matrix3D
 
struct  MoveSequenceCommand
 
struct  RuntimeError
 
struct  RuntimeLimits
 
struct  SequenceBitmapInstanceView
 
struct  SequenceBitmapMetadata
 
struct  SequenceBitmapRenderDataError
 
struct  SequenceBitmapRenderItem
 
struct  SequenceBounds3D
 
struct  SequenceCamera2DView
 
struct  SequenceCamera3DView
 
class  SequenceChildSchedule
 
class  SequenceClock
 
struct  SequenceCommandOutcome
 
class  SequenceCommandQueue
 
struct  SequenceDescription
 
struct  SequenceEvent
 
struct  SequenceInfoView
 
struct  SequenceMeshChoice3D
 
struct  SequenceMeshInstanceView
 
struct  SequenceMeshRenderItem
 
struct  SequenceNodeView
 
class  SequenceProgram
 
struct  SequenceRenderDataError
 
class  SequenceRuntime
 
struct  SequenceScrollingWorldView
 
struct  SequenceSoundInstanceView
 
struct  SequenceSpatial2DView
 
struct  SequenceVideoInstanceView
 
struct  SequenceViewportRect
 
struct  SetCameraCommand
 
struct  SetSequenceEndingActionCommand
 
struct  SetSequencePanningCommand
 
struct  SetSequencePitchCommand
 
struct  SetSequenceVolumeCommand
 
struct  SetViewportCommand
 
struct  StartSequenceCommand
 
struct  StopSequenceCommand
 
struct  TweekerKeys
 

Typedefs

using ChildScheduleError = std::variant< data::DataError, data::ChunkError, data::SequenceError >
 
using SequenceCommand = std::variant< StartSequenceCommand, StopSequenceCommand, MoveSequenceCommand, SetSequenceEndingActionCommand, SetSequenceVolumeCommand, SetSequencePitchCommand, SetSequencePanningCommand, ForceRedrawSequenceCommand, SetViewportCommand, SetCameraCommand >
 
using SequenceNodeId = std::uint64_t
 
using SequenceTransform = std::variant< std::monostate, Matrix2D, Matrix3D >
 

Enumerations

enum class  SequenceBitmapRenderDataErrorCode {
  MissingResources , MetadataFailed , TypeMismatch , LoadFailed ,
  InvalidBitmap
}
 
enum class  ClockError {
  UnsupportedSequenceType , UnsupportedScrollingWorld , InvalidCadence , InvalidEndingAction ,
  NegativeEndTime , ParentClockWentBackwards , ClockOverflow
}
 
enum class  SequenceCommandKind {
  Start , Stop , Move , SetEndingAction ,
  SetVolume , SetPitch , SetPanning , ForceRedraw ,
  SetViewport , SetCamera
}
 
enum class  CommandQueueError {
  QueueFull , InvalidProgram , InvalidEndingAction , InvalidRenderSlot ,
  NestingOverflow
}
 
enum class  SequenceRenderDataErrorCode { MeshResolutionFailed , MeshPoseEvaluationFailed }
 
enum class  RuntimeErrorCode {
  DataFailure , DecodeFailure , UnsupportedType , UnsupportedAttribute ,
  InvalidLimits , DepthLimit , DescriptionLimit , ReferenceLimit ,
  IndirectCycle , LiveNodeLimit , BirthLimit , InvalidHandle ,
  ClockFailure , TweekerFailure , IdentifierExhausted
}
 
enum class  SequenceEventKind {
  Created , Updated , ReachedEnd , Rewound ,
  Destroyed
}
 
enum class  TweekerTransformError { InvalidInterpolation , DimensionalityMismatch }
 

Functions

std::expected< std::vector< SequenceBitmapRenderItem >, SequenceBitmapRenderDataError > collectSequenceBitmapRenderData (const SequenceRuntime &runtime, std::shared_ptr< const data::ResourceSnapshot > resources, const data::RuntimeBitmapStore *runtimeBitmaps)
 
std::expected< SequenceChildSchedule, ChildScheduleError > openSequenceChildSchedule (const data::DataSource &source, data::DataId parentDataId, std::size_t parentOffset, std::size_t maximumRecords)
 
std::string_view clockErrorName (ClockError error) noexcept
 
MoveSequenceCommand makeMoveTheWorks (data::DataId dataId, std::uint16_t priority, SequenceTransform transform, bool wholeTree) noexcept
 
MoveSequenceCommand makeMoveXY (data::DataId dataId, std::uint16_t priority, std::int32_t x, std::int32_t y) noexcept
 
MoveSequenceCommand makeMoveRySTxz (data::DataId dataId, std::uint16_t priority, float yaw, float scale, float x, float z) noexcept
 
std::optional< uimsg::Message > lifecycleMessage (const SequenceEvent &event, std::int32_t topLevelClock)
 
std::expected< std::vector< SequenceMeshRenderItem >, SequenceRenderDataError > collectSequenceMeshRenderData (const SequenceRuntime &runtime, data::MeshRuntimeCache &meshes)
 
Matrix2D identity2D () noexcept
 
Matrix3D identity3D () noexcept
 
Matrix2D multiply (const Matrix2D &left, const Matrix2D &right) noexcept
 
Matrix3D multiply (const Matrix3D &left, const Matrix3D &right) noexcept
 
Matrix2D translate2D (std::int32_t x, std::int32_t y) noexcept
 
Matrix3D translate3D (float x, float y, float z) noexcept
 
SequenceTransform moveXYTransform (std::int32_t x, std::int32_t y) noexcept
 
Matrix2D moveXYSRTransform (std::int32_t x, std::int32_t y, float scale, float rotate) noexcept
 
Matrix3D moveRySTxzTransform (float yaw, float scale, float x, float z) noexcept
 
InitialSequenceTransform initialSequenceTransform (const data::LegacySequenceRecord &record, const data::LegacySequenceAttributes &attributes, std::uint8_t parentDimensionality) noexcept
 
SequenceTransform composeSequenceWorld (const SequenceTransform &local, std::uint8_t dimensionality, const SequenceTransform &parentWorld, std::uint8_t parentDimensionality) noexcept
 
TweekerKeys selectTweekerKeys (const data::LegacySequenceAttributes &attributes) noexcept
 
std::expected< EvaluatedTweekerTransform, TweekerTransformError > evaluateTweekerTransform (const data::LegacySequenceAttributes &attributes, std::uint8_t interpolationType, std::int32_t clock, std::int32_t endTime, std::uint8_t parentDimensionality) noexcept
 

Variables

constexpr std::uint8_t MonopolyRenderSlotCount = 5
 

Typedef Documentation

◆ ChildScheduleError

◆ SequenceCommand

◆ SequenceNodeId

Definition at line 91 of file SequenceRuntime.hpp.

◆ SequenceTransform

Definition at line 14 of file SequenceTransforms.hpp.

Enumeration Type Documentation

◆ ClockError

Enumerator
UnsupportedSequenceType 
UnsupportedScrollingWorld 
InvalidCadence 
InvalidEndingAction 
NegativeEndTime 
ParentClockWentBackwards 
ClockOverflow 

Definition at line 12 of file SequenceClock.hpp.

◆ CommandQueueError

Enumerator
QueueFull 
InvalidProgram 
InvalidEndingAction 
InvalidRenderSlot 
NestingOverflow 

Definition at line 19 of file SequenceCommands.hpp.

◆ RuntimeErrorCode

Enumerator
DataFailure 
DecodeFailure 
UnsupportedType 
UnsupportedAttribute 
InvalidLimits 
DepthLimit 
DescriptionLimit 
ReferenceLimit 
IndirectCycle 
LiveNodeLimit 
BirthLimit 
InvalidHandle 
ClockFailure 
TweekerFailure 
IdentifierExhausted 

Definition at line 14 of file SequenceRuntime.hpp.

◆ SequenceBitmapRenderDataErrorCode

Enumerator
MissingResources 
MetadataFailed 
TypeMismatch 
LoadFailed 
InvalidBitmap 

Definition at line 20 of file SequenceBitmapRenderData.hpp.

◆ SequenceCommandKind

Enumerator
Start 
Stop 
Move 
SetEndingAction 
SetVolume 
SetPitch 
SetPanning 
ForceRedraw 
SetViewport 
SetCamera 

Definition at line 18 of file SequenceCommands.hpp.

◆ SequenceEventKind

Enumerator
Created 
Updated 
ReachedEnd 
Rewound 
Destroyed 

Definition at line 92 of file SequenceRuntime.hpp.

◆ SequenceRenderDataErrorCode

Enumerator
MeshResolutionFailed 
MeshPoseEvaluationFailed 

Definition at line 12 of file SequenceRenderData.hpp.

◆ TweekerTransformError

Enumerator
InvalidInterpolation 
DimensionalityMismatch 

Definition at line 23 of file SequenceTransforms.hpp.

Function Documentation

◆ clockErrorName()

std::string_view monopoly::sequence::clockErrorName ( ClockError  error)
noexcept

Definition at line 17 of file SequenceClock.cpp.

◆ collectSequenceBitmapRenderData()

std::expected< std::vector< SequenceBitmapRenderItem >, SequenceBitmapRenderDataError > monopoly::sequence::collectSequenceBitmapRenderData ( const SequenceRuntime &  runtime,
std::shared_ptr< const data::ResourceSnapshot >  resources,
const data::RuntimeBitmapStore *  runtimeBitmaps 
)

Definition at line 19 of file SequenceBitmapRenderData.cpp.

◆ collectSequenceMeshRenderData()

std::expected< std::vector< SequenceMeshRenderItem >, SequenceRenderDataError > monopoly::sequence::collectSequenceMeshRenderData ( const SequenceRuntime &  runtime,
data::MeshRuntimeCache &  meshes 
)

Definition at line 6 of file SequenceRenderData.cpp.

◆ composeSequenceWorld()

SequenceTransform monopoly::sequence::composeSequenceWorld ( const SequenceTransform &  local,
std::uint8_t  dimensionality,
const SequenceTransform &  parentWorld,
std::uint8_t  parentDimensionality 
)
noexcept

Definition at line 210 of file SequenceTransforms.cpp.

◆ evaluateTweekerTransform()

std::expected< EvaluatedTweekerTransform, TweekerTransformError > monopoly::sequence::evaluateTweekerTransform ( const data::LegacySequenceAttributes &  attributes,
std::uint8_t  interpolationType,
std::int32_t  clock,
std::int32_t  endTime,
std::uint8_t  parentDimensionality 
)
noexcept

Definition at line 252 of file SequenceTransforms.cpp.

◆ identity2D()

Matrix2D monopoly::sequence::identity2D ( )
noexcept

Definition at line 98 of file SequenceTransforms.cpp.

◆ identity3D()

Matrix3D monopoly::sequence::identity3D ( )
noexcept

Definition at line 100 of file SequenceTransforms.cpp.

◆ initialSequenceTransform()

InitialSequenceTransform monopoly::sequence::initialSequenceTransform ( const data::LegacySequenceRecord &  record,
const data::LegacySequenceAttributes &  attributes,
std::uint8_t  parentDimensionality 
)
noexcept

Definition at line 154 of file SequenceTransforms.cpp.

◆ lifecycleMessage()

std::optional< uimsg::Message > monopoly::sequence::lifecycleMessage ( const SequenceEvent &  event,
std::int32_t  topLevelClock 
)
inline

Definition at line 12 of file SequenceLifecycleMessage.hpp.

◆ makeMoveRySTxz()

MoveSequenceCommand monopoly::sequence::makeMoveRySTxz ( data::DataId  dataId,
std::uint16_t  priority,
float  yaw,
float  scale,
float  x,
float  z 
)
noexcept

Definition at line 17 of file SequenceCommands.cpp.

◆ makeMoveTheWorks()

MoveSequenceCommand monopoly::sequence::makeMoveTheWorks ( data::DataId  dataId,
std::uint16_t  priority,
SequenceTransform  transform,
bool  wholeTree 
)
noexcept

Definition at line 9 of file SequenceCommands.cpp.

◆ makeMoveXY()

MoveSequenceCommand monopoly::sequence::makeMoveXY ( data::DataId  dataId,
std::uint16_t  priority,
std::int32_t  x,
std::int32_t  y 
)
noexcept

Definition at line 13 of file SequenceCommands.cpp.

◆ moveRySTxzTransform()

Matrix3D monopoly::sequence::moveRySTxzTransform ( float  yaw,
float  scale,
float  x,
float  z 
)
noexcept

Definition at line 144 of file SequenceTransforms.cpp.

◆ moveXYSRTransform()

Matrix2D monopoly::sequence::moveXYSRTransform ( std::int32_t  x,
std::int32_t  y,
float  scale,
float  rotate 
)
noexcept

Definition at line 134 of file SequenceTransforms.cpp.

◆ moveXYTransform()

SequenceTransform monopoly::sequence::moveXYTransform ( std::int32_t  x,
std::int32_t  y 
)
noexcept

Definition at line 128 of file SequenceTransforms.cpp.

◆ multiply() [1/2]

Matrix2D monopoly::sequence::multiply ( const Matrix2D &  left,
const Matrix2D &  right 
)
noexcept

Definition at line 103 of file SequenceTransforms.cpp.

◆ multiply() [2/2]

Matrix3D monopoly::sequence::multiply ( const Matrix3D &  left,
const Matrix3D &  right 
)
noexcept

Definition at line 113 of file SequenceTransforms.cpp.

◆ openSequenceChildSchedule()

std::expected< SequenceChildSchedule, ChildScheduleError > monopoly::sequence::openSequenceChildSchedule ( const data::DataSource &  source,
data::DataId  parentDataId,
std::size_t  parentOffset,
std::size_t  maximumRecords 
)

Definition at line 103 of file SequenceChildSchedule.cpp.

◆ selectTweekerKeys()

TweekerKeys monopoly::sequence::selectTweekerKeys ( const data::LegacySequenceAttributes &  attributes)
noexcept

Definition at line 231 of file SequenceTransforms.cpp.

◆ translate2D()

Matrix2D monopoly::sequence::translate2D ( std::int32_t  x,
std::int32_t  y 
)
noexcept

Definition at line 123 of file SequenceTransforms.cpp.

◆ translate3D()

Matrix3D monopoly::sequence::translate3D ( float  x,
float  y,
float  z 
)
noexcept

Definition at line 125 of file SequenceTransforms.cpp.

Variable Documentation

◆ MonopolyRenderSlotCount

constexpr std::uint8_t monopoly::sequence::MonopolyRenderSlotCount = 5
inlineconstexpr

Definition at line 76 of file SequenceCommands.hpp.