Issue was caused by not calling sub_6DFED0 when loading the landscape. I assume in vanilla this would happen as part of the loading but due to the way loadsave now works it doesn't happen. In the process I also labelled the offset for editor step.
The scenario name was missing its null to indicate the end of the string. This would cause scenarios to have odd fileNames that are compared against to compare a scenario against the scenario list
When loading language pack, a check is made not to double entries. This
check was wrong, because it tried to use offsets as pointers to strings.
These offsets are later rewritten to actual pointers in remaining part
of LanguagePack::LanguagePack
The Steam overlay is detected by checking if the center pixel of
the framebuffer is changed between rendering and presenting to the
screen. This happens when the Steam overlay draws the gray fade on
the screen.
This does not affect other overlays like FRAPS, MSI Afterburner and
OBS overlays that don't obstruct the center of the screen.
The autosave system will now use frequencies based on wall-clock
time rather than in-game time, for example every 15 minutes. This
frequency is not affected by pausing the game or changing the game
speed. The default frequency is every 5 minutes.
Conditionally restore old functionality which got broken for mingw
builds with commit c93c1c7. Allow building with old version of code, but
generate a warning when doing so.
This is mostly refactoring of cmake scripts, but also touches build.sh
and install.sh. The cmake should be much more palatable now for major
Linux distributions.
At the same time, new configuration is introduced to Linux version, one
with Twitch enabled.
Please note, however, this change requires update of orctlibs.zip for
mingw builds.
Issue was caused by a change I asked to be done a month back. Dropdowns are awkward windows the global array for dropdown content should be populated before creating them but not anything else as that will get reset. In this case the disabled items were reset. The same happens for highlighted index if that is specified before window creation
> Issue was caused by incorrectly translating btr and bts to C. In addition the operation was on a word and not a byte so it wouldn't change the maze correctly for all rotations. I've also refactored the code to make it a bit easier to follow.
Issue was being caused by passing the incorrect x and y parameters due to missing a widget dereference. I've also moved the x/y coordinates of the hand open/close to closer match what it feels like.
Right now the project is decompiled to the point where it is feasible to
try porting it to another platform. It doesn't work 100% correctly, but
it's nearing this state.
To port it to Linux I mmapped the openrct2.exe into expected places,
disabled two offending calls (RCT2_CALLPROC_EBPSAFE(0x0040701D) and
RCT2_CALLPROC_X(0x006E7FF3…)), replaced memory management routines
with generic ones and removed all the function-pointer calls.
A basic, non-exhaustive check is included to verify that memory is
loaded correctly in place.
That last bit is probably the most intrusive one, but had to be done, as
the calling convention on Linux differs from the one on Windows. It
could possibly be emulated (just like RCT2_CALLFUNC_X) until dependency
on exe is dropped.
It is possible to completely remove calls out to original code by
commenting out contents of RCT2_CALLFUNC_X, right now this will yield
working UI, but no rendering of peeps, rides or rest of world. This can
be used as a benchmark or test platform for correctness of
implementation. The data sections will still be required for now.
Assets are expected to be in specific places, so to launch it, following
needs to satisified:
* $build/data/ has to have contents of $RCT2/Data/
* $build/data/ (same as above) has to have contents of $repo/data/
* $build/ObjData/ has to have contents of $RCT2/ObjData/
* $build/../openrct2.exe has to be $repo/openrct2.exe (as of 976ea0d)
Keep in mind you can symlink stuff and that filesystems are case
sensitive!
You can copy more of required data to possibly improve your experience.
Pretty much all of this commit will possibly have to be reverted by the
time OpenRCT2 gains independence.
Remember to build with -DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON
`platform_enumerate_files_begin` (and it directory counterpart) can
return `-1`, make sure we handle that value properly when passed on
to `platform_enumerate_files_next` and `platform_enumerate_files_end`
Add bulk of the platform file for linux, change the compilation target
from shared library to executable for linux, provide necessary changes
to make it compile & load the stub of a process.
Make sure functions are marked as stubs where needed, and implementation
is expected.
Step 1 on road towards Linux.
Remove windows-specific code, stub it out where needed and make sure we
can still compile it the way it is.
Take care of Travis' build matrix to include new build configuration.
Install new packages.
For some reason mingw or sdl has trouble providing proper HWND, which
in turn prevents opening up a window for selecting file to save when
trying to convert save game to scenario.
Fixes#1486.
Since the value incremented is a pointer, pointer arithmetics apply,
so instead of incrementing by 52, incrementation by 52^2 = 2704 takes
place, which was confirmed by inspecting generated listing.