Commit graph

3932 commits

Author SHA1 Message Date
Andrei Alexeyev
7e1ea18969
item: cache sprite pointers 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
a464aa8837
projectile: cache auto-angle of constant-velocity projectiles 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
1d04428bbb
projectile: optimize projectile_size, projectile_graze_size, projectile_in_viewport 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
1b5feddd97
move: use cmul_finite in move_update 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
b2df4e34db
lasers: irrelevant quantize_laser optimizations 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
c15934f666
dynarray: get rid of memset and add optional initializer arg to dynarray_append 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
b02d831e41
util/geometry: small ellipse collision optimizations 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
4f6384b257
util/miscmath: add component-wise complex div functions 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
806427e8e0
util/miscmath: add cmplx mul & div functions that don't care about infs and nans 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
c2810e228d
all: use re()/im() macros 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
95053f7fe8
util/miscmath: annotate unlikely branches in approach_asymptotic funcs 2023-09-20 04:01:14 +02:00
Andrei Alexeyev
4547f6dc09
util/miscmath: deprecate creal/cimag/crealf/cimagf 2023-09-20 03:58:55 +02:00
Andrei Alexeyev
8b987dcc37
util/miscmath: add csort(z) and csortf(z) functions 2023-09-20 03:43:30 +02:00
Andrei Alexeyev
6e80df6e22
util/miscmath: mark smoothmin as attr_const 2023-09-20 03:42:21 +02:00
Andrei Alexeyev
13ae7a2f72
util/miscmath: remove some unused functions 2023-09-19 14:24:48 +02:00
Andrei Alexeyev
2795419256
util/miscmath: add type-generic min() and max() macros 2023-09-19 13:56:36 +02:00
Andrei Alexeyev
83373d139d
util/miscmath: add re(z) and im(z) macros
Shorter and type-generic replacements for creal() and cimag(). If z is
an l-value, the returned value is also an l-value, e.g.:

	cmplx foo = 420 + 69i;
	im(foo) = 1337;
	assert(foo == 420 + 1337i);
2023-09-19 13:51:10 +02:00
Andrei Alexeyev
a08d68a91a
demoplayer: ignore suspend/resume requests when not initialized
This fixes a nasty interaction between the intro sequence and the
demoplayer introduced in 3ff62045. The cutscene tries to suspend the
demoplayer for its duration and then resume it later. When the
suspension counter hits 0, the demoplayer event handlers are installed
globally. And then AFTER that happens, the demoplayer is actually
initialized, resetting the suspension counter and installing the event
handlers AGAIN. When the demoplayer is then suspended (e.g. by starting
the actual demo playback), only one set of those handlers is removed,
which has the effect of the demoplayer remaining active even in-game.
Eventually, it tries to play a demo while a game is already running,
at which point all hell breaks loose.

Fix this by making suspend and resume no-ops until the demoplayer has
been properly initialized.

Fixes #371
2023-09-10 06:41:32 +02:00
Andrei Alexeyev
94213b4b2c
external: update koishi
Fixes #372
2023-09-09 18:55:23 +02:00
Andrei Alexeyev
5aaa2a5ccb
scripts: change VERSION_FALLBACK to v1.5-dev 2023-09-09 18:55:04 +02:00
Andrei Alexeyev
ab6b26d8a5
xdg: update appdata 2023-09-08 03:14:46 +02:00
Andrei Alexeyev
390066037f
scripts: change VERSION_FALLBACK to v1.4 2023-09-08 00:52:41 +02:00
Andrei Alexeyev
e86b12482e
stage6: ricci: disable collision lerp for the danmaku field 2023-09-08 00:52:41 +02:00
Andrei Alexeyev
8847d79dfd
credits: shout out more FOSS projects that we use 2023-09-08 00:38:17 +02:00
Andrei Alexeyev
4639b6c6c4
credits: expand background so text doesn't overflow 2023-09-08 00:38:17 +02:00
Andrei Alexeyev
8363285082
stage6: fix timing of ToE intro screen shake and elly portrait change 2023-09-08 00:38:17 +02:00
Andrei Alexeyev
a0b9c750b4
stage: fix music sync after skip mode 2023-09-08 00:38:17 +02:00
Andrei Alexeyev
b8ad5f7099
stage: massively boost all-clear bonus
Depends on PIV, current score, and difficulty
2023-09-07 21:50:56 +02:00
Andrei Alexeyev
de2f91af42
cutscenes: mention that the extra stage is not yet ready 2023-09-07 21:15:14 +02:00
Andrei Alexeyev
1d3a5fe381
resources: update intro bgm 2023-09-07 19:34:17 +02:00
Andrei Alexeyev
56616e6242
doc: update scoring section in the game manual 2023-09-06 19:26:56 +02:00
Andrei Alexeyev
f1c156cacd
stage3: fix bad collision lerp in swarm_trail_proj 2023-09-02 19:31:06 +02:00
Andrei Alexeyev
bb6829c0c5
resources: replace desyncing demo 2023-09-02 19:03:53 +02:00
Andrei Alexeyev
3ff62045dc
cutscene: suspend demoplayer while active
Fixes #369
2023-09-02 13:13:21 +02:00
Andrei Alexeyev
5d54618667
glcommon: disable norm16 formats on nouveau
These seem to be broken
2023-08-31 00:51:49 +02:00
Andrei Alexeyev
4aba2a925b
stage4: adjust second half to be a bit more fair 2023-08-30 18:50:19 +02:00
Andrei Alexeyev
2e4954f69a
resources: re-record valid demos 2023-08-30 14:48:52 +02:00
Andrei Alexeyev
a9366bc769
global: increase max continues to 5 2023-08-30 14:20:20 +02:00
Andrei Alexeyev
e3e501288c
stage5: atmospheric discharge adjustments
it's still pretty dumb
2023-08-28 19:15:40 +02:00
Andrei Alexeyev
cab432f843
gles: create angle context in webgl mode on windows
Cubemaps are broken in ANGLE's D3D11 backend, except in WebGL mode for
some reason. This is a terrible workaround, but it beats fucked up
rendering in stage backgrounds.
2023-08-28 19:15:40 +02:00
Andrei Alexeyev
97e99df9fc
glad: add egl and regenerate 2023-08-28 15:36:20 +02:00
Andrei Alexeyev
1a2c4bc21a
stage4: make vlad's army slightly less unfair
it still sucks ass
2023-08-24 15:54:18 +02:00
Andrei Alexeyev
9cfbbb27c9
progress: zstd-compress and write with new filename
Old uncompressed progress.dat will be loaded if progress.zst is not
found. The reason for this change is that progress files are much larger
now, and taisei <1.4 had a stupid 4kb size limit for them. Older
versions of taisei would refuse to load the new large file at all,
resulting in possible data loss in case multiple versions are installed.
2023-08-24 14:30:41 +02:00
Andrei Alexeyev
a952fb1426
progress: track per-plrmode stage stats 2023-08-24 14:30:41 +02:00
Andrei Alexeyev
efb234284d
progress: actually change hiscore to uint64_t 2023-08-22 20:07:22 +02:00
Andrei Alexeyev
8cc0e568bf
transition: fix post-credits transition 2023-08-21 17:29:33 +02:00
Andrei Alexeyev
9e857e0229
stage3: firefly_storm: add missing sound 2023-08-20 16:13:35 +02:00
Andrei Alexeyev
d1f8ae883a
stage3: replace night ignite with a new spell card 2023-08-20 16:04:46 +02:00
Andrei Alexeyev
323183061b
common_tasks: add RADIAL_LOOP helper macro
Helps with writing radially symmetrical patterns.

Replace this:

	int cnt = 69;
	cmplx dir = initial_dir;
	cmplx turn = cdir(M_TAU/cnt);
	for(int = 0; i < cnt; ++i, dir *= turn) {
		pew_pew(dir);
	}

with this:

	RADIAL_LOOP(l, 69, initial_dir) {
		pew_pew(l.dir);
	}
2023-08-20 15:48:51 +02:00
Andrei Alexeyev
bc1267f0e8
projectile: fix .prevpos being set incorrectly
This broke collision lerping, and automatic angle calculation in cases
where position is influenced by external tasks. A stage 2 pattern seems
to have relied on this broken behavior, and was also fixed.
2023-08-17 01:28:29 +02:00