Commit graph

492 commits

Author SHA1 Message Date
Clownacy
12b6fad997 Made MSVC static-link the CRT 2019-04-29 22:11:47 +01:00
Clownacy
b04e9ee11a .gitignore cleanup 2019-04-29 15:44:56 +01:00
Clownacy
9168a29f28 Remove unused SDL2 lib 2019-04-29 15:33:57 +01:00
Clownacy
75af33b7ed Remove unused MSVC files
Now that CMake compiles these dependencies directly, there's no need
to keep pre-built libraries around, except for MSVC2003.
2019-04-29 15:06:02 +01:00
Clownacy
079681a9d7 Added devilution-comparer files
I've kept these local for ages, but they're probably useful to have
upstream too
2019-04-29 14:49:13 +01:00
Clownacy
fdb2177879 Add missing options to the readme 2019-04-29 14:36:18 +01:00
Clownacy
58d7fb2ca7 Some more CMake fixes 2019-04-26 05:13:50 +01:00
Clownacy
469c25c93d Added FORCE_LOCAL_LIBS option
This forces CMake to use the local libraries, even if system libs
are readily available. This is useful for MSYS2, since find_package
would link dynamic libraries, but local libraries are static.
2019-04-26 04:17:29 +01:00
Clownacy
6209661c76 Fixed SDL2 exporting DLL symbols in static builds 2019-04-26 03:42:57 +01:00
Clownacy
5272861330 Remove leftover debug print 2019-04-26 03:42:36 +01:00
Clownacy
0e99e77337 Enabled subpixel rendering in the local copy of FreeType
This makes the text resemble the ClearType text rendered by Windows
in the vanilla game.
2019-04-26 02:54:30 +01:00
Clownacy
896b09f336 Fixed some CMake problems that were preventing builds on Windows
FLTK kinda sucks
2019-04-26 02:50:23 +01:00
Clownacy
ac465d29b4 Mean CMake dependency overhaul
I'm taking a page from Dolphin's book, and including copies of each
dependency's source code. This combines the ease of use of including
pre-built libraries instead of needing to navigate a package manager
 - as is (or was) the case for MSVC - with the portability of using
packages. Granted, this method's more of a jack of all trades,
master of none, since it's *less* user-friendly than prebuilt
packages (compilation times), and you don't get the per-distro
compatibility fixes you'd get from a package manager.

You can still use system libs if you want. In fact, it's still the
default behaviour: compiling the libs manually is just a fallback.
I'll add an option to force-enable this soon, however, since it's a
nicer way to produce static MSYS2 builds than the hackish nightmare
that I was using before. Not to mention, having my own copy of the
sources means I can provide my own fixes and tweaks your package
manager may not. For example, I can combine MSYS2's FreeType
subpixel rendering with vcpkg's fix for SDL2 exporting its symbols
in static builds.
2019-04-26 01:52:02 +01:00
Clownacy
7d222231ae Added some missing headers 2019-04-26 01:41:36 +01:00
Clownacy
b5a12f8888 Merge branch 'master' of https://github.com/clownacy/Cave-Story-Engine-2 2019-04-25 22:31:42 +01:00
Clownacy
07c5734498 Tweaked CMake file 2019-04-25 22:31:13 +01:00
Clownacy
090ae9f6ce Fix FLTK not finding its headers
Stupid FLTK_INCLUDE_DIR not being called FLTK_INCLUDE_DIRS like a normal
library
2019-04-25 19:02:04 +01:00
Clownacy
0c018a9fd6 Deobfuscated null characters 2019-04-25 16:26:37 +01:00
Clownacy
e361715b96
Add a link to the readme explaining the Developer Command Prompt 2019-04-24 18:19:45 +01:00
Clownacy
5f0754b23c Correct NPC069's name 2019-04-23 18:59:03 +01:00
Clownacy
b38aeaf064 Made TextScriptProc return 0 if it encounters an unknown command
This is what the original game does
2019-04-23 18:19:41 +01:00
Clownacy
468aa2efc1 Added error message boxes to the TSC parser 2019-04-23 09:50:15 +01:00
Clownacy
79bf011e3b Made GenericLoad.cpp ASM-accurate 2019-04-22 20:12:43 +01:00
Clownacy
ac904aa4ae Fixed uninitialised pointer 2019-04-22 00:40:03 +01:00
Clownacy
cc4eb82162 Added caching to the font system
I never liked how much of a bottleneck the font renderer was. Maybe now
the credits won't stutter like mad on the Raspberry Pi.
2019-04-21 23:54:05 +01:00
Clownacy
f25df2ce07 Remove SDL2 dependency from Font.cpp 2019-04-21 21:28:18 +01:00
Clownacy
83d444c8d4 Added missing RUNTIME_OUTPUT_DIRECTORY setting in CMake file 2019-04-20 19:02:45 +01:00
Clownacy
84ab67f474 Added data folders from vanilla Cave Story
Makes building easier when you don't have to hunt down a zip file
2019-04-20 18:17:11 +01:00
Clownacy
47297bd797 Made DoConfig not reset the font to Courier New when it saved 2019-04-20 18:08:34 +01:00
Clownacy
89ace4b737 DoConfig portability improvements and bugfixes 2019-04-20 18:00:55 +01:00
Clownacy
c533a8084a
Detail the CMake build system in the readme
Also note the Makefile's deprecation
2019-04-20 06:57:53 +01:00
Clownacy
2bf46dc700 A bunch of CMake file cleanup 2019-04-20 05:15:01 +01:00
Clownacy
014d128396 Remove the STATIC option from the CMake file
Instead it just automatically does static linking if it detects MSYS
2019-04-20 04:43:56 +01:00
Clownacy
5cf7c95dd7 Added DoConfig (clone, not a decompilation)
Right now only the CMake file builds it
2019-04-20 04:43:38 +01:00
Clownacy
3d3d6a2179 Make CMake output executables to the build_en/build_jp folders
MSVC copies SDL2.dll across too
2019-04-20 01:09:53 +01:00
Clownacy
33254c87dd Shut up MSVC's stupid warnings when using the CMake file 2019-04-19 17:37:10 +01:00
Clownacy
295673b813 Sound cleanup and optimisation
PlaySoundObject is also more like it was in the original source code
2019-04-19 01:24:08 +01:00
Clownacy
5a3e641492 Do the last commit except less stupid 2019-04-18 20:15:46 +01:00
Clownacy
eb11c7798d ...Do the previous commit only less stupid 2019-04-18 20:08:33 +01:00
Clownacy
2a9e8bd8cc Autodetect Raspberry Pi in CMake file
...instead of expecting the user to manually-define it
2019-04-18 20:04:49 +01:00
Clownacy
d38c96622c Remove Raspberry Pi hack that forces SDL2 to use OpenGLES2
This was only for Void and Arch ARM, but I think I'm just setting them up
wrong. Raspbian doesn't need this hack to reach 60FPS.
2019-04-18 19:58:40 +01:00
Clownacy
7e038bc24a Fix backwards-incompatible CMake nonsense 2019-04-16 18:57:55 +01:00
Clownacy
9effc5e0fe Lowered CMake minimum requirement to 3.7.2
Tested on Raspbian
2019-04-16 17:42:42 +00:00
Clownacy
e2ed9ad950 Okay, forget all that. Generating an output folder was stupid. 2019-04-14 18:25:12 +01:00
Clownacy
2c8ccc5a0b Actually, only generate the output folder during cmake's config stage 2019-04-14 04:14:45 +01:00
Clownacy
5ec9fea302 The build folder is now automatically generated
This way, we don't need to tell everyone who uses the enhanced branch
that they need to copy res/data_en. It also gives the CMake project a
way to bundle everything into a neat little folder.
2019-04-14 03:36:57 +01:00
Clownacy
3cbe18b9c5 Rewrite stdint.h so it's not dependant on SDL2 2019-04-13 21:27:43 +01:00
Clownacy
4d9bc0a65f Remove the WINDOWS CMake option, and just detect Windows instead
Also remove the STATIC option from MSVC because why wouldn't you
2019-04-13 21:25:46 +01:00
Clownacy
bde0c979ff More CMake improvements (also FreeType is a static lib now)
The official(?) binaries weren't statically-linked, and being compiled
with MSVC2017 probably meant they weren't compatible with old OSes
anyway.

So now, the 32-bit one's compiled with MSVC2003. The other's still
MSVC2017 though. While I was at it, I made them both static. *Also*
while I was at it, I made sure subpixel-rendering was enabled.
2019-04-13 20:30:20 +01:00
Clownacy
ea6f67f87c CMake fixes 2019-04-13 18:04:17 +01:00