Skip to content

Commit a7e5bb2

Browse files
committed
0.7.1.772 support
1 parent 3fc04a8 commit a7e5bb2

File tree

8 files changed

+72
-15
lines changed

8 files changed

+72
-15
lines changed

Code/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ static bool ms_mhHooksAttached = false;
1616

1717
void process_attach()
1818
{
19-
if (!SmSdk::CheckTimestamp(_SM_TIMESTAMP_070_771))
19+
if (!SmSdk::CheckTimestamp(_SM_TIMESTAMP_071_772))
2020
{
2121
MessageBoxA(
2222
NULL,
23-
"Your game version is unsupposed by Dynamic Sun. The current version of the mod has been built for Scrap Mechanic 0.7.0.771",
23+
"Your game version is not supported by Dynamic Sun. The current version of the mod has been built for Scrap Mechanic 0.7.1.772\n\nPress OK to continue loading without the mod.",
2424
"Unsupported Version",
2525
MB_ICONWARNING);
2626
return;

Code/offsets.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
#include <SmSdk/offsets.hpp>
44

5-
#if defined(_SM_VERSION_070_771)
5+
#if _SM_VERSION_NUM == 071772
6+
# define DYNAMIC_SUN_UPDATE_FUNC_ADDR 0x915420
7+
# define DYNAMIC_SUN_CREATE_WIDGETS_ADDR 0x3C0390
8+
# define DYNAMIC_SUN_GRAPHICS_OPTIONS_MENU_VFTABLE 0xF7AD78
9+
# define DYNAMIC_SUN_DIRECTION_OFFSET 0x11D5CB0
10+
# define DYNAMIC_SUN_GAME_INSTANCE_PTR 0x1267738
11+
#elif _SM_VERSION_NUM == 070771
612
# define DYNAMIC_SUN_UPDATE_FUNC_ADDR 0x915630
713
# define DYNAMIC_SUN_CREATE_WIDGETS_ADDR 0x3C0390
814
# define DYNAMIC_SUN_GRAPHICS_OPTIONS_MENU_VFTABLE 0xF7ACF8

Dependencies/SmSdk/include/SmSdk/Character.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ struct CharacterScriptData
2424

2525
static_assert(sizeof(CharacterScriptData) == 0x8, "CharacterScriptData: Incorrect Size");
2626

27-
#if defined(_SM_VERSION_070_771)
27+
#if _SM_VERSION_NUM >= 070771
2828
struct CharacterControllerData
2929
{
3030
/* 0x0000 */ float m_fWalkSpeed;

Dependencies/SmSdk/include/SmSdk/Gui/GameplayOptionsMenu.hpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class GameplayOptionsMenu : public OptionsSubMenuBase
99
GameplayOptionsMenu()
1010
{
1111
OptionsSubMenuBase::GameConstructor(this);
12-
#if defined(_SM_VERSION_070_771)
12+
#if _SM_VERSION_NUM >= 070771
1313
std::memset(this->someData, 0, sizeof(this->someData));
1414
#endif
1515
Memory::OverwriteVftable(this, SM_VTBL_GAMEPLAY_OPTIONS_MENU_OFFSET);
@@ -18,10 +18,14 @@ class GameplayOptionsMenu : public OptionsSubMenuBase
1818
virtual ~GameplayOptionsMenu() = default;
1919
void restoreDefaults() override { /* implemented by the game */ }
2020

21-
#if defined(_SM_VERSION_070_771)
21+
#if _SM_VERSION_NUM >= 070771
2222
char someData[16];
2323
#endif
2424

2525
}; // Size: 0x168
2626

27-
static_assert(sizeof(GameplayOptionsMenu) == 0x168, "GameplayOptionsMenu: Incorrect Size");
27+
#if _SM_VERSION_NUM >= 070771
28+
static_assert(sizeof(GameplayOptionsMenu) == 0x178, "GameplayOptionsMenu: Incorrect Size");
29+
#else
30+
static_assert(sizeof(GameplayOptionsMenu) == 0x168, "GameplayOptionsMenu: Incorrect Size");
31+
#endif

Dependencies/SmSdk/include/SmSdk/Gui/OptionsSubMenuBase.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class OptionsSubMenuBase
4444
virtual bool someFunc2() { return 0; }
4545
virtual bool someFunc3() { return 0; }
4646
virtual void restoreDefaults() = 0;
47-
#if defined(_SM_VERSION_070_771)
47+
#if _SM_VERSION_NUM >= 070771
4848
virtual void someFunc5() {}
4949
#endif
5050
virtual void someFunc4() {}

Dependencies/SmSdk/include/SmSdk/StaticValues.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
#pragma once
22

33
#include "SmSdk/Util/StaticVariable.hpp"
4+
#include "SmSdk/offsets.hpp"
45

56
class StaticValues
67
{
78
public:
8-
using PaintToolPaintLimiterType = StaticVariable<std::int32_t, 0x3F060D>;
9-
using PaintToolEraseLimiterType = StaticVariable<std::int32_t, 0x3F0D9B>;
9+
using PaintToolPaintLimiterType = StaticVariable<std::int32_t, SM_VAR_PAINT_DRAG_LIMITER>;
10+
using PaintToolEraseLimiterType = StaticVariable<std::int32_t, SM_VAR_PAINT_ERASE_LIMITER>;
1011

1112
//A limiter for paint tool paint function
1213
static PaintToolPaintLimiterType sm_paintToolPaintLimiter;

Dependencies/SmSdk/include/SmSdk/TimestampCheck.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "SmSdk/win_include.hpp"
44

55
#define _SM_TIMESTAMP_070_771 1733399248
6+
#define _SM_TIMESTAMP_071_772 1733491522
67

78
namespace SmSdk
89
{

Dependencies/SmSdk/include/SmSdk/offsets.hpp

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
11
#pragma once
22

3-
#define _SM_VERSION_070_771
3+
#define _SM_VERSION_NUM 071772
44

55
///////STATIC VALUE OFFSETS
66

7-
#if defined(_SM_VERSION_070_771)
7+
#if _SM_VERSION_NUM == 071772
8+
# define SM_CURRENT_GAME_STATE_OFFSET 0x1267518
9+
# define SM_IN_GAME_GUI_MANAGER_OFFSET 0x12674F0
10+
# define SM_GUI_SYSTEM_MANAGER_OFFSET 0x1267668
11+
# define SM_CHARACTER_MANAGER_OFFSET 0x12676B8
12+
# define SM_PLAYER_MANAGER_OFFSET 0x1267758
13+
# define SM_AUDIO_MANAGER_OFFSET 0x12675C8
14+
# define SM_INPUT_MANAGER_OFFSET 0x1267780
15+
# define SM_MY_PLAYER_OFFSET 0x1267528
16+
# define SM_GAME_SETTINGS_OFFSET 0x12676E0
17+
# define SM_CONTAINER_MANAGER_OFFSET 0x1267718
18+
# define SM_PORTAL_MANAGER_OFFSET 0x1267610
19+
# define SM_PATHFINDER_MANAGER_OFFSET 0x1267630
20+
# define SM_AREA_TRIGGER_MANAGER_OFFSET 0x12675E8
21+
# define SM_HARVESTABLE_MANAGER_OFFSET 0x1267698
22+
# define SM_DIRECTORY_MANAGER_OFFSET 0x1267790
23+
# define SM_CREATION_MANAGER_OFFSET 0x12676C0
24+
# define SM_NET_OBJ_MANAGER_OFFSET 0x1267750
25+
# define SM_PHYSICS_OFFSET 0x1267510
26+
#elif _SM_VERSION_NUM == 070771
827
# define SM_CURRENT_GAME_STATE_OFFSET 0x12674F8
928
# define SM_IN_GAME_GUI_MANAGER_OFFSET 0x12674D0
1029
# define SM_GUI_SYSTEM_MANAGER_OFFSET 0x12675C0
@@ -46,7 +65,13 @@
4665

4766
//////VFTABLE OFFSETS
4867

49-
#if defined(_SM_VERSION_070_771)
68+
#if _SM_VERSION_NUM == 071772
69+
# define SM_VTBL_GAME_STATE_OFFSET 0xF889B0
70+
# define SM_VTBL_OPTIONS_MENU_OFFSET 0xF82498
71+
# define SM_VTBL_GAMEPLAY_OPTIONS_MENU_OFFSET 0xF82438
72+
# define SM_VTBL_AUDIO_OPTIONS_MENU_OFFSET 0xF31370
73+
# define SM_VTBL_OPTIONS_SUB_MENU_BASE_OFFSET 0xF6A5D8
74+
#elif _SM_VERSION_NUM == 070771
5075
# define SM_VTBL_GAME_STATE_OFFSET 0xF88940
5176
# define SM_VTBL_OPTIONS_MENU_OFFSET 0xF82418
5277
# define SM_VTBL_GAMEPLAY_OPTIONS_MENU_OFFSET 0xF823B8
@@ -62,7 +87,15 @@
6287

6388
//////CONSTRUCTOR OFFSETS
6489

65-
#if defined(_SM_VERSION_070_771)
90+
#if _SM_VERSION_NUM == 071772
91+
# define SM_CONSTRUCTOR_OPTIONS_SUB_MENU_BASE_OFFSET 0x3BF8F0
92+
# define SM_CONSTRUCTOR_CONTROL_OPTIONS_MENU_OFFSET 0x3286A0
93+
# define SM_CONSTRUCTOR_DISPLAY_OPTIONS_MENU_OFFSET 0x338040
94+
# define SM_CONSTRUCTOR_GRAPHICS_OPTIONS_MENU_OFFSET 0x351DA0
95+
# define SM_CONSTRUCTOR_COMPOUND_BUTTON_OFFSET 0x644AD0
96+
# define SM_CONSTRUCTOR_RADIO_BUTTON_SET_OFFSET 0x28C730
97+
# define SM_CONSTRUCTOR_OPTIONS_ITEM_SLIDER_OFFSET 0x3BBE80
98+
#elif _SM_VERSION_NUM == 070771
6699
# define SM_CONSTRUCTOR_OPTIONS_SUB_MENU_BASE_OFFSET 0x3BF8F0
67100
# define SM_CONSTRUCTOR_CONTROL_OPTIONS_MENU_OFFSET 0x3286A0
68101
# define SM_CONSTRUCTOR_DISPLAY_OPTIONS_MENU_OFFSET 0x338040
@@ -82,8 +115,20 @@
82115

83116
/////FUNCTIONS
84117

85-
#if defined(_SM_VERSION_070_771)
118+
#if _SM_VERSION_NUM == 071772
119+
# define SM_FUNC_VERTICAL_STACK_BOX_ADD_NEW_ITEM_OFFSET 0x527140
120+
#elif _SM_VERSION_NUM == 070771
86121
# define SM_FUNC_VERTICAL_STACK_BOX_ADD_NEW_ITEM_OFFSET 0x527140
87122
#else
88123
# define SM_FUNC_VERTICAL_STACK_BOX_ADD_NEW_ITEM_OFFSET 0x536A90
124+
#endif
125+
126+
/////VARIABLES
127+
128+
#if _SM_VERSION_NUM == 071772
129+
#define SM_VAR_PAINT_DRAG_LIMITER 0x3E0E1B
130+
#define SM_VAR_PAINT_ERASE_LIMITER 0x2AD53D
131+
#else
132+
#define SM_VAR_PAINT_DRAG_LIMITER 0x3F060D
133+
#define SM_VAR_PAINT_ERASE_LIMITER 0x3F0D9B
89134
#endif

0 commit comments

Comments
 (0)