11"33c0c701000000008941":
22__thiscall void EntitySaveState::constructor();
33
4- "558bec6aff68????????64a1????????505657a1????????33c5508d45??64a3????????8bf98d77??c745??000000008b4e??85c974??8b018b40??ffd084c074??a1????????85c074??56ffd083c4048d77??c745??010000008b4e??85c974??8b018b40??ffd084c074??a1????????85c074??56ffd083c4048b4d??64890d????????595f5e8be55dc3??????????????????????????????????????558bec6aff68????????64a1????????5083ec14 ":
5- __thiscall void** EntitySaveState::Clear ();
4+ "558bec6aff68????????64a1????????505657a1????????33c5508d45??64a3????????8bf98d77??c745??000000008b4e??85c974??8b018b40??ffd084c074??a1????????85c074??56ffd083c4048d77??c745??010000008b4e??85c974??8b018b40??ffd084c074??a1????????85c074??56ffd083c4048b4d??64890d????????595f5e8be55dc3??????????????????????????????????????55 ":
5+ __thiscall void EntitySaveState::destructor ();
66
7- struct EntitySaveState depends (Vector) {
7+ struct EntitySaveState depends (Vector, KAGE_SmartPointer_EntitySaveState ) {
88 int type : 0x0;
99 int variant : 0x4;
1010 int subtype : 0x8;
@@ -13,12 +13,12 @@ struct EntitySaveState depends (Vector) {
1313 unsigned int intStorage3 : 0x14;
1414 int intStorage4 : 0x18;
1515 int intStorage5 : 0x1c;
16- int16_t gridSpawnIdx : 0x20;
16+ int16_t gridSpawnIdx : 0x20; // HIJACKED by ESSM
1717 bool boolStorage1 : 0x22;
1818 bool boolStorage2 : 0x23;
1919 unsigned int intStorage6 : 0x24;
2020 Vector targetPosition : 0x28;
21- unsigned int _intStorage7 : 0x30;
21+ unsigned int _intStorage7 : 0x30; // HIJACKED by ESSM
2222 unsigned int _initSeed : 0x34;
2323 unsigned int _dropSeed : 0x38;
2424 int spawnerType : 0x3c;
@@ -27,71 +27,11 @@ struct EntitySaveState depends (Vector) {
2727 float floatStorage2 : 0x54;
2828 unsigned int intStorage8: 0x5c;
2929 int8_t byteStorage : 0x60;
30+ KAGE_SmartPointer_EntitySaveState entitySaveState : 0x6c;
3031
3132 {{
32- struct Bomb;
33- struct Pickup;
34- struct NPC; // FIREPLACE and MOVABLE_TNT only
35- struct Effect;
36- struct Minecart;
37-
3833 EntitySaveState() {
3934 this->constructor();
4035 }
41-
4236 }}
43- } : 0x78;
44-
45- {{
46- struct EntitySaveState::Bomb
47- {
48- static inline uint32_t* GetScale(EntitySaveState& saveState) { return (uint32_t*)&saveState.intStorage1; }
49- static inline BitSet128* GetTearFlags(EntitySaveState& saveState) { return (BitSet128*)&saveState.intStorage2; }
50- static inline bool* GetIsFetus(EntitySaveState& saveState) { return (bool*)&saveState.boolStorage2; }
51- static inline float* GetExplosionDamage(EntitySaveState& saveState) { return (float*)&saveState.floatStorage1; }
52- static inline float* GetRadiusMulti(EntitySaveState& saveState) { return (float*)&saveState.floatStorage2; }
53- static inline int8_t* GetSpawnerPlayerIndex(EntitySaveState& saveState) { return (int8_t*)&saveState.byteStorage; } // -1 if not spawned by player
54- };
55-
56- struct EntitySaveState::Pickup
57- {
58- static inline int* GetCharge(EntitySaveState& saveState) { return (int*)&saveState.intStorage2; }
59- static inline int* GetPrice(EntitySaveState& saveState) { return (int*)&saveState.intStorage3; }
60- static inline bool* GetAutoUpdatePrice(EntitySaveState& saveState) { return (bool*)&saveState.byteStorage; }
61- static inline int* GetShopItemId(EntitySaveState& saveState) { return (int*)&saveState.intStorage4; }
62- static inline bool* GetTouched(EntitySaveState& saveState) { return (bool*)&saveState.boolStorage1; }
63- static inline int* GetOptionsPickupIndex(EntitySaveState& saveState) { return (int*)&saveState._intStorage7; }
64- static inline int* GetTimeout(EntitySaveState& saveState) { return (int*)&saveState.intStorage5; }
65- static inline bool* GetIsBlind(EntitySaveState& saveState) { return (bool*)&saveState.boolStorage2; }
66- static inline int* GetAlternatePedestal(EntitySaveState& saveState) { return (int*)&saveState.intStorage1; }
67- static inline int* GetActiveVarData(EntitySaveState& saveState) { return (int*)&saveState.intStorage8; }
68- static inline int* GetSourcePoolType(EntitySaveState& saveState) { return (int*)&saveState.floatStorage1; }
69- static inline float* GetSpriteScale(EntitySaveState& saveState) { return (float*)&saveState.floatStorage2; }
70- static inline std::array<int, 8>* GetCycleCollectibles(EntitySaveState& saveState) { return *(std::array<int, 8>**)((char*)&saveState + 0x64); } // 0 is used as a terminator if < 8
71- static inline EntitySaveState* GetFlipSaveState(EntitySaveState& saveState) { return *(EntitySaveState**)((char*)&saveState + 0x6c); }
72- };
73-
74- struct EntitySaveState::Slot
75- {
76- static inline int* GetDonationValue(EntitySaveState& saveState) { return (int*)&saveState.intStorage1; }
77- static inline int* GetTriggerTimer(EntitySaveState& saveState) { return (int*)&saveState.intStorage2; } // Only used by SHOP_RESTOCK_MACHINE
78- static inline int* GetPrizeCollectible(EntitySaveState& saveState) { return (int*)&saveState._intStorage7; }
79- };
80-
81- struct EntitySaveState::NPC // FIREPLACE and MOVABLE_TNT
82- {
83- static inline int* GetHealth(EntitySaveState& saveState) { return (int*)&saveState.intStorage1; }
84- };
85-
86- struct EntitySaveState::Effect
87- {
88- static inline int* GetState(EntitySaveState& saveState) { return (int*)&saveState.intStorage1; } // Used by DIRT_PATCH, SPAWNER and LIL_GHOST
89- static inline int* GetVarData0(EntitySaveState& saveState) { return (int*)&saveState.intStorage4; } // Used by SPAWNER
90- static inline int* GetVarData1(EntitySaveState& saveState) { return (int*)&saveState.intStorage2; } // Used by SPAWNER
91- };
92-
93- struct EntitySaveState::Minecart
94- {
95- static inline float* GetAngleDegrees(EntitySaveState& saveState) { return (float*)&saveState.floatStorage1; }
96- };
97- }}
37+ } : 0x78; // 0x78
0 commit comments