diff --git a/loader/include/Geode/cocos/include/cocos2d.h b/loader/include/Geode/cocos/include/cocos2d.h index f2426f06..cbcc600c 100644 --- a/loader/include/Geode/cocos/include/cocos2d.h +++ b/loader/include/Geode/cocos/include/cocos2d.h @@ -325,6 +325,8 @@ THE SOFTWARE. #include "../robtop/scene_nodes/CCSceneTransitionDelegate.h" +#include "../robtop/special_nodes/CCLightning.h" + #include "../robtop/xml/DS_Dictionary.h" #include "../robtop/xml/ObjectDecoder.h" diff --git a/loader/include/Geode/cocos/robtop/special_nodes/CCLightning.h b/loader/include/Geode/cocos/robtop/special_nodes/CCLightning.h new file mode 100644 index 00000000..ce7972e6 --- /dev/null +++ b/loader/include/Geode/cocos/robtop/special_nodes/CCLightning.h @@ -0,0 +1,70 @@ +#ifndef __CCLIGHTNING_H__ +#define __CCLIGHTNING_H__ + +#include "../../include/ccMacros.h" +#include "../../base_nodes/CCNode.h" + +NS_CC_BEGIN + +// @note RobTop Addition +class CCLightning : public CCNode, public CCRGBAProtocol { +public: + CCLightning(); + virtual ~CCLightning(); + + static CCLightning* lightningWithStrikePoint(CCPoint strikePoint, CCPoint strikePoint2, float duration); + static CCLightning* lightningWithStrikePoint(CCPoint strikePoint); + + bool initWithStrikePoint(CCPoint strikePoint, CCPoint strikePoint2, float duration); + bool initWithStrikePoint(CCPoint strikePoint); + + void strike(); + void strikeFinished(); + + void strikeRandom(); + void strikeWithSeed(uint64_t seed); + + void draw(); + + // cocos2d::CCRGBAProtocol + bool isOpacityModifyRGB(); + void setOpacityModifyRGB(bool); + unsigned char getOpacity(); + unsigned char getDisplayedOpacity(); + void setOpacity(unsigned char); + void updateDisplayedOpacity(unsigned char); + bool isCascadeColorEnabled(); + void setCascadeOpacityEnabled(bool); + ccColor3B const& getColor(); + ccColor3B const& getDisplayedColor(); + void setColor(ccColor3B const&); + void updateDisplayedColor(ccColor3B const&); + bool isCascadeOpacityEnabled(); + void setCascadeColorEnabled(bool); + +protected: + CCPoint m_strikePoint; + CCPoint m_strikePoint2; + bool m_split; + int m_displacement; + int m_minDisplacement; + uint64_t m_seed; + float m_lineWidth; + bool m_unkBool; + bool m_removeAfterFinished; + float m_duration; + float m_opacityModify; + std::array* m_lightningPoints; + uint32_t m_numPoints; + uint8_t m_displayedOpacity; + uint8_t m_opacity; + ccColor3B m_displayedColor; + ccColor3B m_color; + bool m_cascadeColorEnabled; + bool m_cascadeOpacityEnabled; + bool m_opacityModifyEnabled; +}; + +NS_CC_END + +#endif //__CCLIGHTNING_H__ \ No newline at end of file