///* // SGameFxWeaponPowerup.h // 무기 강화 이펙트 implementations // // Created 2006/05, by JiYoung //*/ // // //#ifndef __SGAMEFXWEAPONPOWERUP_H__ //#define __SGAMEFXWEAPONPOWERUP_H__ // //#include "KSeqForm.h" // //#include "ConsoleHelper.h" // // ////====================================== //// 강화 이펙트의 top-level virtual ////====================================== //class SGameFxWeaponPowerup : public KSeqForm, public ConsoleHelper { // 나왔다 최지영 필살 多重槪念體重復相續! //public: // SGameFxWeaponPowerup() : KSeqForm() {}; // virtual ~SGameFxWeaponPowerup() {} ; // // // // // Inherited from parent // // // virtual int Process(DWORD dwTime) = 0; // 참고: dwTime값은 실질적으로 undetermined이므로, ::GetSafeTickCount()등등 세계의 시간에 준거하여 행동할 것 // virtual void Render( KViewportObject *viewport, DWORD flag = RENDEREFX_NONE, const K3DMatrix * pAttachMat = NULL ) = 0; // // // // // Inheriting to childs // // // virtual bool init(KMeshPrimitive *source)=0; // 주어진 무기 mesh로부터 FX용 mesh를 초기화 // virtual void close()=0; // //virtual bool attach(...)=0; // //}; // // // ////======================================= //// 외곽 Glow만 있는 renderer ////======================================= //class SGameFxWeaponPowerup_Glow : public SGameFxWeaponPowerup { //public: // SGameFxWeaponPowerup_Glow(); // virtual ~SGameFxWeaponPowerup_Glow(); // // // // // Inherited from SGameFxWeaponPowerup // // // virtual bool init(KMeshPrimitive *source); // 주어진 무기 mesh로부터 FX용 mesh를 초기화 // virtual void close(); // 초기화된거 날린다 // // virtual int Process(DWORD dwTime); // 애니메이션 시킨다 // virtual void Render( KViewportObject *viewport, DWORD flag = RENDEREFX_NONE, const K3DMatrix * pAttachMat = NULL ); // // // // // // Inherited from ConsoleHelper // // // virtual void processConsoleCommand(std::string &key, int argc, std::vector &argv, char *outputBuffer); // // Game console에서 들어온 파라미터를 redirect한다 // // outputBuffer : 처리 결과를 sprintf()할 텍스트 버퍼. 여기 들어가는 결과가 콘솔 화면에 출력된다 // virtual bool buildConfigurationText(char *outputBuffer); // // Status를 읽어서 config file을 build한다. // // outputBuffer: config file을 홀드할 '충분히 큰' 버퍼 // //public: // // // // FxAnimatedEdgeGlow용 파라미터들 // // Note : Default값은 constructor에서 설정한다. 변화시키고 싶으면 init()을 부르기 전에 세팅해야 한다. // // 또는, 바꾸고 나서 close()와 init()을 차례로 불러줘야 한다 // // // int m_nTotalFrameCount; // 전체 애니메이션 프레임 수. 대충 16~32 // int m_nAnimationLoopDistance; // 반복될 애니메이션 간의 간격. 대충 4~8 // int m_nAnimationDelayTime; // 프레임 애니메이션 속도 (애니메이션 프레임 간의 시간간격) // // int m_nMarkFrameNumber; // markFrame : 중간의 어떤 적절한 프레임. 애니메이션 경계를 주기 위해 사용 // // DWORD m_dwStartColor0, m_dwStartColor1; // 0번 프레임의 컬러. 24bit ARGB // DWORD m_dwMarkColor0, m_dwMarkColor1; // (markFrame)번 프레임의 컬러 // DWORD m_dwEndColor0, m_dwEndColor1; // (numFrames-1)번 프레임의 컬러 // // float m_fStartEnlargeOffset; // 0번 프레임의 메쉬 확대 거리. 대충 +0.01정도? // float m_fMarkEnlargeOffset; // (markFrame)번 프레임의 메쉬 크기. // float m_fEndEnlargeOffset; // (numFrames-1)번 프레임의 메쉬 크기. 대충 +0.6정도? // //protected: // class FxAnimatedEdgeGlow *edgeGlowModel; // //}; // ////======================================= //// 외곽 Glow + 빌보드 파티클 ////======================================= //class SGameFxWeaponPowerup_GlowAddParticle : public SGameFxWeaponPowerup { //public: // //}; // ////================================== //// 디버그용 콘솔 커맨드 프로세서 ////================================== //char *WeaponPowerupProcessConsoleCommand(std::string &key, int argc, std::vector &argv); // // //#endif // __SGAMEFXWEAPONPOWERUP_H__ // //