This commit is contained in:
rooot 2025-03-19 17:34:10 +01:00
commit 683b603d68
No known key found for this signature in database
GPG key ID: 3582D7B034FF964F
83 changed files with 218 additions and 24 deletions
CHANGELOG.mdVERSION
loader
CMakeLists.txt
include/Geode
c++stl/gnustl
cocos
CCCamera.hCCConfiguration.hCCScheduler.h
actions
base_nodes
cocoa
effects
extensions
keypad_dispatcher
label_nodes
layers_scenes_transitions_nodes
menu_nodes
misc_nodes
particle_nodes
platform
robtop
script_support
shaders
sprite_nodes
support
text_input_node
textures
tilemap_parallax_nodes
touch_dispatcher
src

View file

@ -1,21 +1,33 @@
# Geode Changelog
## v4.3.1
* Fix `SimpleAxisLayout` not respecting `Layout::ignoreInvisibleChildren` (a16d230)
* Fix MacOS arrow keys (#1267)
* Fix ScrollLayer culling with scaled children (f03cee8)
## v4.3.0
* Event export macro (#1243)
* See [the docs](https://docs.geode-sdk.org/mods/dependencies#event-macro) for more info
* Fix settings `enable-if` parsing (315bf46, 1542e29)
* Add `SimpleAxisLayout` (#1223)
* A simpler and faster alternative to `AxisLayout`. Some features may be missing
* Add environment variable for forcing terminal colors (39b1bef)
* Fix crashlog PDB search paths (#1222)
* Add support for missing keys and mouse buttons (#1258)
* Add utils::string::trim* overloads for specific charset (0d4dcb3, 17faf36)
* Round number settings to 5 decimal places (c9dbc4b)
* Allow number inputs to be invalid while typing and active (6c6215b)
* Optimize m_fields access to perform no allocations (7548421)
* Allow `Task<void>`, useful for coroutines (2bfff1a, 463ea22)
* Add some coroutine utils (99cefab)
* Fix culling on ScrollLayer (b136e3b, b733c36)
* Fix `WeakRef` behavior with nullptr (9a8939f)
* Remove handler from function if no hooks are active (dc14d4c)
* Fix some bugs in `geode::utils::ranges` methods (#1236, #1239)
* Add patch for `CCGLProgram::compileShader` on remaining platforms (#1241)
* Update the pugixml headers to be v1.15 compatible (#1247)
* Allow auto update across major versions if running in forward compat mode (4bb17a9)
* Re-add console log level to android (b1dc29a)
## v4.2.0
* Implement gd::set for android (#1197, #1207)

View file

@ -1 +1 @@
4.2.1
4.3.1

View file

@ -149,7 +149,7 @@ endif()
if (ANDROID AND GEODE_USE_BREAKPAD)
CPMAddPackage("gh:qimiko/breakpad#161e908")
CPMAddPackage("gh:qimiko/breakpad#169df6a")
endif()
add_library(${PROJECT_NAME} SHARED ${SOURCES})

View file

@ -425,7 +425,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* Insertion requires logarithmic time.
*/
template<typename... _Args>
std::pair<iterator, bool>
pair<iterator, bool>
emplace(_Args&&... __args)
{ return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); }
@ -472,21 +472,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*
* Insertion requires logarithmic time.
*/
std::pair<iterator, bool>
pair<iterator, bool>
insert(const value_type& __x)
{
std::pair<typename _Rep_type::iterator, bool> __p =
pair<typename _Rep_type::iterator, bool> __p =
_M_t._M_insert_unique(__x);
return std::pair<iterator, bool>(__p.first, __p.second);
return pair<iterator, bool>(__p.first, __p.second);
}
#if __cplusplus >= 201103L
std::pair<iterator, bool>
pair<iterator, bool>
insert(value_type&& __x)
{
std::pair<typename _Rep_type::iterator, bool> __p =
pair<typename _Rep_type::iterator, bool> __p =
_M_t._M_insert_unique(std::move(__x));
return std::pair<iterator, bool>(__p.first, __p.second);
return pair<iterator, bool>(__p.first, __p.second);
}
#endif
@ -749,11 +749,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*
* This function probably only makes sense for multisets.
*/
std::pair<iterator, iterator>
pair<iterator, iterator>
equal_range(const key_type& __x)
{ return _M_t.equal_range(__x); }
std::pair<const_iterator, const_iterator>
pair<const_iterator, const_iterator>
equal_range(const key_type& __x) const
{ return _M_t.equal_range(__x); }
//@}

View file

@ -80,6 +80,7 @@ public:
bool m_bDirty;
kmMat4 m_lookupMatrix;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCCamera, CCObject)
/**
* @js ctor
*/

View file

@ -63,6 +63,7 @@ public:
static void purgeConfiguration(void);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCConfiguration, CCObject)
/**
* @js NA
* @lua NA

View file

@ -53,6 +53,7 @@ class CC_DLL CCTimer : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTimer, CCObject)
/**
* @js ctor
* @lua NA

View file

@ -185,6 +185,7 @@ class CC_DLL CCSpeed : public CCAction
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCSpeed, CCAction)
/**
* @js ctor
*/
@ -243,6 +244,7 @@ class CC_DLL CCFollow : public CCAction
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCFollow, CCAction)
/**
* @js ctor
*/

View file

@ -59,6 +59,7 @@ class CC_DLL CCPointArray : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCPointArray, CCObject)
/** creates and initializes a Points array with capacity
* @lua NA
@ -121,6 +122,7 @@ class CC_DLL CCCardinalSplineTo : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCCardinalSplineTo, CCActionInterval)
/** creates an action with a Cardinal Spline array of points and tension
* @code
@ -193,6 +195,7 @@ class CC_DLL CCCardinalSplineBy : public CCCardinalSplineTo
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCCardinalSplineBy, CCCardinalSplineTo)
/** creates an action with a Cardinal Spline array of points and tension
* @code

View file

@ -42,6 +42,9 @@ class CC_DLL CCGridAction : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCGridAction, CCActionInterval)
CCGridAction() {}
/**
* @js NA
* @lua NA
@ -98,6 +101,9 @@ class CC_DLL CCTiledGrid3DAction : public CCGridAction
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTiledGrid3DAction, CCGridAction)
CCTiledGrid3DAction() {}
/** returns the tile that belongs to a certain position of the grid */
ccQuad3 tile(const CCPoint& position);
/** returns the non-transformed tile that belongs to a certain position of the grid */

View file

@ -301,6 +301,7 @@ class CC_DLL CCCallFunc : public CCActionInstant //<NSCopying>
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCCallFunc, CCActionInstant)
/**
* @js ctor
*/
@ -485,6 +486,8 @@ class CC_DLL CCCallFuncO : public CCCallFunc, public TypeInfo
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCCallFuncO, CCCallFunc)
CCCallFuncO();
virtual ~CCCallFuncO();

View file

@ -107,6 +107,9 @@ class CC_DLL CCSequence : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCSequence, CCActionInterval)
CCSequence() {}
/**
* @js NA
* @lua NA
@ -178,6 +181,9 @@ class CC_DLL CCRepeat : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCRepeat, CCActionInterval)
CCRepeat() {}
/**
* @js NA
* @lua NA
@ -288,6 +294,9 @@ class CC_DLL CCSpawn : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCSpawn, CCActionInterval)
CCSpawn() {}
/**
* @js NA
* @lua NA
@ -470,6 +479,7 @@ class CC_DLL CCSkewTo : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCSkewTo, CCActionInterval)
/**
* @js ctor
*/
@ -890,6 +900,7 @@ class CC_DLL CCReverseTime : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCReverseTime, CCActionInterval)
/**
* @js ctor
*/
@ -925,6 +936,7 @@ class CC_DLL CCAnimate : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCAnimate, CCActionInterval)
/**
* @js ctor
*/
@ -972,6 +984,7 @@ class CC_DLL CCTargetedAction : public CCActionInterval
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTargetedAction, CCActionInterval)
/**
* @js ctor
*/

View file

@ -90,6 +90,8 @@ class CC_DLL CCShuffleTiles : public CCTiledGrid3DAction
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCShuffleTiles, CCTiledGrid3DAction)
CCShuffleTiles() {}
/**
* @js NA
* @lua NA
@ -191,6 +193,8 @@ class CC_DLL CCTurnOffTiles : public CCTiledGrid3DAction
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTurnOffTiles, CCTiledGrid3DAction)
CCTurnOffTiles() {}
/**
* @js NA
* @lua NA

View file

@ -80,6 +80,7 @@ public:
bool m_bIgnoreContentScaleFactor;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCAtlasNode, CCNodeRGBA)
/**
* @js ctor
*/

View file

@ -115,6 +115,7 @@ class CC_DLL CCArray : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCArray, CCObject)
/**
* @lua NA
*/

View file

@ -41,6 +41,8 @@ class CC_DLL CCAutoreleasePool : public CCObject
GEODE_FRIEND_MODIFY
public:
CCArray* m_pManagedObjectArray;
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCAutoreleasePool, CCObject)
CCAutoreleasePool(void);
~CCAutoreleasePool(void);
@ -62,6 +64,8 @@ class CC_DLL CCPoolManager
CCAutoreleasePool* getCurReleasePool();
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCPoolManager)
CCPoolManager();
~CCPoolManager();
void finalize();

View file

@ -53,6 +53,8 @@ class CC_DLL CCGridBase : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCGridBase, CCObject)
CCGridBase() {}
/**
* @js NA
* @lua NA
@ -170,6 +172,7 @@ class CC_DLL CCGrid3D : public CCGridBase
#endif // EMSCRIPTEN
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCGrid3D, CCGridBase)
CCGrid3D();
~CCGrid3D(void);
@ -209,6 +212,7 @@ class CC_DLL CCTiledGrid3D : public CCGridBase
#endif // EMSCRIPTEN
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTiledGrid3D, CCGridBase)
CCTiledGrid3D();
~CCTiledGrid3D(void);

View file

@ -53,6 +53,7 @@ NS_CC_EXT_BEGIN
class CC_DLL CCControlButton : public CCControl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlButton, CCControl)
CCControlButton();
virtual ~CCControlButton();
virtual void needsLayout(void);

View file

@ -60,6 +60,7 @@ class CC_DLL CCControlHuePicker : public CCControl
CC_SYNTHESIZE_READONLY(CCPoint, m_startPos, StartPos);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlHuePicker, CCControl)
CCControlHuePicker();
virtual ~CCControlHuePicker();
virtual bool initWithTargetAndPos(CCNode* target, CCPoint pos);

View file

@ -42,6 +42,7 @@ NS_CC_EXT_BEGIN
class CC_DLL CCControlPotentiometer : public CCControl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlPotentiometer, CCControl)
CCControlPotentiometer();
virtual ~CCControlPotentiometer();
/**

View file

@ -64,6 +64,7 @@ public:
int boxSize;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlSaturationBrightnessPicker, CCControl)
CCControlSaturationBrightnessPicker();
virtual ~CCControlSaturationBrightnessPicker();
virtual bool initWithTargetAndPos(CCNode* target, CCPoint pos);

View file

@ -69,6 +69,7 @@ class CC_DLL CCControlSlider: public CCControl
CC_SYNTHESIZE_RETAIN(CCSprite*, m_backgroundSprite, BackgroundSprite);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlSlider, CCControl)
CCControlSlider();
virtual ~CCControlSlider();

View file

@ -49,6 +49,7 @@ typedef enum
class CC_DLL CCControlStepper : public CCControl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlStepper, CCControl)
CCControlStepper();
virtual ~CCControlStepper();

View file

@ -49,6 +49,7 @@ class CC_DLL CCControlSwitchSprite;
class CC_DLL CCControlSwitch : public CCControl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCControlSwitch, CCControl)
CCControlSwitch();
virtual ~CCControlSwitch();
/** Initializes a switch with a mask sprite, on/off sprites for on/off states and a thumb sprite. */

View file

@ -176,6 +176,8 @@ class CC_DLL CCEditBox
, public CCIMEDelegate
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBox, CCControlButton)
/**
* Constructor.
*/

View file

@ -36,6 +36,9 @@ NS_CC_EXT_BEGIN
class CC_DLL CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCEditBoxImpl)
CCEditBoxImpl() {}
CCEditBoxImpl(CCEditBox* pEditBox) : m_pDelegate(NULL),m_pEditBox(pEditBox) {}
virtual ~CCEditBoxImpl() {}

View file

@ -40,6 +40,9 @@ class CC_DLL CCEditBox;
class CC_DLL CCEditBoxImplAndroid : public CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBoxImplAndroid, CCEditBoxImpl)
CCEditBoxImplAndroid() {}
CCEditBoxImplAndroid(CCEditBox* pEditText);
virtual ~CCEditBoxImplAndroid();

View file

@ -74,6 +74,9 @@ class CC_DLL CCEditBox;
class CC_DLL CCEditBoxImplIOS : public CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBoxImplIOS, CCEditBoxImpl)
CCEditBoxImplIOS() {}
CCEditBoxImplIOS(CCEditBox* pEditText);
virtual ~CCEditBoxImplIOS();

View file

@ -73,6 +73,9 @@ class CC_DLL CCEditBox;
class CC_DLL CCEditBoxImplMac : public CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBoxImplMac, CCEditBoxImpl)
CCEditBoxImplMac() {}
CCEditBoxImplMac(CCEditBox* pEditText);
virtual ~CCEditBoxImplMac();

View file

@ -44,6 +44,9 @@ class CC_DLL CCEditBox;
class CC_DLL CCEditBoxImplTizen : public CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBoxImplTizen, CCEditBoxImpl)
CCEditBoxImplTizen() {}
CCEditBoxImplTizen(CCEditBox* pEditText);
virtual ~CCEditBoxImplTizen();

View file

@ -43,6 +43,9 @@ class CC_DLL CCEditBox;
class CC_DLL CCEditBoxImplWin : public CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBoxImplWin, CCEditBoxImpl)
CCEditBoxImplWin() {}
CCEditBoxImplWin(CCEditBox* pEditText);
virtual ~CCEditBoxImplWin();

View file

@ -34,6 +34,9 @@ class CC_DLL CCEditBox;
class CC_DLL CCEditBoxImplWp8 : public CCEditBoxImpl
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCEditBoxImplWp8, CCEditBoxImpl)
CCEditBoxImplWp8() {}
CCEditBoxImplWp8(CCEditBox* pEditText);
virtual ~CCEditBoxImplWp8();

View file

@ -140,6 +140,7 @@ public:
class CC_DLL CCTableView : public CCScrollView, public CCScrollViewDelegate
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTableView, CCScrollView)
/**
* @js ctor
*/

View file

@ -49,6 +49,8 @@ class CC_DLL CCHttpClient : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCHttpClient, CCObject)
/** Return the shared instance **/
static CCHttpClient *getInstance();

View file

@ -52,6 +52,7 @@ class CC_DLL CCKeypadDispatcher : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCKeypadDispatcher, CCObject);
CCKeypadDispatcher();
~CCKeypadDispatcher();

View file

@ -127,6 +127,7 @@ public://@public
// Character Set defines the letters that actually exist in the font
gd::set<unsigned int> *m_pCharacterSet;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCBMFontConfiguration, CCObject)
CCBMFontConfiguration();
/**
* @js NA

View file

@ -430,6 +430,7 @@ protected:
unsigned int m_nEnabledLayer;
CCArray* m_pLayers;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCLayerMultiplex, CCLayer)
/**
* @js ctor
* @lua NA

View file

@ -195,6 +195,7 @@ class CC_DLL CCTransitionJumpZoom : public CCTransitionScene
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionJumpZoom, CCTransitionScene)
/**
* @js ctor
*/
@ -220,6 +221,7 @@ class CC_DLL CCTransitionMoveInL : public CCTransitionScene, public CCTransition
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionMoveInL, CCTransitionScene)
/**
* @js ctor
*/
@ -251,6 +253,7 @@ class CC_DLL CCTransitionMoveInR : public CCTransitionMoveInL
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionMoveInR, CCTransitionMoveInL)
/**
* @js ctor
*/
@ -272,6 +275,7 @@ class CC_DLL CCTransitionMoveInT : public CCTransitionMoveInL
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionMoveInT, CCTransitionMoveInL)
/**
* @js ctor
*/
@ -293,6 +297,7 @@ class CC_DLL CCTransitionMoveInB : public CCTransitionMoveInL
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionMoveInB, CCTransitionMoveInL)
/**
* @js ctor
*/
@ -314,6 +319,7 @@ class CC_DLL CCTransitionSlideInL : public CCTransitionScene, public CCTransitio
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionSlideInL, CCTransitionScene)
/**
* @js ctor
*/
@ -348,6 +354,7 @@ class CC_DLL CCTransitionSlideInR : public CCTransitionSlideInL
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionSlideInR, CCTransitionSlideInL)
/**
* @js ctor
*/
@ -375,6 +382,7 @@ class CC_DLL CCTransitionSlideInB : public CCTransitionSlideInL
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionSlideInB, CCTransitionSlideInL)
/**
* @js ctor
*/
@ -402,6 +410,7 @@ class CC_DLL CCTransitionSlideInT : public CCTransitionSlideInL
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionSlideInT, CCTransitionSlideInL)
/**
* @js ctor
*/
@ -429,6 +438,7 @@ class CC_DLL CCTransitionShrinkGrow : public CCTransitionScene , public CCTransi
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionShrinkGrow, CCTransitionScene)
/**
* @js ctor
*/
@ -456,6 +466,7 @@ class CC_DLL CCTransitionFlipX : public CCTransitionSceneOriented
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFlipX, CCTransitionSceneOriented)
/**
* @js ctor
*/
@ -483,6 +494,7 @@ class CC_DLL CCTransitionFlipY : public CCTransitionSceneOriented
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFlipY, CCTransitionSceneOriented)
/**
* @js ctor
*/
@ -510,6 +522,7 @@ class CC_DLL CCTransitionFlipAngular : public CCTransitionSceneOriented
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFlipAngular, CCTransitionSceneOriented)
/**
* @js ctor
*/
@ -537,6 +550,7 @@ class CC_DLL CCTransitionZoomFlipX : public CCTransitionSceneOriented
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionZoomFlipX, CCTransitionSceneOriented)
/**
* @js ctor
*/
@ -564,6 +578,7 @@ class CC_DLL CCTransitionZoomFlipY : public CCTransitionSceneOriented
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionZoomFlipY, CCTransitionSceneOriented)
/**
* @js ctor
*/
@ -591,6 +606,7 @@ class CC_DLL CCTransitionZoomFlipAngular : public CCTransitionSceneOriented
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionZoomFlipAngular, CCTransitionSceneOriented)
/**
* @js ctor
*/
@ -664,6 +680,7 @@ class CC_DLL CCTransitionCrossFade : public CCTransitionScene
{
GEODE_FRIEND_MODIFY
public :
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionCrossFade, CCTransitionScene)
/**
* @js ctor
*/
@ -697,6 +714,7 @@ class CC_DLL CCTransitionTurnOffTiles : public CCTransitionScene ,public CCTrans
{
GEODE_FRIEND_MODIFY
public :
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionTurnOffTiles, CCTransitionScene)
/**
* @js ctor
*/
@ -726,6 +744,7 @@ class CC_DLL CCTransitionSplitCols : public CCTransitionScene , public CCTransit
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionSplitCols, CCTransitionScene)
/**
* @js ctor
*/
@ -756,6 +775,7 @@ class CC_DLL CCTransitionSplitRows : public CCTransitionSplitCols
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionSplitRows, CCTransitionSplitCols)
/**
* @js ctor
*/
@ -780,6 +800,7 @@ class CC_DLL CCTransitionFadeTR : public CCTransitionScene , public CCTransition
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFadeTR, CCTransitionScene)
/**
* @js ctor
*/
@ -811,6 +832,7 @@ class CC_DLL CCTransitionFadeBL : public CCTransitionFadeTR
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFadeBL, CCTransitionFadeTR)
/**
* @js ctor
*/
@ -834,6 +856,7 @@ class CC_DLL CCTransitionFadeUp : public CCTransitionFadeTR
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFadeUp, CCTransitionFadeTR)
/**
* @js ctor
*/
@ -857,6 +880,7 @@ class CC_DLL CCTransitionFadeDown : public CCTransitionFadeTR
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionFadeDown, CCTransitionFadeTR)
/**
* @js ctor
*/

View file

@ -55,6 +55,7 @@ public:
bool m_bBack;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionPageTurn, CCTransitionScene)
/**
* @js ctor
*/

View file

@ -44,6 +44,8 @@ class CC_DLL CCTransitionProgress : public CCTransitionScene
GEODE_FRIEND_MODIFY
public:
static CCTransitionProgress* create(float t, CCScene* scene);
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTransitionProgress, CCTransitionScene)
/**
* @js ctor
*/

View file

@ -393,6 +393,7 @@ class CC_DLL CCMenuItemToggle : public CCMenuItem
*/
CC_PROPERTY(CCArray*, m_pSubItems, SubItems);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCMenuItemToggle, CCMenuItem)
/**
* @js ctor
*/

View file

@ -60,6 +60,7 @@ class CC_DLL CCProgressTimer : public CCNodeRGBA
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCProgressTimer, CCNodeRGBA)
/**
* @js ctor
*/

View file

@ -68,6 +68,7 @@ class CC_DLL CCParticleBatchNode : public CCNode, public CCTextureProtocol
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCParticleBatchNode, CCNode)
/**
* @js ctor
*/

View file

@ -16,6 +16,7 @@ private:
CCDevice();
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCDevice)
/**
* Gets the DPI of device
* @return The DPI of device.

View file

@ -59,6 +59,7 @@ class CC_DLL CCSAXParser
CCSAXDelegator* m_pDelegator;
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCSAXParser)
CCSAXParser();
~CCSAXParser(void);

View file

@ -44,6 +44,7 @@ class CC_DLL CCThread
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCThread)
CCThread() : m_pAutoreasePool(0) {}
~CCThread();

View file

@ -34,6 +34,7 @@ class CC_DLL CCAccelerometer
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCAccelerometer)
CCAccelerometer();
~CCAccelerometer();

View file

@ -33,6 +33,7 @@ class CC_DLL CCAccelerometer
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCAccelerometer)
CCAccelerometer();
~CCAccelerometer();

View file

@ -33,6 +33,7 @@ class CC_DLL CCAccelerometer
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCAccelerometer)
CCAccelerometer() {}
~CCAccelerometer() {}

View file

@ -33,6 +33,7 @@ class CC_DLL CCAccelerometer
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCAccelerometer)
CCAccelerometer();
~CCAccelerometer();

View file

@ -45,6 +45,7 @@ class CC_DLL CCFileUtilsWin32 : public CCFileUtils
friend class CCFileUtils;
CCFileUtilsWin32();
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCFileUtilsWin32, CCFileUtils)
/* override funtions */
bool init();
virtual void addSearchPath(const char* path);

View file

@ -12,7 +12,9 @@ class CC_DLL CCContentManager : public cocos2d::CCObject
{
public:
static CCContentManager* sharedManager();
CCContentManager();
CCContentManager() {}
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCContentManager, CCObject)
bool init();
cocos2d::CCDictionary* addDict(const char* dict, bool unk);

View file

@ -11,6 +11,7 @@ NS_CC_BEGIN
class CC_DLL CCKeyboardDispatcher : public CCObject
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCKeyboardDispatcher, CCObject)
CCKeyboardDispatcher();
virtual ~CCKeyboardDispatcher();

View file

@ -11,6 +11,7 @@ class CC_DLL CCMouseDispatcher : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCMouseDispatcher, CCObject)
CCMouseDispatcher();
virtual ~CCMouseDispatcher();

View file

@ -9,7 +9,15 @@ NS_CC_BEGIN
// @note RobTop Addition
class CC_DLL CCFontSprite : public CCSpriteExtra {
public:
CCFontSprite() {}
CCFontSprite()
: m_bUseInstant(false)
, m_fInstantTime(0.0f)
, m_fDelay(0.0f)
, m_fShakesPerSecond(0.0f)
, m_fShakeIntensity(0.0f)
, m_fShakeElapsed(0.0f)
, m_nShakeIndex(0)
{}
virtual ~CCFontSprite() {}
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCFontSprite, CCSpriteExtra);

View file

@ -9,7 +9,7 @@ NS_CC_BEGIN
// @note RobTop Addition
class CC_DLL CCSpriteExtra : public CCSprite {
public:
CCSpriteExtra() {}
CCSpriteExtra() : m_fXOffset(0.0f), m_fYOffset(0.0f) {}
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCSpriteExtra, CCSprite);
inline float getXOffset() const { return m_fXOffset; }

View file

@ -12,9 +12,9 @@ public:
// @note RobTop Addition
class CC_DLL ObjectDecoder : public cocos2d::CCNode {
public:
ObjectDecoder();
ObjectDecoder() : m_delegate(nullptr) {}
~ObjectDecoder() {}
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(ObjectDecoder)
GEODE_CUSTOM_CONSTRUCTOR_COCOS(ObjectDecoder, cocos2d::CCNode);
static ObjectDecoder* sharedDecoder();

View file

@ -271,6 +271,7 @@ class CC_DLL CCScriptEngineManager
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCScriptEngineManager)
~CCScriptEngineManager(void);
CCScriptEngineProtocol* getScriptEngine(void) {

View file

@ -46,6 +46,7 @@ class CC_DLL CCShaderCache : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCShaderCache, CCObject)
/**
* @js ctor
*/

View file

@ -56,6 +56,7 @@ class CC_DLL CCAnimationFrame : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCAnimationFrame, CCObject)
/**
* @js ctor
*/
@ -98,6 +99,7 @@ class CC_DLL CCAnimation : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCAnimation, CCObject)
/**
* @js ctor
*/

View file

@ -51,6 +51,7 @@ class CC_DLL CCAnimationCache : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCAnimationCache, CCObject)
/**
* @js ctor
*/

View file

@ -67,6 +67,8 @@ protected:
*/
CCSpriteFrameCache(void) : m_pSpriteFrames(NULL), m_pSpriteFramesAliases(NULL){}
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCSpriteFrameCache, CCObject)
bool init(void);
/**
* @js NA

View file

@ -36,6 +36,8 @@ class CC_DLL CCNotificationCenter : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCNotificationCenter, CCObject)
/** CCNotificationCenter constructor */
CCNotificationCenter();
@ -123,6 +125,9 @@ class CC_DLL CCNotificationObserver : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCNotificationObserver, CCObject)
CCNotificationObserver() {}
/** @brief CCNotificationObserver constructor
* @param target The target which wants to observer notification events.
* @param selector The callback function which will be invoked when the specified notification event was posted.

View file

@ -52,6 +52,9 @@ class CC_DLL CCProfiler : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCProfiler, CCObject)
CCProfiler() {}
~CCProfiler(void);
/** display the timers */
void displayTimers(void);
@ -76,6 +79,7 @@ public:
class CCProfilingTimer : public CCObject
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCProfilingTimer, CCObject)
CCProfilingTimer();
~CCProfilingTimer();
bool initWithName(const char* timerName);

View file

@ -38,6 +38,7 @@ protected:
CCComponent(void);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCComponent, CCObject)
/**
* @js NA
* @lua NA

View file

@ -44,6 +44,9 @@ protected:
CCComponentContainer(CCNode *pNode);
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCComponentContainer)
CCComponentContainer() {}
virtual ~CCComponentContainer(void);
virtual CCComponent* get(const char *pName) const;
virtual bool add(CCComponent *pCom);

View file

@ -46,6 +46,7 @@ class CC_DLL CCUserDefault
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCUserDefault)
~CCUserDefault();
// get value methods

View file

@ -43,6 +43,7 @@ class CC_DLL CCIMEDispatcher
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_BEGIN(CCIMEDispatcher)
~CCIMEDispatcher();
/**

View file

@ -67,6 +67,7 @@ private:
/// todo: void addImageWithAsyncObject(CCAsyncObject* async);
void addImageAsyncCallBack(float dt);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTextureCache, CCObject)
/**
* @js ctor
* @lua NA

View file

@ -38,6 +38,7 @@ class CC_DLL CCTextureETC : public CCObject
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTextureETC, CCObject)
CCTextureETC();
virtual ~CCTextureETC();

View file

@ -92,6 +92,7 @@ enum {
class CCTexturePVR : public CCObject
{
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTexturePVR, CCObject)
CCTexturePVR();
virtual ~CCTexturePVR();

View file

@ -50,6 +50,7 @@ class CC_DLL CCParallaxNode : public CCNode
CC_SYNTHESIZE(struct _ccArray *, m_pParallaxArray, ParallaxArray)
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCParallaxNode, CCNode)
/** Adds a child to the container with a z-order, a parallax ratio and a position offset
It returns self, so you can chain several addChilds.
@since v0.8

View file

@ -87,6 +87,7 @@ class CC_DLL CCTMXLayer : public CCSpriteBatchNode
/** properties from the layer. They can be added using Tiled */
CC_PROPERTY(CCDictionary*, m_pProperties, Properties);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTMXLayer, CCSpriteBatchNode)
/**
* @js ctor
* @lua NA

View file

@ -52,6 +52,7 @@ class CC_DLL CCTMXObjectGroup : public CCObject
/** array of the objects */
CC_PROPERTY(CCArray*, m_pObjects, Objects);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTMXObjectGroup, CCObject)
/**
* @js ctor
*/

View file

@ -120,6 +120,7 @@ class CC_DLL CCTMXTiledMap : public CCNode
/** properties */
CC_PROPERTY(CCDictionary*, m_pProperties, Properties);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTMXTiledMap, CCNode)
/**
* @js ctor
*/

View file

@ -101,6 +101,7 @@ public:
unsigned int m_uMaxGID;
CCPoint m_tOffset;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTMXLayerInfo, CCObject)
CCTMXLayerInfo();
virtual ~CCTMXLayerInfo();
};
@ -129,6 +130,7 @@ public:
//! size in pixels of the image
CCSize m_tImageSize;
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTMXTilesetInfo, CCObject)
CCTMXTilesetInfo();
virtual ~CCTMXTilesetInfo();
CCRect rectForGID(unsigned int gid);
@ -174,6 +176,7 @@ public:
/// properties
CC_PROPERTY(CCDictionary*, m_pProperties, Properties);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTMXMapInfo, CCObject)
/**
* @js ctor
* @lua NA

View file

@ -60,6 +60,7 @@ class CC_DLL CCTileMapAtlas : public CCAtlasNode
/** TileMap info */
CC_PROPERTY(struct sImageTGA*, m_pTGAInfo, TGAInfo);
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTileMapAtlas, CCAtlasNode)
/**
* @js ctor
*/

View file

@ -118,6 +118,7 @@ class CC_DLL CCTouchDispatcher : public CCObject, public EGLTouchDelegate
{
GEODE_FRIEND_MODIFY
public:
GEODE_CUSTOM_CONSTRUCTOR_COCOS(CCTouchDispatcher, CCObject)
/**
* @lua NA
*/

View file

@ -59,11 +59,12 @@ public:
float m_gap = 0.f;
std::optional<float> m_minRelativeScale = 0.5f;
std::optional<float> m_maxRelativeScale = 2.f;
SimpleAxisLayout* m_layout = nullptr;
std::unordered_map<CCNode*, float> m_originalScalesPerNode;
std::unordered_map<CCNode*, float> m_relativeScalesPerNode;
Impl(Axis axis) : m_axis(axis) {
Impl(Axis axis, SimpleAxisLayout* parent) : m_axis(axis), m_layout(parent) {
switch (axis) {
case Axis::Column:
m_mainAxisDirection = AxisDirection::TopToBottom;
@ -161,6 +162,10 @@ public:
}
void setScale(CCNode* on, float scale) {
// CCMenuItemSpriteExtra is quirky af
if (auto btn = typeinfo_cast<CCMenuItemSpriteExtra*>(on)) {
btn->m_baseScale = scale;
}
on->setScale(scale);
}
@ -678,7 +683,7 @@ void SimpleAxisLayout::Impl::apply(cocos2d::CCNode* layout) {
std::vector<AxisGap*> gaps;
float totalGap = 0.f;
CCNode* lastChild = nullptr;
for (auto child : CCArrayExt<CCNode*>(layout->getChildren())) {
for (auto child : CCArrayExt<CCNode*>(m_layout->getNodesToPosition(layout))) {
if (auto spacer = typeinfo_cast<SpacerNode*>(child)) {
spacers.push_back(spacer);
positionChildren.push_back(spacer);
@ -756,7 +761,7 @@ void SimpleAxisLayout::Impl::apply(cocos2d::CCNode* layout) {
this->applyMainPositioning(layout, positionChildren, spacers, totalGap);
}
SimpleAxisLayout::SimpleAxisLayout(Axis axis) : m_impl(std::make_unique<Impl>(axis)) {}
SimpleAxisLayout::SimpleAxisLayout(Axis axis) : m_impl(std::make_unique<Impl>(axis, this)) {}
SimpleAxisLayout::~SimpleAxisLayout() = default;

View file

@ -1,6 +1,9 @@
#include <Geode/DefaultInclude.hpp>
#ifdef GEODE_IS_WINDOWS
// GLEW needs to be included before GL but GLFW3 doesn't do that so this is
// just to make sure all of the GL-related headers are in order
#include <Geode/cocos/include/cocos2d.h>
#include <Geode/cocos/robtop/glfw/glfw3.h>
#include <Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h>
#include <Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDelegate.h>

View file

@ -125,6 +125,14 @@ enumKeyCodes numpadToKeyCode(NSEvent* event) {
return enumKeyCodes::KEY_NumEnter;
case '=':
return enumKeyCodes::KEY_Equal;
case NSUpArrowFunctionKey:
return enumKeyCodes::KEY_Up;
case NSDownArrowFunctionKey:
return enumKeyCodes::KEY_Down;
case NSLeftArrowFunctionKey:
return enumKeyCodes::KEY_Left;
case NSRightArrowFunctionKey:
return enumKeyCodes::KEY_Right;
default:
return enumKeyCodes::KEY_Unknown;
}

View file

@ -26,8 +26,9 @@ void GenericContentLayer::setPosition(CCPoint const& pos) {
for (auto child : CCArrayExt<CCNode*>(m_pChildren)) {
float childY = this->getPositionY() + child->getPositionY();
auto anchor = child->isIgnoreAnchorPointForPosition() ? CCPoint{ 0, 0 } : child->getAnchorPoint();
float childTop = childY + (1.f - anchor.y) * child->getScaledContentSize().height;
float childBottom = childY - child->getAnchorPoint().y * child->getScaledContentSize().height;
float scaleY = child->getScaleY();
float childTop = scaleY * (childY + (1.f - anchor.y) * child->getScaledContentSize().height);
float childBottom = scaleY * (childY - child->getAnchorPoint().y * child->getScaledContentSize().height);
bool visible = childTop > 0 && childBottom < scrollLayerSize.height;
child->setVisible(visible);

View file

@ -169,7 +169,8 @@ std::string& utils::string::trimIP(std::string& str) {
}
std::string utils::string::trimLeft(std::string const& str, std::string const& chars) {
return str.substr(str.find_first_not_of(chars));
size_t start = str.find_first_not_of(chars);
return start == -1 ? std::string() : str.substr(start);
}
std::string utils::string::trimLeft(std::string const& str) {
return utils::string::trimLeft(str, WHITESPACE);
@ -184,7 +185,7 @@ std::string utils::string::trimRight(std::string const& str) {
std::string utils::string::trim(std::string const& str, std::string const& chars) {
size_t start = str.find_first_not_of(chars);
return str.substr(start, str.find_last_not_of(chars) + 1 - start);
return start == -1 ? std::string() : str.substr(start, str.find_last_not_of(chars) + 1 - start);
}
std::string utils::string::trim(std::string const& str) {
return utils::string::trim(str, WHITESPACE);
@ -216,4 +217,4 @@ std::strong_ordering utils::string::caseInsensitiveCompare(std::string_view str1
else if (str1.size() > str2.size())
return std::strong_ordering::greater;
return std::strong_ordering::equal;
}
}