Commit graph

164 commits

Author SHA1 Message Date
Clownacy
8d296f0385 Allow backend to specify data folder
On the 3DS, I want the data files to go in the read-only ROMFS, while
save data goes on the SD card. This is impossible with the current
system, so I'm changing it.

The other backends will need updating to support this.
2020-10-11 15:58:48 +01:00
Clownacy
baf88b0d4b Convert cursors to RGBA
...instead of colour-keyed RGB. Less goofing-around for the user.
2020-09-27 17:16:58 +01:00
Clownacy
fe76fe6dea Big scary messy unfinished font overhaul
This is currently hardcoded to 640x480 English builds.

What I've done is temporarily gutted the FreeType2 font renderer, and
instead introduced a system where the font is read from a
pre-rendered font atlas. This allows me to get 100% accurate font
rendering to Windows XP... because I literally created these atlases
with Windows XP.

So not only does this eliminate the issue of FreeType producing
misshapen glyphs, but it also works around the copyright issue
regarding bundling the Courier New and MS Gothic fonts with CSE2.

You see, font files can be copyrighted like any old software, however
typefaces have a lot less protection - they're basically fair-game.
IANAL, of course - look it up yourself.

I don't really want to throw away the FreeType font system since I
spent a ton of time working on it, it allows you to use other font
files, and I'll probably wind up needing it for CSE2EX. I guess I'll
just have to find some way to either have the two systems coexist, or
make it so one or the other can be selected at compile-time.
2020-09-17 15:02:36 +01:00
Clownacy
9ea6caad72 Merge branch 'accurate' into portable 2020-09-14 23:31:01 +01:00
Clownacy
eadc04e46e Bump StartDirectDraw fix to FIX_MAJOR_BUGS
I was debugging GLFW earlier, and this fix wasn't being enabled.
FIX_BUGS should be for aesthetic bugs that only affect gameplay, not
ones that affect fundamental stability.
2020-09-14 23:30:11 +01:00
Clownacy
c12149b96e Fix a weird old typo 2020-09-13 19:35:31 +01:00
Clownacy
988f1128dd Convert a bunch of ints to size_t
ints are dumb - only use them when you have to
2020-09-10 17:36:21 +01:00
Clownacy
84d6b50bc2 Remove platform backend dependency on core engine
The backends need to have no dependency on the engine, otherwise
there'll be conflicts when we do stuff like include `window.h` in a
file that also happens to include "WindowsWrapper.h" somewhere.
2020-09-08 03:52:23 +01:00
Clownacy
bdcb1f3a3e Remove Organya dependency from platform backend 2020-09-08 03:36:11 +01:00
Clownacy
71970c1f74 Merge branch 'accurate' into portable 2020-08-29 17:11:28 +01:00
Clownacy
e41d4472ec Another authentic struct name 2020-08-11 00:24:10 +01:00
Clownacy
a2ecd75271 Restore an original struct name
This was buried in the Linux port
2020-08-11 00:24:04 +01:00
Clownacy
adb09e19b7 Merge branch 'accurate' into portable 2020-07-08 19:42:28 +01:00
Clownacy
13985fb349 Added SoundMode enum
Controls whether a PlaySoundObject call start, stops, or loops a
sound
2020-07-08 18:52:32 +01:00
Clownacy
47ed4d7bfd
Restore stddef.h in Main.cpp
`NULL` is used in this file
2020-07-02 14:54:15 +01:00
Gabriel Ravier
32c8795ead src: Cleaned up includes to only (and always) include what we use
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-07-01 18:26:22 +02:00
Clownacy
27a1fd900f Revert more unnecessary edits 2020-06-30 13:48:46 +01:00
Gabriel Ravier
771b944d17 src: Some cleanup for the MAX_PATH std::string PR
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-06-29 19:02:25 +02:00
Gabriel Ravier
564d42dbd2 src: Change from using asprintf-based code to using std::string-based code
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-06-29 18:33:22 +02:00
Gabriel Ravier
32a879ca58 src: Removed MAX_PATH and made the path/string handling better in general (ported over from supportPathsAboveFilenameMax)
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
2020-06-29 00:14:30 +02:00
Clownacy
4403d10c14 Merge branch 'accurate' into portable 2020-05-04 18:24:23 +01:00
Clownacy
70a3badc0d Cleanup 2020-05-04 18:21:44 +01:00
Clownacy
2f682a102f Merge branch 'accurate' into portable 2020-05-04 18:17:39 +01:00
Clownacy
124aebaaa2 This is likely more accurate to the original code 2020-05-03 22:07:18 +01:00
Clownacy
e1af3336aa Fix compilation 2020-05-03 22:05:39 +01:00
Clownacy
95b29bb516 Mark some functions as static
Mac debug data confirms these
2020-05-03 21:52:36 +01:00
Clownacy
03250d62a0 Make variables more accurate
This commit changes which variables are static: the Mac (and
presumably the Linux) debug data tells you what variables are static,
by prefixing their names with double_underscores.

The variable names themselves also hint at this: global variables are
prefixed with 'g', and use upper-camelcase, while static variables
use whatever_you_call_this.
2020-05-03 20:28:56 +01:00
Clownacy
b89207b586 Merge branch 'accurate' into portable 2020-04-20 01:17:19 +01:00
Clownacy
320e891a70 Fix keyboard input on Windows 2020-04-19 01:33:52 +01:00
Clownacy
4c910dbee6 Correct variable name
I must have guessed this one, and not left a comment saying it was
fake... dammit.
2020-04-16 13:52:00 +01:00
Clownacy
8a9f70875c More authentic variable/function names 2020-04-16 13:48:36 +01:00
Clownacy
c51a074fad Big disgusting backend rework
We need to avoid `WindowsWrapper.h` in the backends whenever we can,
to avoid name collisions (the Wii U homebrew library) defines its own
BOOL/TRUE/FALSE, which really doesn't work with CSE2.
2020-04-13 18:19:39 +01:00
Clownacy
fd0733f6e7 Fix GLFW3 not handling exit event while not focussed 2020-04-13 15:32:34 +01:00
Clownacy
2a0570df94 Make bugfix consistent with official code 2020-04-07 18:18:45 +01:00
Clownacy
41d5c5b5c8 Make it so Backend_Init can fail 2020-04-07 17:46:02 +01:00
Clownacy
fbf9332c9a Fix compiler error with DEBUG_SAVE enabled 2020-04-05 18:25:35 +01:00
Clownacy
eaef25d5da Change how backend keyboard status stuff works 2020-04-05 13:26:08 +01:00
Clownacy
aef0f81f28 Offload keyboard tracker to the engine
Centralising it in the backend breaks the enhanced branch's rebinding
menu.
2020-04-05 04:31:11 +01:00
Clownacy
d62ca286f6 Merge branch 'accurate' into portable 2020-04-05 04:18:02 +01:00
Clownacy
f75859b759 Change constant ordering
This was bugging the hell out of me
2020-04-05 03:35:43 +01:00
Clownacy
393359e63f Add some sanity checks 2020-04-05 03:27:04 +01:00
Clownacy
80091c4be5 Simplify some logic 2020-04-05 03:25:58 +01:00
Clownacy
135035bb1a Change 'PlatformBackend' namespace to 'Backend' 2020-04-04 20:31:27 +01:00
Clownacy
39ddfd9791 Abstract-away keyboard input
Now, instead of keyboard input being completely-handled in the
backend, it's merely abstracted, while still otherwise being handled
in the game itself. This will be useful for the enhanced branch's
key-rebinding menu.
2020-04-04 17:42:56 +01:00
Clownacy
ef00bbcdd4 Get window icon working in GLFW
Amazingly, this actually works in SDL2, so now they both use this
method.
2020-04-02 22:03:08 +01:00
Clownacy
53d54d4e53 Ignore argc, don't ignore argv 2020-04-02 20:58:01 +01:00
Clownacy
0182ab6eb3 Get drag-and-drop working again 2020-04-01 21:43:04 +01:00
Clownacy
b3591ba3da Remove dead code 2020-04-01 21:37:45 +01:00
Clownacy
add0627f03 Restore custom cursor support 2020-04-01 21:36:46 +01:00
Clownacy
f23117bbdc Overhaul how window icon loading works
Now most of it has been moved out of the backends.
2020-04-01 21:20:26 +01:00