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