// This file is distributed under a BSD license. See LICENSE.txt for details. #ifndef __GENEFFECTEX_HPP__ #define __GENEFFECTEX_HPP__ #include "_types.hpp" #include "_start.hpp" #include "kdoc.hpp" #include "geneffect.hpp" /****************************************************************************/ KObject * __stdcall Init_Effect_Chaos1(class GenMaterial *mtrl,sF323 a,sF323 b,sF323 c,sInt flags,sInt effect,sInt seed,sInt maxcount); void __stdcall Exec_Effect_Chaos1(KOp *op,KEnvironment *kenv,sF323 a,sF323 b,sF323 c,sInt flags,sInt effect,sInt seed,sInt maxcount); KObject * __stdcall Init_Effect_Tourque(class GenMaterial *mtrl,class GenMesh *mesh,sInt Seed,sInt MaxCount,sInt Rate,sInt Flags,sF32 SizeF,sF32 SizeS,sF32 Speed,sF32 Damp,sF323 Pos,sF323 Range,sInt Slot); void __stdcall Exec_Effect_Tourque(KOp *op,KEnvironment *kenv,sInt Seed,sInt MaxCount,sInt Rate,sInt Flags,sF32 SizeF,sF32 SizeS,sF32 Speed,sF32 Damp,sF323 Pos,sF323 Range,sInt Slot); struct StreamPara { sInt Seed; sInt Count; sInt Rate; sInt Flags; sInt Slot; sF32 SizeF,SizeS; sF32 Speed; sVector Pos[4]; sF32 StuffX; sF32 StuffY; sF32 StuffZ; sF32 StuffW; sVector Light[2]; }; KObject * __stdcall Init_Effect_Stream(class GenMaterial *mtrl,StreamPara para); void __stdcall Exec_Effect_Stream(KOp *op,KEnvironment *kenv,StreamPara para); /****************************************************************************/ KObject * __stdcall Init_Effect_BP06Spirit(class GenMaterial *mtrl,class GenMaterial *mtrl2,sF323 pos,sF32 radius,sF32 corerad,sF32 perlfreq,sF32 perlamp,sF32 perlanim,sU32 coli,sU32 colo,sU32 colc,sInt partcount,sF32 partrad,sF32 partspeed,sF32 partthick,sF32 partanim,sInt segments); void __stdcall Exec_Effect_BP06Spirit(KOp *op,KEnvironment *kenv,sF323 pos,sF32 radius,sF32 corerad,sF32 perlfreq,sF32 perlamp,sF32 perlanim,sU32 coli,sU32 colo,sU32 colc,sInt partcount,sF32 partrad,sF32 partspeed,sF32 partthick,sF32 partanim,sInt segments); KObject * __stdcall Init_Effect_BP06Jungle(class GenMaterial *mtrl,sInt segments,sInt slices,sF32 thickness,sF32 thickscale,sF32 length,sF32 lenscale,sF32 sangle,sF32 carfreq,sF32 caramp,sF32 modfreq,sF32 modamp,sF32 modphase); void __stdcall Exec_Effect_BP06Jungle(KOp *op,KEnvironment *kenv,sInt segments,sInt slices,sF32 thickness,sF32 thickscale,sF32 length,sF32 lenscale,sF32 sangle,sF32 carfreq,sF32 caramp,sF32 modfreq,sF32 modamp,sF32 modphase); /****************************************************************************/ KObject * __stdcall Init_Effect_GridStuff(class GenMaterial *mtrl,sInt xRes,sInt yRes,sU32 col1,sU32 col2); void __stdcall Exec_Effect_GridStuff(KOp *op,KEnvironment *kenv,sInt xRes,sInt yRes,sU32 col1,sU32 col2); /****************************************************************************/ class GenImageList : public KObject { struct Image { sInt TexHandle; sInt XRes; sInt YRes; }; sArray Images; public: GenImageList(); ~GenImageList(); void Copy(KObject *o); void Clear(); // AddImage transfers ownership of handle to *this. void AddImage(sInt handle,sInt xRes,sInt yRes); void Append(const GenImageList& other); sInt GetImage(sInt index,sInt *xRes=0,sInt *yRes=0) const; }; GenImageList * __stdcall Init_Misc_ImageList(KOp *op); KObject * __stdcall Init_Effect_ImageJukebox(GenImageList *list,sInt pass,sInt index,sF32 whiten,sF32 amplify,sF32 fade); void __stdcall Exec_Effect_ImageJukebox(KOp *op,KEnvironment *kenv,sInt pass,sInt index,sF32 whiten,sF32 amplify,sF32 fade); /****************************************************************************/ #endif