Files
2026-06-01 12:46:52 +02:00

229 lines
6.6 KiB
C++

/*
<함수 호출 순서>
1. SetDevice()
2. SetupTiles()
3. LoadTexture() / SetTexture()
4. Process()
5. Render()
*/
#pragma once
#include "stdafx.h"
#include "kseqform.h"
#include "KResource.h"
#include "KPrimitiveTile.h"
#include "KRenderDevice.h"
int Randomize(int nMin, int nMax);
float Randomize(float fMin, float fMax);
class KSeqLoadingScreen :
public KSeqForm
{
public:
KSeqLoadingScreen();
virtual ~KSeqLoadingScreen();
virtual void Destroy();
//void SetDevice(class K3DRenderDevice* pRenderDevice) {m_pRenderDevice = pRenderDevice;}
virtual void Render( KViewportObject *viewport, DWORD flag = RENDEREFX_NONE, const K3DMatrix * pAttachMat = NULL );
virtual int Process( DWORD dwTime );
bool LoadTexture(const char* pszTexFile);
void SetTexture(K3DTexture* pTexture);
virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 1, int numTilesInAColumn = 1);
//void SetupTiles(STileVertex min, STileVertex max, int numTilesInARow = 1, int numTilesInAColumn = 1);
virtual void ResetTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max);
protected:
K3DTexture* m_pTexture;
KTilePrimitive* m_Tiles;
//K3DRenderDevice* m_pRenderDevice;
int m_numTilesInARow;
int m_numTilesInAColumn;
};
class KSeqScreenTransition : public KSeqLoadingScreen
{
public:
KSeqScreenTransition();
virtual ~KSeqScreenTransition();
virtual void Destroy();
//virtual int Process( DWORD dwTime );
virtual void StartAnimation(DWORD dwTime);
//virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 1, int numTilesInAColumn = 1);
//virtual void ResetTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max);
protected:
DWORD m_dwStartTime;
DWORD m_dwLife;
};
class KSeqDissolveScreen : public KSeqScreenTransition
{
public:
KSeqDissolveScreen();
virtual ~KSeqDissolveScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
//virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 1, int numTilesInAColumn = 1);
//virtual void ResetTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max);
protected:
//DWORD m_dwStartTime;
//DWORD m_dwElapsedTime;
//DWORD m_dwLife;
};
class KSeqWipeScreen : public KSeqScreenTransition
{
public:
KSeqWipeScreen();
virtual ~KSeqWipeScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
//virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 1, int numTilesInAColumn = 1);
protected:
//DWORD m_dwStartTime;
//DWORD m_dwElapsedTime;
//DWORD m_dwLife;
};
class KSeqBlindScreen : public KSeqScreenTransition
{
public:
KSeqBlindScreen();
virtual ~KSeqBlindScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
//virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 16, int numTilesInAColumn = 1);
//virtual void ResetTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max);
protected:
//DWORD m_dwStartTime;
//DWORD m_dwLife;
};
class KSeqMeltScreen : public KSeqScreenTransition
{
public:
KSeqMeltScreen();
virtual ~KSeqMeltScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
//virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 100, int numTilesInAColumn = 1);
protected:
//DWORD m_dwStartTime;
//DWORD m_dwLife;
float* m_fDropSpeeds;
};
class KSeqShrinkScreen : public KSeqScreenTransition
{
public:
KSeqShrinkScreen();
virtual ~KSeqShrinkScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
//virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 16, int numTilesInAColumn = 16);
protected:
//DWORD m_dwStartTime;
//DWORD m_dwLife;
};
class KSeqSpinAndShrinkScreen : public KSeqScreenTransition
{
public:
KSeqSpinAndShrinkScreen();
virtual ~KSeqSpinAndShrinkScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
//virtual void StartAnimation(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 16, int numTilesInAColumn = 16);
protected:
//DWORD m_dwStartTime;
//DWORD m_dwLife;
float m_fSpinSpeed;
};
class KSeqWarpDissolveScreen : public KSeqScreenTransition
{
public:
KSeqWarpDissolveScreen();
virtual ~KSeqWarpDissolveScreen();
virtual void Destroy();
virtual int Process( DWORD dwTime );
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 16, int numTilesInAColumn = 16);
protected:
float m_fWarpCoefficient;
float* m_fDeltaUs;
float* m_fDeltaVs;
float* m_fJiggles;
};
class KSeqTileTransition : public KSeqScreenTransition
{
public:
KSeqTileTransition();
virtual ~KSeqTileTransition();
virtual void Destroy();
protected:
int* m_Priorities; // 타일 수만큼 할당하여 사용 (m_numPriorities 만큼이 아님)
int m_numPriorities;
};
class KSeqTileConcentric : public KSeqTileTransition
{
public:
KSeqTileConcentric();
virtual ~KSeqTileConcentric();
//virtual int Process(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 15, int numTilesInAColumn = 15);
};
class KSeqTileWipe : public KSeqTileTransition
{
public:
KSeqTileWipe();
virtual ~KSeqTileWipe();
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 16, int numTilesInAColumn = 16);
};
class KSeqSpinShrinkTileConcentric : public KSeqTileConcentric
{
public:
KSeqSpinShrinkTileConcentric();
virtual ~KSeqSpinShrinkTileConcentric();
virtual void Destroy();
virtual int Process(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 15, int numTilesInAColumn = 15);
protected:
float m_fSpinSpeed;
};
class KSeqSpinShrinkTileWipe : public KSeqTileWipe
{
public:
KSeqSpinShrinkTileWipe();
virtual ~KSeqSpinShrinkTileWipe();
virtual void Destroy();
virtual int Process(DWORD dwTime);
virtual void SetupTiles(KTilePrimitive::STileVertex min, KTilePrimitive::STileVertex max, int numTilesInARow = 16, int numTilesInAColumn = 16);
protected:
float m_fSpinSpeed;
};