Merge pull request #986 from duncanspumpkin/align
Add force align attributes to all hooks
This commit is contained in:
commit
1a3e1902f4
|
@ -785,7 +785,7 @@ void OpenLoco::Interop::registerHooks()
|
|||
// Part of 0x004691FA
|
||||
registerHook(
|
||||
0x0046959C,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
int16_t x = regs.eax;
|
||||
int16_t i = regs.ebx / 6;
|
||||
|
@ -800,7 +800,7 @@ void OpenLoco::Interop::registerHooks()
|
|||
|
||||
registerHook(
|
||||
0x004AB655,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
auto v = (Vehicles::VehicleBase*)regs.esi;
|
||||
v->asVehicleBody()->secondaryAnimationUpdate();
|
||||
|
||||
|
@ -809,7 +809,7 @@ void OpenLoco::Interop::registerHooks()
|
|||
|
||||
registerHook(
|
||||
0x004392BD,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
Gui::resize();
|
||||
return 0;
|
||||
});
|
||||
|
@ -826,7 +826,7 @@ void OpenLoco::Interop::registerHooks()
|
|||
|
||||
registerHook(
|
||||
0x004C9513,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
auto window = (Ui::window*)regs.esi;
|
||||
int16_t x = regs.ax;
|
||||
|
@ -850,7 +850,7 @@ void OpenLoco::Interop::registerHooks()
|
|||
|
||||
registerHook(
|
||||
0x004CA115,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
auto window = (Ui::window*)regs.esi;
|
||||
window->updateScrollWidgets();
|
||||
|
@ -861,7 +861,7 @@ void OpenLoco::Interop::registerHooks()
|
|||
|
||||
registerHook(
|
||||
0x004CA17F,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
auto window = (Ui::window*)regs.esi;
|
||||
window->initScrollWidgets();
|
||||
|
@ -900,13 +900,13 @@ void OpenLoco::Interop::registerHooks()
|
|||
// to set them all to zero this is required.
|
||||
registerHook(
|
||||
0x004422CD,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
return 0;
|
||||
});
|
||||
|
||||
registerHook(
|
||||
0x0047024A,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
|
||||
auto* entity = reinterpret_cast<EntityBase*>(regs.esi);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#define assert_struct_size(x, y) static_assert(sizeof(x) == (y), "Improper struct size")
|
||||
|
||||
#if defined(__clang__)
|
||||
#if defined(__clang__) || (defined(__GNUC__) && !defined(__MINGW32__))
|
||||
#define FORCE_ALIGN_ARG_POINTER __attribute__((force_align_arg_pointer))
|
||||
#else
|
||||
#define FORCE_ALIGN_ARG_POINTER
|
||||
|
|
|
@ -145,7 +145,7 @@ namespace OpenLoco::Paint
|
|||
{
|
||||
registerHook(
|
||||
0x004622A2,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
|
||||
PaintSession session;
|
||||
|
|
|
@ -225,7 +225,7 @@ namespace OpenLoco::Ui::WindowManager
|
|||
|
||||
registerHook(
|
||||
0x0048F210,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
auto window = Windows::Station::open(regs.dx);
|
||||
regs = backup;
|
||||
|
@ -236,7 +236,7 @@ namespace OpenLoco::Ui::WindowManager
|
|||
|
||||
registerHook(
|
||||
0x004577FF,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
auto window = Windows::IndustryList::open();
|
||||
regs = backup;
|
||||
|
@ -409,7 +409,7 @@ namespace OpenLoco::Ui::WindowManager
|
|||
|
||||
registerHook(
|
||||
0x004CE3D6,
|
||||
[](registers& regs) -> uint8_t {
|
||||
[](registers& regs) FORCE_ALIGN_ARG_POINTER -> uint8_t {
|
||||
registers backup = regs;
|
||||
Input::toolCancel();
|
||||
regs = backup;
|
||||
|
|
Loading…
Reference in New Issue