remove member test (it was moved to bindings)

This commit is contained in:
matcool 2024-01-19 13:55:48 -03:00
parent de7b2f6d9a
commit d8459041a0
8 changed files with 0 additions and 428 deletions

View file

@ -1,62 +0,0 @@
name: Test Offsets
on:
workflow_dispatch:
pull_request:
push:
paths:
- 'bindings/**' # only when adjusting bindings
- 'loader/test/members/**'
branches:
- '**' # every branch
- '!no-build-**' # unless marked as no-build
jobs:
build:
strategy:
fail-fast: false
matrix:
config:
- name: Windows
os_identifier: win
os: windows-2019
prefixes: ''
extra_flags: -A win32 -DGEODE_DEBUG=On
# - name: macOS
# os_identifier: mac
# os: macos-latest
# prefixes: PATH="/usr/local/opt/ccache/libexec:$PATH"
# extra_flags: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug -DGEODE_DEBUG=On
name: Test Offsets ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
if: matrix.config.os_identifier == 'win'
- name: Configure ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ matrix.config.os }}
- name: Configure CMake
run: >
${{ matrix.config.prefixes }} cmake -B
${{ github.workspace }}/build
${{ matrix.config.extra_flags }}
-D GEODE_DISABLE_CLI_CALLS=ON
-D CMAKE_C_COMPILER_LAUNCHER=ccache
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build member test
run: |
cd build
cmake --build . --config RelWithDebInfo --parallel --target TestMembers

View file

@ -2,5 +2,3 @@ if(NOT GEODE_DONT_BUILD_TEST_MODS)
add_subdirectory(dependency)
add_subdirectory(main)
endif()
add_subdirectory(members)

View file

@ -1,117 +0,0 @@
#include "Common.hpp"
#ifdef GEODE_IS_ANDROID32
using namespace geode::prelude;
// Add known android struct members here
GEODE_MEMBER_CHECK(CCMenuItemSprite, m_pfnSelector, 0x11c);
GEODE_SIZE_CHECK(CCObject, 0x34);
GEODE_SIZE_CHECK(CCNode, 0x108);
GEODE_SIZE_CHECK(CCNodeRGBA, 0x118);
GEODE_SIZE_CHECK(CCLayer, 0x13c);
GEODE_SIZE_CHECK(CCLayerRGBA, 0x14c);
GEODE_SIZE_CHECK(CCLayerColor, 0x1b8);
GEODE_SIZE_CHECK(CCSprite, 0x1fc);
GEODE_SIZE_CHECK(CCMenu, 0x154);
GEODE_SIZE_CHECK(CCMenuItem, 0x12c);
GEODE_SIZE_CHECK(CCMenuItemSprite, 0x138);
GEODE_SIZE_CHECK(CCScale9Sprite, 0x1a4);
GEODE_SIZE_CHECK(FLAlertLayer, 0x1f0);
GEODE_SIZE_CHECK(BoomListView, 0x164);
GEODE_SIZE_CHECK(CustomListView, 0x168);
GEODE_SIZE_CHECK(CCMenuItemSpriteExtra, 0x174);
GEODE_SIZE_CHECK(LoadingLayer, 0x15c);
GEODE_SIZE_CHECK(GJDropDownLayer, 0x1e4);
GEODE_SIZE_CHECK(TableViewCell, 0x19c);
GEODE_SIZE_CHECK(Slider, 0x158);
GEODE_SIZE_CHECK(SliderTouchLogic, 0x174);
GEODE_SIZE_CHECK(CCScrollLayerExt, 0x184);
GEODE_SIZE_CHECK(TableView, 0x1dc);
GEODE_SIZE_CHECK(CCTextInputNode, 0x1a0);
GEODE_SIZE_CHECK(CCTouchDispatcher, 0x6c);
GEODE_SIZE_CHECK(CCSpritePlus, 0x208);
// GEODE_MEMBER_CHECK(CCTouchDispatcher, m_forcePrio, 0x60);
GEODE_MEMBER_CHECK(CCTextInputNode, m_maxLabelWidth, 0x164);
GEODE_MEMBER_CHECK(CCTextInputNode, m_textField, 0x17c);
GEODE_MEMBER_CHECK(FLAlertLayer, m_buttonMenu, 0x1b8);
GEODE_MEMBER_CHECK(FLAlertLayer, m_mainLayer, 0x1c8);
GEODE_MEMBER_CHECK(TableView, m_cellArray, 0x1b0);
GEODE_MEMBER_CHECK(TableViewCell, m_backgroundLayer, 0x190);
GEODE_SIZE_CHECK(CCBlockLayer, 0x1bc);
GEODE_SIZE_CHECK(gd::string, 0x4);
GEODE_SIZE_CHECK(GameObject, 0x488);
GEODE_SIZE_CHECK(EnhancedGameObject, 0x4f0);
GEODE_SIZE_CHECK(EffectGameObject, 0x668);
GEODE_SIZE_CHECK(TextGameObject, 0x490);
GEODE_SIZE_CHECK(SmartGameObject, 0x490);
GEODE_SIZE_CHECK(ParticleGameObject, 0x618);
GEODE_SIZE_CHECK(SpecialAnimGameObject, 0x4f0);
GEODE_SIZE_CHECK(RingObject, 0x668);
GEODE_SIZE_CHECK(StartPosObject, 0x668);
GEODE_SIZE_CHECK(LabelGameObject, 0x690);
GEODE_SIZE_CHECK(TeleportPortalObject, 0x6a0);
// GEODE_SIZE_CHECK(EventLinkTrigger, 0x688);
GEODE_SIZE_CHECK(GJBaseGameLayer, 0x2d40);
GEODE_MEMBER_CHECK(GJBaseGameLayer, m_level, 0x5f0);
GEODE_MEMBER_CHECK(GJBaseGameLayer, m_levelSettings, 0x88c);
GEODE_MEMBER_CHECK(LevelEditorLayer, m_coinCount, 0x2da8);
GEODE_MEMBER_CHECK(LevelEditorLayer, m_undoObjects, 0x2dec);
GEODE_MEMBER_CHECK(GameManager, m_gameLayer, 0x174);
GEODE_MEMBER_CHECK(EditorUI, m_selectedObjects, 0x260);
GEODE_MEMBER_CHECK(EditorUI, m_selectedObject, 0x370);
GEODE_MEMBER_CHECK(EditorUI, m_editButtonBar, 0x22c);
GEODE_SIZE_CHECK(SetupTriggerPopup, 0x2a8);
GEODE_MEMBER_CHECK(ColorSelectPopup, m_colorAction, 0x2f0);
// GEODE_MEMBER_CHECK(CCNode, m_pUserObject, 0xcc);
// needed classes are ones in the ids folder and some generic ones (i think they are already done though so only ids)
// GEODE_MEMBER_CHECK(GameManager, m_playLayer, 0x138);
// GEODE_MEMBER_CHECK(GameManager, m_levelEditorLayer, 0x13c);
// GEODE_MEMBER_CHECK(GameManager, m_canGetLevelSaveData, 0x28c);
// static_assert(sizeof(GJBaseGameLayer) == 0x2cc);
// GEODE_MEMBER_CHECK(PlayLayer, unknown4e8, 0x2e8);
// GEODE_MEMBER_CHECK(PlayLayer, m_endPortal, 0x324);
// GEODE_MEMBER_CHECK(PlayLayer, m_bottomGround, 0x37c);
// GEODE_MEMBER_CHECK(PlayLayer, m_topGround, 0x380);
// GEODE_MEMBER_CHECK(PlayLayer, m_level, 0x470);
// GEODE_MEMBER_CHECK(PlayLayer, m_shouldTryToKick, 0x4e0);
// static_assert(sizeof(GameObject) == 0x42c);
// GEODE_MEMBER_CHECK(GameStatsManager, m_dailyChests, 0x110);
// GEODE_MEMBER_CHECK(GameStatsManager, m_completedLevels, 0x164);
// GEODE_MEMBER_CHECK(DailyLevelPage, m_weekly, 0x1ed);
// GEODE_MEMBER_CHECK(TeleportPortalObject, m_orangePortal, 0x430);
// GEODE_MEMBER_CHECK(EditorUI, m_rotationControl, 0x16c);
// GEODE_MEMBER_CHECK(EditorUI, m_updateTimeMarkers, 0x1a4);
// GEODE_MEMBER_CHECK(EditorUI, m_selectedObjects, 0x1bc);
// GEODE_MEMBER_CHECK(EditorUI, m_selectedObject, 0x2c4);
// GEODE_MEMBER_CHECK(MoreSearchLayer, m_enterSongID, 0x1E4);
// GEODE_MEMBER_CHECK(MoreSearchLayer, m_songLeftBtn, 0x1D4);
#endif

View file

@ -1,38 +0,0 @@
#include "Common.hpp"
#ifdef GEODE_IS_ANDROID64
using namespace geode::prelude;
GEODE_SIZE_CHECK(CCObject, 0x38);
GEODE_SIZE_CHECK(CCNode, 0x140);
GEODE_SIZE_CHECK(CCNodeRGBA, 0x158);
GEODE_SIZE_CHECK(CCLayer, 0x198);
GEODE_SIZE_CHECK(CCLayerColor, 0x220);
GEODE_SIZE_CHECK(CCSprite, 0x258);
GEODE_SIZE_CHECK(CCMenu, 0x1b8);
GEODE_SIZE_CHECK(CCMenuItem, 0x178);
GEODE_SIZE_CHECK(CCMenuItemSprite, 0x190);
GEODE_SIZE_CHECK(CCScale9Sprite, 0x208);
GEODE_SIZE_CHECK(FLAlertLayer, 0x278);
GEODE_SIZE_CHECK(BoomListView, 0x1d0);
GEODE_SIZE_CHECK(CustomListView, 0x1d8);
GEODE_SIZE_CHECK(CCMenuItemSpriteExtra, 0x1d8);
GEODE_SIZE_CHECK(LoadingLayer, 0x1c8);
GEODE_SIZE_CHECK(GJDropDownLayer, 0x268);
GEODE_SIZE_CHECK(TableViewCell, 0x218);
GEODE_SIZE_CHECK(Slider, 0x1c8);
GEODE_SIZE_CHECK(SliderTouchLogic, 0x1e0);
GEODE_SIZE_CHECK(CCScrollLayerExt, 0x200);
GEODE_SIZE_CHECK(TableView, 0x290);
GEODE_SIZE_CHECK(CCTextInputNode, 0x238);
GEODE_SIZE_CHECK(CCTouchDispatcher, 0x90);
GEODE_MEMBER_CHECK(TableViewCell, m_mainLayer, 0x208);
GEODE_MEMBER_CHECK(TableView, m_cellDelegate, 0x268);
GEODE_MEMBER_CHECK(CCTextInputNode, m_textField, 0x1f8);
#endif

View file

@ -1,22 +0,0 @@
cmake_minimum_required(VERSION 3.21)
set(PROJECT_NAME TestMembers)
project(${PROJECT_NAME} VERSION 1.0.0)
add_library(${PROJECT_NAME} SHARED MacOS.cpp Windows.cpp Android32.cpp Android64.cpp)
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20)
target_include_directories(${PROJECT_NAME} PRIVATE
${GEODE_CODEGEN_PATH}
${GEODE_LOADER_PATH}/include
${GEODE_LOADER_PATH}/include/Geode/cocos/include
${GEODE_LOADER_PATH}/include/Geode/cocos/extensions
${GEODE_LOADER_PATH}/include/Geode/fmod
)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DGEODE_DONT_WARN_INCORRECT_MEMBERS)
target_link_libraries(${PROJECT_NAME} PRIVATE ghc_filesystem mat-json)
add_dependencies(${PROJECT_NAME} CodegenRun)

View file

@ -1,41 +0,0 @@
#pragma once
#include <Geode/Bindings.hpp>
template <auto V1, auto V2, auto V3, class... Types>
struct False {
static constexpr auto value = false;
};
template<int Difference, int Expected, int Current, class Class, class Member, bool Predicate>
struct MemberIsOffsetBy {
static_assert(False<Difference, Expected, Current, Class, Member>::value, "Member is offset by this value (Difference, Expected, Current, Class, Member)");
};
template<int Difference, int Expected, int Current, class Class, bool Predicate>
struct SizeIsOffsetBy {
static_assert(False<Difference, Expected, Current, Class>::value, "Size is offset by this value (Difference, Expected, Current, Class)");
};
template<int Difference, int Expected, int Current, class Class, class Member>
struct MemberIsOffsetBy<Difference, Expected, Current, Class, Member, true> {
};
template<int Difference, int Expected, int Current, class Class>
struct SizeIsOffsetBy<Difference, Expected, Current, Class, true> {
};
template <class Member, class Class, int Offset, int Expected>
struct SingleMemberChecker {
using IsOffsetBy = MemberIsOffsetBy<Offset - Expected, Expected, Offset, Class, Member, Expected == Offset>;
};
template <class Class, int Offset, int Expected>
struct SingleSizeChecker {
using IsOffsetBy = SizeIsOffsetBy<Offset - Expected, Expected, Offset, Class, Expected == Offset>;
};
#define GEODE_MEMBER_CHECK(Class_, Member_, Offset_) class Member_; SingleMemberChecker<Member_, Class_, offsetof(Class_, Member_), Offset_>::IsOffsetBy GEODE_CONCAT(OffsetBy, __LINE__)
#define GEODE_SIZE_CHECK(Class_, Offset_) SingleSizeChecker<Class_, sizeof(Class_), Offset_>::IsOffsetBy GEODE_CONCAT(OffsetBy, __LINE__)

View file

@ -1,98 +0,0 @@
#include "Common.hpp"
#ifdef GEODE_IS_MACOS
// // PlayerObject
// GEODE_MEMBER_CHECK(PlayerObject, m_collisionLog, 0x518);
// GEODE_MEMBER_CHECK(PlayerObject, m_particleSystems, 0x590);
// GEODE_MEMBER_CHECK(PlayerObject, m_waveTrail, 0x600);
// GEODE_MEMBER_CHECK(PlayerObject, m_objectSnappedTo, 0x690);
// GEODE_MEMBER_CHECK(PlayerObject, m_playerColor1, 0x7c2);
// // EditorUI
// GEODE_MEMBER_CHECK(EditorUI, m_buttonBar, 0x1a0);
// GEODE_MEMBER_CHECK(EditorUI, m_scaleControl, 0x208);
// GEODE_MEMBER_CHECK(EditorUI, m_swipeEnabled, 0x23c);
// GEODE_MEMBER_CHECK(EditorUI, m_updateTimeMarkers, 0x244);
// GEODE_MEMBER_CHECK(EditorUI, m_selectedObjects, 0x260);
// GEODE_MEMBER_CHECK(EditorUI, m_selectedObject, 0x440);
// // LevelEditorLayer
// GEODE_MEMBER_CHECK(LevelEditorLayer, m_editorUI, 0x5d8);
// GEODE_MEMBER_CHECK(LevelEditorLayer, m_level, 0x618);
// // PlayLayer
// GEODE_MEMBER_CHECK(PlayLayer, unknown518, 0x518);
// GEODE_MEMBER_CHECK(PlayLayer, unknown5f4, 0x5f4);
// GEODE_MEMBER_CHECK(PlayLayer, unknown680, 0x680);
// GEODE_MEMBER_CHECK(PlayLayer, m_replayInputs, 0x6a8);
// GEODE_MEMBER_CHECK(PlayLayer, m_level, 0x728);
// GEODE_MEMBER_CHECK(PlayLayer, m_shouldTryToKick, 0x7a8);
// // GameManager
// GEODE_MEMBER_CHECK(GameManager, m_playLayer, 0x180);
// GEODE_MEMBER_CHECK(GameManager, m_levelEditorLayer, 0x188);
// GEODE_MEMBER_CHECK(GameManager, m_menuLayer, 0x198);
// GEODE_MEMBER_CHECK(GameManager, m_playerUDID, 0x1b8);
// GEODE_MEMBER_CHECK(GameManager, m_playerUserID, 0x1cc);
// GEODE_MEMBER_CHECK(GameManager, m_playerFrame, 0x200);
// GEODE_MEMBER_CHECK(GameManager, m_clickedGarage, 0x2a2); // todo: find why this is not 0x2a2
// // GameObject
// GEODE_MEMBER_CHECK(GameObject, m_baseColorID, 0x27c);
// GEODE_MEMBER_CHECK(GameObject, m_detailColorID, 0x280);
// GEODE_MEMBER_CHECK(GameObject, m_active, 0x2e5);
// GEODE_MEMBER_CHECK(GameObject, m_baseSprite, 0x348);
// GEODE_MEMBER_CHECK(GameObject, m_startPosition, 0x37c);
// GEODE_MEMBER_CHECK(GameObject, m_baseColor, 0x410);
// GEODE_MEMBER_CHECK(GameObject, m_groups, 0x458);
// GEODE_MEMBER_CHECK(GameObject, m_effectManager, 0x4d8);
// // EffectGameObject
// GEODE_MEMBER_CHECK(EffectGameObject, m_duration, 0x4f0);
// GEODE_MEMBER_CHECK(EffectGameObject, m_followMod, 0x530);
// GEODE_MEMBER_CHECK(EffectGameObject, m_hsvValue, 0x560);
// GEODE_MEMBER_CHECK(EffectGameObject, m_spawnDelay, 0x588);
// GEODE_MEMBER_CHECK(EffectGameObject, m_itemBlockAID, 0x5b0);
// // TeleportPortalObject
// GEODE_MEMBER_CHECK(TeleportPortalObject, m_orangePortal, 0x4f8);
// // StartPosObject
// GEODE_MEMBER_CHECK(StartPosObject, m_levelSettings, 0x5e0);
// // SetupPulsePopup
// GEODE_MEMBER_CHECK(SetupPulsePopup, m_currentColorSpr, 0x2d0);
// GEODE_MEMBER_CHECK(SetupPulsePopup, m_pulseMode, 0x38c);
// // ColorSelectPopup
// GEODE_MEMBER_CHECK(ColorSelectPopup, m_copyColor, 0x372);
// // LevelInfoLayer
// GEODE_MEMBER_CHECK(LevelInfoLayer, m_level, 0x1c0);
// // LevelBrowserLayer
// GEODE_MEMBER_CHECK(LevelBrowserLayer, m_rightArrow, 0x1a8);
// GEODE_MEMBER_CHECK(LevelBrowserLayer, m_leftArrow, 0x1b0);
// GEODE_MEMBER_CHECK(LevelBrowserLayer, m_searchObject, 0x1d8);
// GEODE_MEMBER_CHECK(LevelBrowserLayer, m_itemCount, 0x208);
// // LocalLevelManager
// GEODE_MEMBER_CHECK(LocalLevelManager, m_localLevels, 0x140);
// // GameStatsManager
// GEODE_MEMBER_CHECK(GameStatsManager, m_dailyChests, 0x170);
// GEODE_MEMBER_CHECK(GameStatsManager, m_completedLevels, 0x200);
// GEODE_MEMBER_CHECK(GameStatsManager, m_weeklyChest, 0x278);
// // DailyLevelPage
// GEODE_MEMBER_CHECK(DailyLevelPage, m_weekly, 0x291);
// // GameLevelManager
// GEODE_MEMBER_CHECK(GameLevelManager, m_weeklyID, 0x1a8);
// GEODE_MEMBER_CHECK(GameLevelManager, m_gauntletLevels, 0x1b0);
// GEODE_MEMBER_CHECK(GameLevelManager, m_timerDict, 0x1e8);
// GEODE_MEMBER_CHECK(GameLevelManager, m_accountIDtoUserIDDict, 0x1f8);
// GEODE_MEMBER_CHECK(GameLevelManager, m_userIDtoAccountIDDict, 0x200);
#endif

View file

@ -1,48 +0,0 @@
#include "Common.hpp"
#if 0
using namespace cocos2d;
GEODE_SIZE_CHECK(CCNode, 0x108);
// GEODE_MEMBER_CHECK(CCNode, m_pUserObject, 0xcc);
GEODE_SIZE_CHECK(CCSprite, 0x1fc);
GEODE_SIZE_CHECK(CCLayer, 0x13c);
GEODE_SIZE_CHECK(CCLayerColor, 0x1b8);
// GEODE_SIZE_CHECK(CCLabelBMFont, 0x194);
GEODE_SIZE_CHECK(CCDirector, 0x130);
GEODE_MEMBER_CHECK(CCDirector, m_pobOpenGLView, 0x8c);
GEODE_MEMBER_CHECK(CCDirector, m_fFrameRate, 0xac);
GEODE_MEMBER_CHECK(CCDirector, m_pRunningScene, 0xcc);
GEODE_MEMBER_CHECK(CCDirector, m_pobScenesStack, 0xd8);
GEODE_MEMBER_CHECK(CCDirector, m_obWinSizeInPoints, 0xe8);
GEODE_MEMBER_CHECK(CCTextInputNode, m_allowedChars, 0x174);
GEODE_MEMBER_CHECK(CCTextInputNode, m_maxLabelWidth, 0x18c);
GEODE_MEMBER_CHECK(CCTextInputNode, m_maxLabelScale, 0x190);
GEODE_MEMBER_CHECK(CCTextInputNode, m_placeholderScale, 0x194);
GEODE_MEMBER_CHECK(CCTextInputNode, m_placeholderColor, 0x198);
GEODE_MEMBER_CHECK(GJListLayer, m_listView, 0x1b8);
GEODE_MEMBER_CHECK(BoomListView, m_tableView, 0x144);
GEODE_MEMBER_CHECK(BoomListView, m_entries, 0x148);
GEODE_MEMBER_CHECK(TableView, m_cellArray, 0x1b0);
GEODE_MEMBER_CHECK(CCScrollLayerExt, m_cutContent, 0x16c);
GEODE_SIZE_CHECK(SliderThumb, 0x140);
GEODE_SIZE_CHECK(Slider, 0x158);
GEODE_MEMBER_CHECK(Slider, m_touchLogic, 0x13c);
GEODE_SIZE_CHECK(SliderTouchLogic, 0x178);
#endif