Commit graph

77 commits

Author SHA1 Message Date
Andrei Alexeyev
e355e57fb5
make the list api require less insane casts all over the place
by sealing the spirit of insanity in its header file, that is
2017-12-24 08:16:25 +02:00
Andrei Alexeyev
29acd5f58a meson: intel intrinsics, various improvements 2017-12-21 03:58:54 +01:00
Andrei Alexeyev
abbc62b49c
object pools 2017-12-13 21:08:23 +02:00
Andrei Alexeyev
4b53d65c23
enable GL_TEXTURE_2D by default to reduce API calls 2017-11-22 02:05:42 +02:00
Andrei Alexeyev
7b53d9e731
redesign list api 2017-11-21 16:45:01 +02:00
Andrei Alexeyev
586af9a6b0
huge projectile API changes and optimizations (#93) 2017-11-10 22:49:16 +02:00
Andrei Alexeyev
00bd11ea89
item tweaks; improved after-death grace period
* items bounce off the viewport "walls"
    * autocollect is interrupted on death
    * all projectiles are continuously cleared during the death and
    respawn process
2017-10-31 15:47:20 +02:00
Andrei Alexeyev
a1204d40b2
new sfx, changed wriggle stage2 nonspell pattern
* bullet "redirection" sound
    * extra spell charge sound
2017-10-22 22:13:07 +03:00
Andrei Alexeyev
2290d9c2ea
WIP de Broglie tweaks 2017-10-22 05:52:37 +03:00
Andrei Alexeyev
c5717cca5e
wave-particle duality changes
whatever, ship it
2017-10-20 21:53:21 +03:00
Andrei Alexeyev
4d5f7e06d3
fix messed up static laser width/collision 2017-10-04 00:24:36 +03:00
Andrei Alexeyev
7627a1e531
New cirno hard+ spell: Winter Sign ~ Snow Halation 2017-10-03 08:46:15 +03:00
Andrei "Akari" Alexeyev
837c02c791
fix undefined behaviour in various places
these were found by UBSan in clang builds. they don't show up in gcc
builds
2017-09-26 03:38:34 +03:00
laochailan
6bd74a4139 REMEMBER to never make macros duplicate random arguments 2017-09-24 16:45:49 +02:00
Andrei "Akari" Alexeyev
7c9e54a71d
update copyright and credits 2017-09-12 04:28:15 +03:00
Andrei "Akari" Alexeyev
ae4eb3746f
ricci changes, with basic diff. balancing 2017-09-11 06:44:16 +03:00
Andrei "Akari" Alexeyev
7856bc997a fixed the fallback laser rendering method 2017-04-18 23:12:49 +03:00
Andrei "Akari" Alexeyev
084df4a8e9 removed a log_debug 2017-04-15 19:12:19 +03:00
Andrei "Akari" Alexeyev
7da6326140 more accurate/forgiving laser collision detection 2017-04-15 19:09:14 +03:00
Andrei "Akari" Alexeyev
528323a92d WIP phosphaenus hemipterus redesign 2017-04-14 07:00:11 +03:00
Andrei "Akari" Alexeyev
1742366980 laserclearing fixes and tweaks 2017-04-06 02:09:09 +03:00
Andrei "Akari" Alexeyev
784b04ea37 experimental laser clearing animation/mechanic, similar to how bullets die 2017-04-06 01:46:00 +03:00
Andrei "Akari" Alexeyev
86930cfdc0 Merge branch 'master' into extraspells 2017-03-11 03:49:09 +02:00
Andrei "Akari" Alexeyev
dc1cfa7ae9 Merge branch 'master' into res-refactor 2017-03-11 03:17:12 +02:00
Andrei "Akari" Alexeyev
0b9eb062df WIP wriggle night ignite tweaks 2017-03-07 17:56:47 +02:00
Andrei "Akari" Alexeyev
3416fb16ec fix a GL error in instanced lasers
this does not fix wave theory
2017-03-05 04:40:49 +02:00
Andrei "Akari" Alexeyev
ca16c30966 large refactoring WIP
windows & osx untested
bgm untested
too many changes to comment on
2017-03-05 00:39:17 +02:00
Andrei "Akari" Alexeyev
24dd1c8c39 Merge branch 'master' into extraspells 2017-03-03 19:45:20 +02:00
Andrei "Akari" Alexeyev
41fa6d9d76 malloc-less colors 2017-03-03 19:31:04 +02:00
Andrei "Akari" Alexeyev
248210f575 Merge branch 'master' into extraspells 2017-02-27 17:36:43 +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
cc00a8754e unbroke laser rendering 2017-02-25 00:08:23 +02:00
Andrei "Akari" Alexeyev
99419d44ac WIP extraspell for Iku
Review and tweaking needed. Does not support difficulties yet.
2017-02-25 00:08:23 +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
32f7edd24e Refactored config into a macro hell 2017-02-17 18:03:49 +02:00
Andrei "Akari" Alexeyev
e8f52f1b49 Scoring changes
* Score is now preserved between stages in story mode as it was intended
    * Score given for shooting enemies is now based on the projectile damage
    * Some score is also given for shooting the boss, also based on the projectile damage
    * Score given for grazing has been increased substantially
    * Grazing range has been increased
    * The graze counter is now reset between stages
2017-02-11 00:05:22 +02:00
Andrew "Akari" Alexeyew
7d53d3fb27 laser grazing 2012-08-14 17:14:53 +03:00
Andrew "Akari" Alexeyew
779ff58684 Fixed all the () prototypes, changed to (void) 2012-08-10 23:08:51 +03:00
laochailan
a8251b1966 Merge branch 'master' into stage6
Conflicts:
	shader/laser_snippets
	src/CMakeLists.txt
	src/global.h
	src/projectile.c
	src/stage.c
	src/stage.h
	src/stages/stage3.c
	src/stages/stage3_events.c
	src/stages/stage4_events.c
2012-08-03 16:55:10 +02:00
Andrew "Akari" Alexeyew
eff7bb6435 Merge remote-tracking branch 'upstream/master' into stage3 2012-08-03 00:40:20 +03:00
laochailan
9cade89368 Merge branch 'master' into stage6 2012-08-02 15:48:35 +02:00
laochailan
e09428858e laser fallback for non instancing hardware 2012-08-02 15:34:27 +02:00
laochailan
b700692ea4 adjusted visibility and warm up. more rebalancing 2012-07-31 22:29:18 +02:00
laochailan
45dc909b4b made min global, changes for mingw builds 2012-07-29 09:32:56 +02:00
Andrew "Akari" Alexeyew
c7886ac0ae Merge remote-tracking branch 'upstream/master' into stage3
Conflicts:
	src/enemy.c
	src/global.c
2012-07-29 09:19:58 +03:00
laochailan
e8c67c9cb3 adjusted non-shader laser drawing 2012-07-28 12:25:16 +02:00
Andrew "Akari" Alexeyew
e78b5d715e Merge remote-tracking branch 'upstream/master' into stage3 2012-07-28 11:29:58 +03:00
laochailan
0d00fdee95 fixed lasers, added SmartResize(tm) 2012-07-28 10:16:59 +02:00
Andrew "Akari" Alexeyew
7ce03ae9d2 Added shader-calculated positions for the sine laser rules; Fixed a stage3 segfault 2012-07-27 23:27:46 +03:00
Andrew "Akari" Alexeyew
769c240e03 Merge remote-tracking branch 'upstream/master' into stage3
Conflicts:
	src/global.c
	src/global.h
2012-07-27 21:59:24 +03:00