mirror of
https://github.com/UOX3DevTeam/UOX3
synced 2026-08-13 12:27:04 -04:00
Make spell and spellbook ranges data-driven so custom schools can extend beyond the original Magery limits. - add SPELLBOOKDATA persistence and use configured spell/scroll ranges across book lookup, display, packets, scroll drops, and casting - load spell definitions by their highest configured ID and widen spell IDs through core and JavaScript event paths - support section-based custom reagents with optional amounts and colors, including JavaScript inspection - add script-owned temporary effects with pause, resume, removal, and expiration callbacks
42 lines
2.3 KiB
C++
42 lines
2.3 KiB
C++
#ifndef __CEFFECTS_H__
|
|
#define __CEFFECTS_H__
|
|
|
|
class cEffects
|
|
{
|
|
private:
|
|
void HandleMakeItemEffect( CTEffect *tMake );
|
|
public:
|
|
void TempEffect( CChar *source, CChar *dest, UI08 num, UI16 more1, UI16 more2, UI16 more3, CItem *targItemPtr = nullptr, UI16 assocScript = 0xFFFF );
|
|
void TempEffect( CChar *source, CItem *dest, UI08 num, UI16 more1, UI16 more2, UI16 more3, UI16 assocScript = 0xFFFF );
|
|
void CheckTempeffects( void );
|
|
void SaveEffects( void );
|
|
void LoadEffects( void );
|
|
|
|
// Visual Effects
|
|
void DeathAction( CChar *s, CItem *x, UI08 fallDirection );
|
|
CItem * SpawnBloodEffect( UI08 worldNum, UI16 instanceId, UI16 bloodColour, BloodTypes bloodType );
|
|
void PlayStaticAnimation( CBaseObject *target, UI16 effect, UI08 speed, UI08 loop, bool explode = false );
|
|
void PlayStaticAnimation( SI16 x, SI16 y, SI08 z, UI16 effect, UI08 speed, UI08 loop, bool explode );
|
|
void PlayMovingAnimation( CBaseObject *source, CBaseObject *dest, UI16 effect, UI08 speed, UI08 loop, bool explode, UI32 dwHue = 0, UI32 dwRenderMode = 0, bool playLocalMoveFX = false );
|
|
void PlayMovingAnimation( SI16 srcX, SI16 srcY, SI08 srcZ, SI16 x, SI16 y, SI08 z, UI16 effect, UI08 speed, UI08 loop, bool explode, UI32 dwHue = 0, UI32 dwRenderMode = 0, bool playLocalMoveFX = false );
|
|
void PlayMovingAnimation( CBaseObject *source, SI16 x, SI16 y, SI08 z, UI16 effect, UI08 speed, UI08 loop, bool explode, UI32 dwHue = 0, UI32 dwRenderMode = 0, bool playLocalMoveFX = false );
|
|
void PlayCharacterAnimation( CChar *mChar, UI16 actionId, UI08 frameDelay = 0, UI08 frameCount = 7, bool playBackwards = false );
|
|
void PlayNewCharacterAnimation( CChar *mChar, UI16 actionId, UI16 subActionId = 0, UI08 subSubActionId = 0 );
|
|
void PlaySpellCastingAnimation( CChar *mChar, UI16 actionId, bool monsterCast, bool areaCastAnim );
|
|
void Bolteffect( CChar *player );
|
|
|
|
// Sound Effects
|
|
void PlaySound( CSocket *mSock, UI16 soundId, bool allHear );
|
|
void PlaySound( CBaseObject *baseObj, UI16 soundId, bool allHear = true );
|
|
void PlayBGSound( CSocket& mSock, CChar& mChar );
|
|
void ItemSound( CSocket *s, CItem *item, bool bAllHear = false );
|
|
void GoldSound( CSocket *s, UI32 goldTotal, bool bAllHear = false);
|
|
void PlayTileSound( CChar *mChar, CSocket *mSock );
|
|
void PlayDeathSound( CChar *i );
|
|
void PlayMusic( CSocket *s, UI16 number );
|
|
void DoSocketMusic( CSocket *s );
|
|
};
|
|
|
|
extern cEffects *Effects;
|
|
|
|
#endif
|