Commit graph

939 commits

Author SHA1 Message Date
Andrei "Akari" Alexeyev
da4f156c71 Compatibility with stupid versions of sed that don't recognize \t and \s 2017-02-26 00:28:06 +02:00
Andrei "Akari" Alexeyev
77d3f06a56 use /usr/bin/env in shell scripts 2017-02-26 00:18:03 +02:00
Andrei "Akari" Alexeyev
48ada49293 Put link_directories in the right place 2017-02-26 00:13:49 +02:00
Andrei "Akari" Alexeyev
9dff7f9287 Use *_LIBRARY_DIRS provided by pkgconfig
required for building on some systems (osx at least)
2017-02-26 00:06:28 +02:00
Andrei "Akari" Alexeyev
09876291fc fixed macro redefinition warnings on osx 2017-02-25 23:55:53 +02:00
Andrei "Akari" Alexeyev
c6d4e41978 Added a simple script to generate a .dmg OSX package 2017-02-25 22:40:30 +02:00
Andrei "Akari" Alexeyev
e1d3ed25a5 Generate a fancy .app bundle when building for OSX 2017-02-25 22:22:13 +02:00
Andrei "Akari" Alexeyev
8c83f065d3 gitignore osx shit 2017-02-25 22:21:51 +02:00
Andrei "Akari" Alexeyev
261431dd25 OSX: added an install script that handles dylibs 2017-02-25 18:56:31 +02:00
Andrei "Akari" Alexeyev
139134fe6a Shut up a stupid GCC warning 2017-02-25 15:24:54 +02:00
Andrei "Akari" Alexeyev
0091c7aca7 Refactored the gl loader into a polyglot macro monstrosity
We no longer link to libGL by default. All GL functions are loaded
dynamically through SDL apis. Use -DLINK_TO_LIBGL to enable linking, in
which case Taisei won't try to dynamically load any of the gl functions.

Previously we used a strange inconsistent setup where some functions
were loaded dynamically and others pulled from the linked library.

We also no longer link to libGLU even if LINK_TO_LIBGL is set. The only
function we used from that library was gluPerspective. taiseigl now
provides a simple substitute via glFrustum.

The SDL2 gl headers are now used instead of the system ones, this should
be more portable. The taiseigl.h header contains generated code
partially based on content from those headers. It also doubles as a
python3 script that actually generates that code and inserts it into
itself. It scans the Taisei source tree for gl* calls and generates code
only for the functions we use, and a few manually specified ones that
are called indirectly.

Assumptions such as "linux = glx" are no longer made. SDL takes care of
platform specifics, as it should.

The GL_EXT_draw_instanced/GL_ARB_draw_instanced extension detection has
been improved. Taisei should be able to figure out which one to use
without a compile-time check, and support for the ARB version has been
actually implemented for the laser snippet loader. I've tested it on
Windows 8 with Intel drivers that don't support the EXT version but do
support the ARB one, instanced drawing works and the lasers don't lag!
OSX should benefit from this change as well, although I've not yet
tested the OSX build, beyond simply compiling it.
2017-02-25 15:24:54 +02:00
Andrei "Akari" Alexeyev
a36d18d156 Transition tweaks 2017-02-25 15:23:22 +02:00
Andrei "Akari" Alexeyev
57053210dd Refactored and improved menus and transitions 2017-02-24 23:58:27 +02:00
Martin Herkt
fb50b87ffe
taisei_err: mark errx _Noreturn for diagnostics 2017-02-24 17:23:38 +01:00
Andrei "Akari" Alexeyev
eee4403665 Made it possible to disable audio support altogether 2017-02-24 11:33:49 +02:00
Andrei "Akari" Alexeyev
c6a03b2e06 Minor readability issue 2017-02-23 18:34:10 +02:00
Andrei "Akari" Alexeyev
76d7b2151f Merge remote-tracking branch 'origin/pedantic' 2017-02-23 18:33:20 +02:00
Andrei "Akari" Alexeyev
c517fd75f6 Revert "Enabled -Wnull-dereference"
This reverts commit af08601fc2.

Reason: looks like older versions of GCC don't understand it and fail
with an error
2017-02-23 17:20:26 +02:00
Andrei "Akari" Alexeyev
ab3738928f Use pkg-config for zlib as well. It simply works better. 2017-02-23 17:18:32 +02:00
Andrei "Akari" Alexeyev
a8537f6e69 rwops_zlib: reorganized the private ZData struct a bit 2017-02-23 17:15:47 +02:00
Andrei "Akari" Alexeyev
b0abd177ac Removed redundant null checks before free() calls
free(NULL) is guaranteed to be a no-op by the C standard, so let's not
clutter the code with those.
2017-02-23 16:05:55 +02:00
Andrei "Akari" Alexeyev
af08601fc2 Enabled -Wnull-dereference 2017-02-23 13:30:59 +02:00
Andrei "Akari" Alexeyev
ea1eba80f3 Enabled -Wtype-limits 2017-02-23 13:27:49 +02:00
Andrei "Akari" Alexeyev
397719a2a2 Switched from GNU C99 to Standard C11. Enabled pedantic warnings.
Fixed all warnings and compile errors.
Confirmed successful compilation without warnings for linux (gcc,
clang), windows (gcc-mingw), osx (clang-osxcross).
2017-02-23 13:16:52 +02:00
Andrei "Akari" Alexeyev
e4bcf929f9 Ensured newline at the end of files 2017-02-23 12:43:45 +02:00
Andrei "Akari" Alexeyev
db3f474035 Got rid of all the imaginary constants
They are a non-standard GCC extension, not all compilers support them
universally. An extra character is a small price to pay for portability.
2017-02-23 12:39:31 +02:00
Andrei "Akari" Alexeyev
b9ab0a8c4b Merge branch 'compression' 2017-02-23 12:13:09 +02:00
Andrei "Akari" Alexeyev
952452703f got rid of some useless dereferencing 2017-02-23 12:06:32 +02:00
Andrei "Akari" Alexeyev
ba71f77102 fix error handling in replay_write
I know those functions never actually return false (for now), it's
still incorrect code and a bug waiting to bite.
2017-02-23 11:53:57 +02:00
Andrei "Akari" Alexeyev
b7f1d2f2d3 autoclose parameter for the RWops wrappers 2017-02-23 06:04:42 +02:00
Andrei "Akari" Alexeyev
9687a65549 Added SDL_RWGetZStream 2017-02-23 05:47:03 +02:00
Andrei "Akari" Alexeyev
0961a57446 Don't create an autobuffer when writing uncompressed replays
It was not used anyway
2017-02-23 05:13:20 +02:00
Andrei "Akari" Alexeyev
db0cfa43bc "straightforward" my ass 2017-02-22 22:52:25 +02:00
Andrei "Akari" Alexeyev
30db5c8fd6 Support for viewing replays specified on the command line
$ taisei replay /path/to/replay.tsr
$ curl http://example.com/replay.tsr | taisei replay /dev/stdin
2017-02-21 22:31:46 +02:00
Andrei Alexeyev
9242dcfb7a Merge pull request #64 from makise-homura/master
Spell practice BGM and a couple of other fixes
2017-02-21 09:38:10 +02:00
makise-homura
e8acbe923d Spell practice stages now use boss's bgm, not stage-related one 2017-02-20 22:28:22 +03:00
makise-homura
d0b37bff3c Removed unneeded CMAKE_MODULE_PATH altering 2017-02-20 20:08:03 +03:00
makise-homura
e4319dbc94 boss.h: integral complex constant fixed 2017-02-20 19:51:51 +03:00
Andrei "Akari" Alexeyev
e80a44e3f5 fix -mwindows yet again 2017-02-20 12:18:44 +02:00
Andrei "Akari" Alexeyev
3906cadb1d Actually put -mwindows in the right place 2017-02-19 14:55:55 +02:00
Andrei "Akari" Alexeyev
04e4fe37c3 Fix to add -mwindows back in 2017-02-19 14:51:55 +02:00
Martin Herkt
439dad9e68
config: extend vsync option (default adaptive)
Adaptive vsync is nice in theory, but may cause unwanted tearing
on setups with refresh rates that don’t match what Taisei is
rendering at. Hence, this should be optional.
2017-02-19 04:50:02 +01:00
Andrei "Akari" Alexeyev
4d039759a3 fix missing separator 2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
b3bea6a9db Generate spellstage titles automatically as well 2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
b88a6b0b42 Cleanup function for the stages array 2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
de52c87af7 finally, a spell practice menu 2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
02c0b50bdb progress: add stage/difficulty unlock cmd, improve writing routine 2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
347f143a54 Unlock spellcards on story mode encounter
But only when not using continues!
2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
b900263611 StageProgress API 2017-02-19 03:28:00 +01:00
Andrei "Akari" Alexeyev
2643c4df01 Initial support for persistent player progress storage
Only implements unlockable stages for now, but designed to be extensible.
See comments in progress.c for detauls.
2017-02-19 03:28:00 +01:00