Commit graph

167 commits

Author SHA1 Message Date
Clownacy
1301ea8797 Replace WinAPI with SDL2 as the windowing system 2019-09-02 20:17:06 +01:00
Clownacy
35344c5f4f Fixes
What is it with Pixel's official code, and relying on non-standard
stuff? Even his PxTone library had portability issues.
2019-09-02 02:02:25 +01:00
Clownacy
2a70cbe89a Shut up a warning
The ASM is unaffected
2019-09-01 23:42:28 +01:00
Clownacy
d35c9cd09e Deobfuscate WinMain, and make some accuracy improvements 2019-09-01 23:35:41 +01:00
Clownacy
2b78821786 Add an option to re-enable the Debug Save feature
This includes the ability to drag-and-drop save files onto the game
window, which this feature was likely meant to be used with.
2019-09-01 19:55:54 +01:00
Clownacy
8892dc24b5 ASM-accurate Main.cpp and added the various Windows menus 2019-09-01 18:15:12 +01:00
Clownacy
451945e80c Ripped out SDL2, and begun made WinMain ASM-accurate
Almost there... see #74.
2019-09-01 14:39:16 +01:00
Clownacy
f956eb9264 Mostly ASM-accurate Draw.cpp
See #74
2019-08-31 17:43:45 +01:00
Clownacy
03e513365b PATH_LENGTH is actually Windows's MAX_PATH
When MAX_PATH isn't available, use FILENAME_MAX. This might be a bad
idea.
2019-08-31 01:44:53 +01:00
Clownacy
2f56effc51 Accurate main function variable names 2019-08-29 20:19:31 +01:00
Clownacy
d5ee5f6979 Made Input.cpp ASM-accurate
See #74
2019-08-29 19:27:56 +01:00
Clownacy
17ae81823c Fixes 2019-08-29 00:00:17 +01:00
Clownacy
470c5d86d5 ASM-accurate Sound.cpp and Organya.cpp (except for one function) 2019-08-28 07:55:42 +01:00
Clownacy
e67c1e3640 Migrated to the native Windows resource file system 2019-08-27 23:59:57 +01:00
Clownacy
59735a61e6 Minor style change 2019-08-13 05:03:43 +00:00
Clownacy
0b874153d4 Free the string returned by SDL_GetBasePath
Thanks, Fayti1703.
2019-07-29 14:33:14 +00:00
Clownacy
9948fa8b07 Move the SDL_Window creation to the rendering backends
Whoops, didn't mean to commit the Main.cpp edit way back when I made
the OpenGL 2.1 backend.
2019-07-24 20:20:06 +01:00
Clownacy
05f382961d Added OpenGL 2.1 renderer
Yay 100% hardware-acceleration. Yes, I know 2.1 is outdated and
crappy, but it was the easiest one to write. I'll probably make an
OpenGL 3.0 Core renderer at some point.

Anyway, font rendering isn't here yet, because I plan to overhaul it.
2019-07-23 15:20:14 +01:00
Clownacy
36fdb4596d Cleanup and an accuracy improvement 2019-07-16 13:21:21 +01:00
Clownacy
81eb438482 Fixes and tweaks 2019-07-16 00:15:20 +01:00
Clownacy
6a4f4e0df3 Added handlers for render target loss/window resize
These only really happen when you use exclusive fullscreen and
alt-tab out. Or, at least, it does on Windows with SDL2 in DirectX
mode.
2019-07-15 17:47:22 +01:00
Clownacy
3ef9b67b1d Replaced a lot of Draw.cpp with a software renderer
Also fixed the SDL_Window not being freed. This commit's a bit of a
blob, since I made a bunch of tweaks to Draw.cpp while adding the new
renderer. Don't worry though, I'll add the hardware accelerated code
back again soon. In fact, I've got an idea on how to make it even
faster, while still being able to survive render target losses.

Hopefully this software renderer will come in handy for the Wii U
port: its SDL2 port's hardware acceleration is broken, and the
SDL_Surface API is too slow.
2019-07-15 11:41:40 +01:00
Clownacy
97acb292bb Made Game.cpp ASM-accurate
Working towards #74.
2019-06-30 03:03:25 +01:00
Clownacy
44f142d8e7 Big ugly rework of WindowsWrapper.h
Okay so WindowsWrapper.h now just includes Windows.h if it wants
non-portability. This meant I had to split the custom RECT struct
back to the original RECT and unknown nameless struct (one uses
left/right, while the other uses front/back).
2019-06-20 20:06:55 +01:00
Clownacy
44094b103e <SDL.h> -> "SDL.h"
The SDL devs recommend this:
https://wiki.libsdl.org/FAQDevelopment#Do_I_.23include_.3CSDL.h.3E_or_.3CSDL.2FSDL.h.3E.3F
2019-06-06 18:51:44 +00:00
Clownacy
c80b593a3f Some #include fixes
Finally figured out how to get include-what-you-use working
2019-06-06 18:44:28 +00:00
Clownacy
d2b5872c95 Weeded out some bool usage
Cave Story was written in C89. No bools. I've left in Sound.cpp's
though, since that's written in C++98 currently.
2019-05-24 10:07:30 +01:00
Clownacy
00ca00f5dd Weed out some usage of C++ bools
Pixel used BOOL, the C89-friendly Windows-specific equivalent
2019-05-14 01:35:04 +01:00
Clownacy
c9d5b3d03a Made Ending.cpp ASM-accurate 2019-05-13 20:43:43 +01:00
Clownacy
9b82baeb02 Made MiniMap.cpp actually ASM-accurate 2019-05-13 17:50:09 +01:00
Clownacy
676ee004fe Removed the dependency on stdint.h
This doesn't exist in MSVC2003, and nothing in the Linux port's debug
symbols indicate Pixel used it.
2019-05-13 15:18:33 +01:00
Clownacy
b5699d9760 SDL's docs specifically calls these 'scancodes' not 'scan codes' 2019-05-09 18:45:28 +01:00
Gabriel Ravier
c6bcbeab2f Revert "corrections" of "colour" to "color", makes style inconsistent though :(
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-05-08 18:01:15 +02:00
Gabriel Ravier
70818bd58c Some orthograph corrections
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-05-08 12:19:15 +02:00
Gabriel Ravier
b19733f47e Correct formatting in Main.cpp
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-05-08 09:30:14 +02:00
Gabriel Ravier
960fa6f456 Removed all trailing spaces and added newline at EOF (when not present)
Also changed a "linux" to "Linux"

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-05-07 11:55:42 +02:00
Clownacy
f7c1ca86c3 Remove Resource.cpp's dependence on SDL2
This also makes its API a lot more similar to Windows'
2019-05-05 01:57:23 +01:00
Gabriel Ravier
d854004463 Added .gitattributes for normalisation and normalized a few sources files to LF (from CRLF)
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2019-05-03 12:27:11 +02:00
Clownacy
7eae431e3a Added missing newlines to printfs 2019-03-07 00:19:33 +00:00
Clownacy
923749e41e Some more fixes for errors MSVC2003 noticed
Now I've got the entire project building with MSVC2003, _and_ I can
compare its ASM with Devilution's disassembler tool.
2019-02-22 21:18:39 +00:00
Clownacy
9203105235 Shut up some warnings 2019-02-19 22:57:00 +00:00
Clownacy
4d04590b28 Made the game compile as C++03
Still need to sort out the C++11-only initialiser lists that GCC allows
in C++03 mode with a warning.
2019-02-19 16:05:28 +00:00
Clownacy
0bb9760d87 Rearranged #includes 2019-02-18 21:30:22 +00:00
Clownacy
e5caff593c Removed the SDL dependency from Draw.h
Should make compiling with VC++ 2003 simpler
2019-02-18 20:40:07 +00:00
Clownacy
132f523510 Changed direction key fix
The old fix kinda just hardcoded the game to English keyboard layouts.
Scancode bind the keys based on position instead of meaning, which
should work better.
2019-02-16 22:18:26 +00:00
cuckydev
1b0a8e56db accurater? 2019-02-14 23:21:23 -05:00
cuckydev
c7da84bb9f accuracy? 2019-02-12 20:58:42 -05:00
Clownacy
1546e6ed4e Remove opengl hint
I'm just gonna guess that was accidentally included
2019-02-11 14:57:54 +00:00
cuckydev
5aea2ad77b Fortnite 2019-02-10 20:46:33 -05:00
Clownacy
4e61be56d0 Renamed the SDL icon file
Turns out it has an actual name in the original EXE
2019-02-10 17:03:55 +00:00