NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
nw4r::ef::DrawStrategyImpl Class Reference
Inheritance diagram for nw4r::ef::DrawStrategyImpl:
[legend]

Description

Definition at line 22 of file ef_drawstrategyimpl.h.

Classes

struct  AheadContext
 
struct  PrevTexture
 

Public Types

enum  ParticleDrawOrder {
  DRAWORDER_YOUNGERS_FIRST ,
  DRAWORDER_ELDERS_FIRST
}
 
typedef Particle *(* GetFirstDrawParticleFunc) (ParticleManager *pManager)
 
typedef Particle *(* GetNextDrawParticleFunc) (ParticleManager *pManager, Particle *pParticle)
 
typedef void(* CalcAheadFunc) (math::VEC3 *pAxisY, AheadContext *pContext, Particle *pParticle)
 

Public Member Functions

virtual GetFirstDrawParticleFunc GetGetFirstDrawParticleFunc (int drawOrder)
 
virtual GetNextDrawParticleFunc GetGetNextDrawParticleFunc (int drawOrder)
 
- Public Member Functions inherited from nw4r::ef::DrawStrategy
virtual void Draw (const DrawInfo &rInfo, ParticleManager *pManager)=0
 

Protected Member Functions

void InitTexture (const EmitterDrawSetting &rSetting)
 
void InitTev (const EmitterDrawSetting &rSetting, const DrawInfo &rInfo)
 
void InitColor (ParticleManager *pManager, const EmitterDrawSetting &rSetting, const DrawInfo &rInfo)
 
void SetupGP (Particle *pParticle, const EmitterDrawSetting &rSetting, const DrawInfo &rInfo, bool first, bool xfDirty)
 
int GetNumDrawParticle (ParticleManager *pManager)
 

Static Protected Member Functions

static void CalcAhead_Speed (math::VEC3 *pAxisY, AheadContext *pContext, Particle *pParticle)
 
static void CalcAhead_EmitterCenter (math::VEC3 *pAxisY, AheadContext *pContext, Particle *pParticle)
 
static void CalcAhead_EmitterDesign (math::VEC3 *pAxisY, AheadContext *pContext)
 
static void CalcAhead_Particle (math::VEC3 *pAxisY, AheadContext *pContext, Particle *pParticle)
 
static void CalcAhead_NoDesign (math::VEC3 *pAxisY, AheadContext *pContext)
 
static void CalcAhead_ParticleBoth (math::VEC3 *pAxisY, AheadContext *pContext, Particle *pParticle)
 
static ParticleGetElderParticle (ParticleManager *pManager, Particle *pParticle)
 
static ParticleGetYoungerParticle (ParticleManager *pManager, Particle *pParticle)
 
static ParticleGetOldestParticle (ParticleManager *pManager)
 
static ParticleGetYoungestParticle (ParticleManager *pManager)
 
static ParticleGetElderDrawParticle (ParticleManager *pManager, Particle *pParticle)
 
static ParticleGetYoungerDrawParticle (ParticleManager *pManager, Particle *pParticle)
 
static ParticleGetOldestDrawParticle (ParticleManager *pManager)
 
static ParticleGetYoungestDrawParticle (ParticleManager *pManager)
 
static bool Normalize (math::VEC3 *pVec)
 
static const math::VEC3GetXUnitVec ()
 
static const math::VEC3GetYUnitVec ()
 
static const math::VEC3GetZUnitVec ()
 

Protected Attributes

PrevTexture mPrevTexture [TEX_LAYER_MAX]
 
GXColor mPrevColor [COLOR_LAYER_MAX][COLOR_IDX_MAX]
 
int mPrevARef0
 
int mPrevARef1
 
bool mUseColor1
 
bool mUseColor2
 
u8 mNumTexmap
 
int mTexmapMap [TEX_LAYER_MAX]
 

Static Protected Attributes

static const math::VEC3 mXUnitVec
 
static const math::VEC3 mYUnitVec
 
static const math::VEC3 mZUnitVec
 
static const math::VEC3 mZeroVec
 
static const math::MTX34 mIdentityMtx
 

Private Member Functions

bool _SetupACmp (Particle *pParticle, const EmitterDrawSetting &rSetting, bool first)
 
bool _SetupTevReg (Particle *pParticle, const EmitterDrawSetting &rSetting, bool first)
 
bool _SetupTexture (Particle *pParticle, const EmitterDrawSetting &rSetting, const DrawInfo &rInfo, bool first)
 

Static Private Member Functions

static ParticleGetFirstDrawParticle_EldersFirst (ParticleManager *pManager)
 
static ParticleGetFirstDrawParticle_YoungersFirst (ParticleManager *pManager)
 
static ParticleGetNextDrawParticle_EldersFirst (ParticleManager *pManager, Particle *pParticle)
 
static ParticleGetNextDrawParticle_YoungersFirst (ParticleManager *pManager, Particle *pParticle)
 

Member Typedef Documentation

◆ GetFirstDrawParticleFunc

typedef Particle *(* nw4r::ef::DrawStrategyImpl::GetFirstDrawParticleFunc) (ParticleManager *pManager)

Definition at line 24 of file ef_drawstrategyimpl.h.

◆ GetNextDrawParticleFunc

typedef Particle *(* nw4r::ef::DrawStrategyImpl::GetNextDrawParticleFunc) (ParticleManager *pManager, Particle *pParticle)

Definition at line 25 of file ef_drawstrategyimpl.h.

◆ CalcAheadFunc

typedef void(* nw4r::ef::DrawStrategyImpl::CalcAheadFunc) (math::VEC3 *pAxisY, AheadContext *pContext, Particle *pParticle)

Definition at line 48 of file ef_drawstrategyimpl.h.

Member Enumeration Documentation

◆ ParticleDrawOrder

enum nw4r::ef::DrawStrategyImpl::ParticleDrawOrder

Definition at line 28 of file ef_drawstrategyimpl.h.

Member Function Documentation

◆ CalcAhead_Speed()

static void nw4r::ef::DrawStrategyImpl::CalcAhead_Speed ( math::VEC3 * pAxisY,
AheadContext * pContext,
Particle * pParticle )
inlinestaticprotected

Definition at line 132 of file ef_drawstrategyimpl.h.

◆ CalcAhead_EmitterCenter()

static void nw4r::ef::DrawStrategyImpl::CalcAhead_EmitterCenter ( math::VEC3 * pAxisY,
AheadContext * pContext,
Particle * pParticle )
inlinestaticprotected

Definition at line 142 of file ef_drawstrategyimpl.h.

◆ CalcAhead_EmitterDesign()

static void nw4r::ef::DrawStrategyImpl::CalcAhead_EmitterDesign ( math::VEC3 * pAxisY,
AheadContext * pContext )
inlinestaticprotected

Definition at line 154 of file ef_drawstrategyimpl.h.

◆ CalcAhead_Particle()

static void nw4r::ef::DrawStrategyImpl::CalcAhead_Particle ( math::VEC3 * pAxisY,
AheadContext * pContext,
Particle * pParticle )
inlinestaticprotected

Definition at line 160 of file ef_drawstrategyimpl.h.

◆ CalcAhead_NoDesign()

static void nw4r::ef::DrawStrategyImpl::CalcAhead_NoDesign ( math::VEC3 * pAxisY,
AheadContext * pContext )
inlinestaticprotected

Definition at line 179 of file ef_drawstrategyimpl.h.

◆ CalcAhead_ParticleBoth()

static void nw4r::ef::DrawStrategyImpl::CalcAhead_ParticleBoth ( math::VEC3 * pAxisY,
AheadContext * pContext,
Particle * pParticle )
inlinestaticprotected

Definition at line 183 of file ef_drawstrategyimpl.h.

◆ GetNumDrawParticle()

int nw4r::ef::DrawStrategyImpl::GetNumDrawParticle ( ParticleManager * pManager)
inlineprotected

Definition at line 222 of file ef_drawstrategyimpl.h.

◆ GetElderParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetElderParticle ( ParticleManager * pManager,
Particle * pParticle )
inlinestaticprotected

Definition at line 226 of file ef_drawstrategyimpl.h.

◆ GetYoungerParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetYoungerParticle ( ParticleManager * pManager,
Particle * pParticle )
inlinestaticprotected

Definition at line 234 of file ef_drawstrategyimpl.h.

◆ GetOldestParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetOldestParticle ( ParticleManager * pManager)
inlinestaticprotected

Definition at line 243 of file ef_drawstrategyimpl.h.

◆ GetYoungestParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetYoungestParticle ( ParticleManager * pManager)
inlinestaticprotected

Definition at line 247 of file ef_drawstrategyimpl.h.

◆ GetElderDrawParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetElderDrawParticle ( ParticleManager * pManager,
Particle * pParticle )
inlinestaticprotected

Definition at line 252 of file ef_drawstrategyimpl.h.

◆ GetYoungerDrawParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetYoungerDrawParticle ( ParticleManager * pManager,
Particle * pParticle )
inlinestaticprotected

Definition at line 265 of file ef_drawstrategyimpl.h.

◆ GetOldestDrawParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetOldestDrawParticle ( ParticleManager * pManager)
inlinestaticprotected

Definition at line 279 of file ef_drawstrategyimpl.h.

◆ GetYoungestDrawParticle()

static Particle * nw4r::ef::DrawStrategyImpl::GetYoungestDrawParticle ( ParticleManager * pManager)
inlinestaticprotected

Definition at line 290 of file ef_drawstrategyimpl.h.

◆ Normalize()

static bool nw4r::ef::DrawStrategyImpl::Normalize ( math::VEC3 * pVec)
inlinestaticprotected

Definition at line 302 of file ef_drawstrategyimpl.h.

◆ GetXUnitVec()

static const math::VEC3 & nw4r::ef::DrawStrategyImpl::GetXUnitVec ( )
inlinestaticprotected

Definition at line 313 of file ef_drawstrategyimpl.h.

◆ GetYUnitVec()

static const math::VEC3 & nw4r::ef::DrawStrategyImpl::GetYUnitVec ( )
inlinestaticprotected

Definition at line 316 of file ef_drawstrategyimpl.h.

◆ GetZUnitVec()

static const math::VEC3 & nw4r::ef::DrawStrategyImpl::GetZUnitVec ( )
inlinestaticprotected

Definition at line 319 of file ef_drawstrategyimpl.h.

Member Data Documentation

◆ mPrevTexture

PrevTexture nw4r::ef::DrawStrategyImpl::mPrevTexture[TEX_LAYER_MAX]
protected

Definition at line 345 of file ef_drawstrategyimpl.h.

◆ mPrevColor

GXColor nw4r::ef::DrawStrategyImpl::mPrevColor[COLOR_LAYER_MAX][COLOR_IDX_MAX]
protected

Definition at line 346 of file ef_drawstrategyimpl.h.

◆ mPrevARef0

int nw4r::ef::DrawStrategyImpl::mPrevARef0
protected

Definition at line 347 of file ef_drawstrategyimpl.h.

◆ mPrevARef1

int nw4r::ef::DrawStrategyImpl::mPrevARef1
protected

Definition at line 348 of file ef_drawstrategyimpl.h.

◆ mUseColor1

bool nw4r::ef::DrawStrategyImpl::mUseColor1
protected

Definition at line 349 of file ef_drawstrategyimpl.h.

◆ mUseColor2

bool nw4r::ef::DrawStrategyImpl::mUseColor2
protected

Definition at line 350 of file ef_drawstrategyimpl.h.

◆ mNumTexmap

u8 nw4r::ef::DrawStrategyImpl::mNumTexmap
protected

Definition at line 351 of file ef_drawstrategyimpl.h.

◆ mTexmapMap

int nw4r::ef::DrawStrategyImpl::mTexmapMap[TEX_LAYER_MAX]
protected

Definition at line 352 of file ef_drawstrategyimpl.h.

◆ mXUnitVec

const math::VEC3 nw4r::ef::DrawStrategyImpl::mXUnitVec
staticprotected

Definition at line 354 of file ef_drawstrategyimpl.h.

◆ mYUnitVec

const math::VEC3 nw4r::ef::DrawStrategyImpl::mYUnitVec
staticprotected

Definition at line 355 of file ef_drawstrategyimpl.h.

◆ mZUnitVec

const math::VEC3 nw4r::ef::DrawStrategyImpl::mZUnitVec
staticprotected

Definition at line 356 of file ef_drawstrategyimpl.h.

◆ mZeroVec

const math::VEC3 nw4r::ef::DrawStrategyImpl::mZeroVec
staticprotected

Definition at line 358 of file ef_drawstrategyimpl.h.

◆ mIdentityMtx

const math::MTX34 nw4r::ef::DrawStrategyImpl::mIdentityMtx
staticprotected

Definition at line 359 of file ef_drawstrategyimpl.h.