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
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
f1c156cacd
stage3: fix bad collision lerp in swarm_trail_proj
2023-09-02 19:31:06 +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
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
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
laochailan
d428063023
stage4: make animate wall more wally
2023-08-05 02:17:16 +02:00
laochailan
78836e6ca8
stage4: center hex fairy lattice
2023-08-05 02:17:16 +02:00
Andrei Alexeyev
153b1ab702
progress: increase file size limit
2023-07-30 06:24:32 +02:00
Andrei Alexeyev
b26e3b8d24
stagedraw: fix stage_draw_hud_score() signature
2023-07-30 06:22:14 +02:00
Andrei Alexeyev
296e330dae
progress: make hiscore 64-bit
2023-07-30 06:21:18 +02:00
Andrei Alexeyev
bd361067df
headers: isolate endings, remove stage.h inc. from plrmodes.h, fix resulting mess
2023-07-30 06:16:17 +02:00
Andrei Alexeyev
42cbdc7005
progress: move private definitions out of the header
2023-07-30 03:14:50 +02:00
Andrei Alexeyev
6cc8bf2d47
gl33: shut up -Wunreachable-code on emscripten builds
2023-07-30 03:01:58 +02:00
Andrei Alexeyev
b57445900f
gamepad: overhaul analog stick handling
...
* Use correctly scaled radial deadzones instead of naive per-axis
deadzones
* Option to adjust the "maximum zone" (upper deadzone)
* Option to remap square input into circular. Unfortunately there's no
nice way to detect which type the controller reports. We assume
circular by default.
* A more sensible sensitivity setting
* Use a larger minimum deadzone when emulating key presses (e.g. in
menus)
* Adjusted key repeat to be less aggressive
2023-07-12 00:13:19 +02:00
Andrei Alexeyev
115948857e
item: always collect at full value during power surge
2023-07-11 16:50:05 +02:00
Andrei Alexeyev
6f5f419c24
cutscenes: unlock bgm on enter
2023-06-26 09:07:47 +02:00
Andrei Alexeyev
e49c20d172
resources: add intro bgm
2023-06-26 09:02:46 +02:00
Andrei Alexeyev
a104c10691
menu/options: make it possible to exit text input with gamepad
2023-06-23 11:09:17 +02:00
Andrei Alexeyev
9564c20ed9
video: retarded broken-ass braindead piece of shit garbage
2023-06-23 10:58:28 +02:00
Andrei Alexeyev
f8adda39be
video: update scaling factor after resize
...
On wayland the scaling factor doesn't seem to be initialized correctly,
as we get a different framebuffer size from what was requested
initially, followed by a resize event with the correct size.
2023-06-23 10:58:28 +02:00
Andrei Alexeyev
f90c460af1
menu/options: very scuffed "reset to default" option
2023-06-23 10:58:28 +02:00
Andrei Alexeyev
5b0af506d7
config: fix config_reset()
2023-06-23 10:58:28 +02:00
Andrei Alexeyev
a9ccc5a91f
replay/demoplayer: reduce inter-demo wait time
2023-06-22 08:04:51 +02:00
Andrei Alexeyev
d84771dc03
laser: prevent potential replay desync
2023-06-20 05:27:12 +02:00
laochailan
40589013dc
stages: add missing bgm unlock trigger
...
in stage 6 one was actually double
2023-06-19 21:48:03 -04:00
Andrei Alexeyev
91528ae8f4
menu/options: don't instantly disable gamepad when option is switched off
2023-06-20 01:13:50 +02:00
Andrei Alexeyev
cab67e9fc1
gamepad: fix early return from gamepad_init() when already initialized
2023-06-20 01:13:50 +02:00
Andrei Alexeyev
a2aa88cb62
gamepad: add gamepad_initialized()
2023-06-20 01:13:50 +02:00
Andrei Alexeyev
ee2bb877bc
global: basic kiosk mode support
2023-06-20 01:13:50 +02:00
Andrei Alexeyev
f99ea11bd2
video: attempt to enforce ALWAYS/NEVER capabilities
2023-06-20 01:13:50 +02:00
Andrei Alexeyev
eeb99858ca
video: make video_get_mode() safer
2023-06-20 01:13:50 +02:00
laochailan
eaa8c5655b
stage6: nerf nerf nerf
2023-06-19 18:53:58 -04:00
Andrei Alexeyev
787e66f3fb
plrmodes/marisa_a: draw lasers on LAYER_PLAYER_SHOT_HIGH
...
Makes them appear under enemy bullets and not reflected in stage 1 water
2023-06-19 23:39:11 +02:00
Andrei Alexeyev
8bff89e1c1
player,config: add option to auto-activate surge at 6 power (on by default)
2023-06-19 23:39:11 +02:00
laochailan
57e90a8c67
stage5: nerf nerf nerf
2023-06-18 16:51:23 -04:00
Andrei Alexeyev
00a59451dd
stage: fix transition for demo with skipped frames
2023-06-18 22:02:55 +02:00
Andrei Alexeyev
31410b6ad7
build: emscripten: pass -lhtml5 for SDL
2023-06-18 14:59:03 +02:00
Andrei Alexeyev
c74ac7874a
gles30: alternative webgl framebuffer_copy impl to work around chrome bug
2023-06-18 14:56:00 +02:00
Andrei Alexeyev
153d809015
enemy: fix missing "taisei.h" include
2023-06-18 14:09:44 +02:00
Andrei Alexeyev
cabfec9cb4
stage6: fix warning
2023-06-17 22:56:45 +02:00
Andrei Alexeyev
c749a6767f
stage6: improve ToE background formulas
2023-06-17 22:30:16 +02:00
Andrei Alexeyev
b7f47e6580
replay/tsrtool: add a basic CLI replay editor
2023-06-17 21:53:48 +02:00
Andrei Alexeyev
ba8ef49030
replay/struct: define gflags and sflags via X-macros
2023-06-17 21:53:48 +02:00
Andrei Alexeyev
1df5454727
player: define INFLAGs via an X-macro
2023-06-17 21:53:48 +02:00
Andrei Alexeyev
086b68e9fd
replau/read: wrap common args in context struct; add flag to ignore errors
2023-06-17 21:53:24 +02:00
Andrei Alexeyev
100036c676
replay: add replay_save_syspath()
2023-06-17 21:53:24 +02:00
Andrei Alexeyev
6a7a65e6b8
stage: handle replays that have skip_frames
2023-06-17 21:53:24 +02:00
Andrei Alexeyev
f272ec5911
replay/state: add skip_frames counter for playback
2023-06-17 21:53:24 +02:00
Andrei Alexeyev
eede63333a
replay: introduce REPLAY_STRUCT_VERSION_TS104000_REV1
...
* Use zstd instead of zlib compression
* Remove plr_focus field
* Add skip_frames field for demos
2023-06-17 21:53:24 +02:00
Andrei Alexeyev
e74c3f60ea
replay/play: fix --rereplay mode
2023-06-17 21:53:24 +02:00
Andrei Alexeyev
e949419941
menu/replayview: cleanup events after watching replay
2023-06-17 21:52:44 +02:00
Andrei Alexeyev
79768da03a
version: add taisei_version_tostrbuf()
2023-06-17 21:35:10 +02:00
laochailan
a6e29bdc56
preload: update all preloads
...
endings and extra spells are not completely tested yet.
2023-06-16 22:19:11 -04:00
laochailan
57be4df75f
stage6: make the calabi yau thing a bit nicer
2023-06-16 07:58:48 -04:00
laochailan
8eeafedcfc
stage6: nerf wave theory on easy and normal
2023-06-16 07:29:31 -04:00
laochailan
3bb633bb0f
stage2: make the fleas more flashy
2023-06-15 07:29:23 -04:00
Andrei Alexeyev
b7d6ff2e8a
stage4: vampiric_vapour: change spawning pattern
...
Introduce randomization and fix replay desync issue cause by huge value
of exp(i).
2023-06-15 05:53:40 +02:00
laochailan
0ede205dab
stage4: more nerfs to the stage pattern
2023-06-14 07:58:24 -04:00
laochailan
aa4f2b4c6e
stage6: line up the nonspell 1 shot sounds
2023-06-13 22:21:16 -04:00
laochailan
94e0385ebc
stage6: preliminary fix for elly dialog/nonspell scythe control overlap
...
Before, skipping the dialog after boss_appears but before the scythe task is done would stop the scythe during the first nonspell. This is not the safest fix but seems to work. Better would be to actually wait for the task to be finished.
2023-06-13 22:17:53 -04:00
laochailan
6bacf32c51
stageinfo: rename stages 1 to 3
2023-06-13 04:11:09 +02:00
Andrei Alexeyev
8dd17e4214
stage: fix inverted logic in is_quicksave_allowed
2023-06-11 23:17:13 +02:00
Andrei Alexeyev
6c3f0cf238
stage4: various tweaks
2023-06-11 20:49:28 +02:00
Andrei Alexeyev
8210521c6f
build: use find_program('meson') for dynstage
...
58aa301acc
2023-06-11 18:11:08 +02:00
laochailan
6b9ec2c703
stage5: nerf fairies
2023-06-10 11:29:40 -04:00
laochailan
6cadd91dcb
stage4: nerf various fairies
2023-06-09 22:10:48 -04:00
Andrei Alexeyev
ac8c311a6d
stage6: ricci: hack in a charge effect to telegraph a bit better
2023-06-10 01:19:09 +02:00
Andrei Alexeyev
04258e801a
stage3: light_singularity: use cdir(); hoist out of loop
2023-06-10 00:41:27 +02:00
Andrei Alexeyev
77fa9f647b
stage3: add spin to soul bullets in light_singularity
2023-06-10 00:37:50 +02:00
Andrei Alexeyev
8fb430607b
stage6: add spin to "soul" bullets in lhc
2023-06-10 00:34:23 +02:00
Andrei Alexeyev
3d585f3bef
stage4: spin the "soul" bullets in blow_the_walls
2023-06-10 00:32:19 +02:00
Andrei Alexeyev
27e2573632
stage5: fix limiter_fairy difficulty scaling
2023-06-10 00:27:32 +02:00
laochailan
2f60edc297
stage2: nerf hina second non
2023-06-08 08:29:33 -04:00
laochailan
eec69aaacc
stage2: nerf twin-spinshots
2023-06-08 08:14:52 -04:00
Andrei Alexeyev
46e0dccc86
config: set mixer_chunksize to 512
...
512 is close enough to 400 (sample_rate/(2 * FPS)), so the mixing
callback should run at least once per frame now, improving timing
precision.
2023-06-08 04:34:54 +02:00
Andrei Alexeyev
118e1aae4a
boss: kill all enemies when force-clearing hazards
2023-06-08 02:07:31 +02:00
Andrei Alexeyev
acc7d186be
boss: use unicode … in "Spell Card failed…"
2023-06-08 02:01:26 +02:00
Andrei Alexeyev
6d92fc21cb
boss: remove AT_Immediate
...
Not used and not very useful
2023-06-08 01:59:52 +02:00
Andrei Alexeyev
f220b99296
boss: disable player collision if attack is inactive or an AT_Move
2023-06-08 01:56:49 +02:00
Andrei Alexeyev
fa7c1489be
credits: unlock bgm when entered
2023-06-08 01:51:01 +02:00
Andrei Alexeyev
9794e45ee5
credits: disable demoplayer
2023-06-08 01:50:28 +02:00
Andrei Alexeyev
f85b37b2a2
menu/savereplay: disable demoplayer
2023-06-08 01:46:39 +02:00
Andrei Alexeyev
f5d70f8398
menu: add MF_NoDemo MenuFlag
...
Disables the demoplayer while the menu is active
2023-06-08 01:45:48 +02:00
Andrei Alexeyev
5ea56a2314
stage3: slightly nerf logic bomb on easy and normal
2023-06-08 01:06:08 +02:00
Andrei Alexeyev
c28a74b28b
stage3: nerf scuttle's non on easy and normal
2023-06-08 01:03:59 +02:00
Andrei Alexeyev
79151ea3a0
stage3: some easy/normal nerfs (mostly)
2023-06-06 03:20:37 +02:00
laochailan
910e1d4846
stage3: check on aim == 0 instead
2023-06-05 21:15:32 -04:00
laochailan
5942f46581
stage3: clarify the comment
2023-06-05 21:06:55 -04:00
laochailan
d223eb4ab7
stage3: avoid a NaN velocity that caused frozen bullets in wriggle’s non
2023-06-05 21:02:44 -04:00
Alice D
918971e7d7
fix crash in youmu dialog
2023-06-04 00:34:20 -04:00
laochailan
9ad8c895b6
stage4: fix offset in the wrong line
2023-06-03 23:09:50 +02:00
laochailan
3e147af84a
stage4: vampiric_vapour: kill off screen and introduce deflection instead
2023-06-03 23:09:32 +02:00
laochailan
8e47b880fb
stage4: nerf vamp vape
2023-06-03 23:09:32 +02:00
laochailan
00d5fe2a32
stage4: stage pattern rearrangement
2023-06-03 23:09:32 +02:00
laochailan
d4a57ca462
stage4: remaster stage patterns for better flow
2023-06-03 23:09:32 +02:00
laochailan
56e69ecbd5
stage4: adjust vampiric_vapour
...
same but less trivial. mostly made the projectile live beyond the screen.
2023-06-03 23:09:32 +02:00
laochailan
25cb29f3ce
stage4: modernize animate_wall
2023-06-03 23:09:32 +02:00
laochailan
c681573c64
stage4: add hex and spiral post-mid patterns
2023-06-03 23:09:32 +02:00
laochailan
531e38efd3
stage4: remove unused swirl move task
2023-06-03 23:09:26 +02:00
laochailan
58b50695d9
stage4: fix kurumi background music
2023-06-03 23:03:24 +02:00
laochailan
3aab3d7929
stage4: make laser explosions even nicer
2023-06-03 23:03:24 +02:00
laochailan
ff8941b5dd
stage4: make the death lasers of gold more impressive
2023-06-03 23:03:24 +02:00
laochailan
cce8c1e9f2
stage4: make card busters huge
2023-06-03 23:03:24 +02:00
laochailan
8a6075059d
stage4: make swirl patterns prettier
2023-06-03 23:03:24 +02:00
laochailan
3139e10e8e
stage4: add some charges, revamp some stage patterns
2023-06-03 23:03:24 +02:00
Andrei Alexeyev
398f423c98
dialog/youmu: fix spelling in face reference
2023-06-03 23:02:53 +02:00
Andrei Alexeyev
bb96861fe0
stage6: experimental maxwell remake
2023-06-03 22:56:08 +02:00
Andrei Alexeyev
9f9b81d44f
stage6: tone down the item drops a notch
2023-06-02 22:26:34 +02:00
Andrei Alexeyev
1406f13c49
plrmodes/marisa_a: halve laser dmg after first penetration
2023-06-01 03:45:32 +02:00
Andrei Alexeyev
e753ef9423
plrmodes/marisa_a: nerf base shot dmg; buff lasers
2023-06-01 03:38:24 +02:00
Andrei Alexeyev
c5f4a15ef8
plrmodes/marisa_b: nerf basic shot damage
2023-06-01 03:35:32 +02:00
Andrei Alexeyev
efe1c1ea67
plrmodes/youmu_b: reduce base spirit damage by 33%; increase by 50% when released
2023-06-01 03:20:04 +02:00
Andrei Alexeyev
6fd71081d1
plrmodes/youmu_a: nerf myon's damage a bit
2023-06-01 03:02:24 +02:00
Andrei Alexeyev
02e122c1bd
plrmodes/reimu_b: nerf ofudas, slightly buff needles
2023-06-01 02:59:26 +02:00
Andrei Alexeyev
34c151af4a
plrmodes/reimu_b: lower opacity of needle particles
2023-06-01 02:13:48 +02:00
Andrei Alexeyev
3f9848576b
plrmodes/youmu_a: adjust unfocused myon visuals
2023-05-30 03:55:12 +02:00
Andrei Alexeyev
cb16b36326
plrmodes/youmu_a: remove focused myon distance limit
2023-05-30 03:48:05 +02:00
Andrei Alexeyev
79b162b443
plrmodes/youmu_a: more responsive and precise myon controls
2023-05-30 03:14:25 +02:00
Andrei Alexeyev
9abaf2444d
player: add uncapped_velocity field
...
Like velocity, but prior to clamping to viewport bounds.
2023-05-30 03:07:23 +02:00
Andrei Alexeyev
08e0060e19
enemy_classes: improve fairy summon effect
...
Makes it easier to tell when the fairy becomes active
2023-05-29 06:57:55 +02:00
Andrei Alexeyev
736e659bab
stage3: redesign scuttle's spell
2023-05-29 05:06:45 +02:00
Andrei Alexeyev
cf8015c784
boss: add boss_get_sprite_offset()
...
Useful for synchronizing stuff to the visual boss sprite oscillation
2023-05-29 02:40:44 +02:00
Andrei Alexeyev
0a6b1240bf
stage3: nerf laserballs on normal and hard
2023-05-29 02:19:41 +02:00
Andrei Alexeyev
63ef832031
config: set practice_power to 400 by default
2023-05-29 01:40:46 +02:00
Andrei Alexeyev
3041836f68
config: enable fullscreen by default
2023-05-29 01:37:35 +02:00
Andrei Alexeyev
b3025ad921
cli,main,progress: add --unlock-all flag for dev builds
...
Permanently unlocks all content
2023-05-29 00:48:50 +02:00
Andrei Alexeyev
6a6a736e74
projectile: fix bullet spawn effects
...
Broken by 0d77416e3b
2023-05-28 02:08:19 +02:00
Andrei Alexeyev
83708429af
util/geometry: remove bogus attr_pure from rect_join
2023-05-26 02:27:14 +02:00
Andrei Alexeyev
84e44fba12
util/geometry: remove bogus attr_pure from rect_rect_intersection
...
Causes gcc to miscompile calls to this function, assuming it doesn't
actually write to *out. Breaks ReimuB.
2023-05-26 02:25:00 +02:00
Andrei Alexeyev
192432cc77
stage6: fix gcc warnings
2023-05-26 02:25:00 +02:00
Andrei Alexeyev
ad08ddcd7b
log: fix gcc warnings
2023-05-26 02:25:00 +02:00
Andrei Alexeyev
b233afaaa6
common_tasks: fix gcc warnings
2023-05-26 01:41:41 +02:00
Andrei Alexeyev
0d77416e3b
stage: fix subtle logic order issues
...
global.frames was being updated at the end of stage_logic(), which is
called by the very first task (stage_comain). This means input and
entity processing code saw a different frame counter value from stage
tasks and end-of-frame processing e.g. replay desync checks. It's not
known yet if this had any significant effect on stage logic, but it
definitely broke the desync detection.
Inlined stage_logic into stage_comain to better reflect its purpose and
place in the call sequence. Moved some things out of it to the true end
of the frame, including the counter update.
2023-05-26 01:21:55 +02:00
Andrei Alexeyev
9051769586
global,stage: remove global.timer
...
Not used anymore
2023-05-26 00:58:32 +02:00
Andrei Alexeyev
4ff21bdb31
stage5: redesign artificial lightning
2023-05-25 04:54:50 +02:00
Andrei Alexeyev
1f0e4f1cd9
stage5: redesign natural cathode
2023-05-25 04:54:50 +02:00
Andrei Alexeyev
46a4733b90
stage5: redesign atmospheric discharge
2023-05-25 04:54:50 +02:00
Andrei Alexeyev
85dbe55bda
stage5: redesign stage
2023-05-25 04:54:33 +02:00
Andrei Alexeyev
bffe79281c
common_tasks: add common_play_sfx
2023-05-25 04:46:16 +02:00
Andrei Alexeyev
0b6aef74e5
stage6: add summoning effects
2023-05-20 06:14:40 +02:00
Andrei Alexeyev
6b745e4b16
stage3: use summoning effects
2023-05-20 05:45:33 +02:00
Andrei Alexeyev
2307ec77a4
stage2: use summoning effects
2023-05-20 05:30:05 +02:00
Andrei Alexeyev
aeeab82f29
stage1: use summoning effects
2023-05-20 05:07:45 +02:00
Andrei Alexeyev
a842150d6d
main: fix game exiting after intro
...
Broken by bad copypaste in e6fffc6b5f
2023-05-19 20:17:18 +02:00
Andrei Alexeyev
e75762c520
enemy_classes: draw stronger enemies on top of weaker ones
2023-05-18 23:15:24 +02:00
Andrei Alexeyev
ae595ca50c
enemy_classes: add ecls_anyfairy_summon
2023-05-18 23:15:24 +02:00
Andrei Alexeyev
361d85f28b
enemy_classes: expose basic scale/opacity controls
2023-05-18 21:02:29 +02:00
Andrei Alexeyev
3b1e6cd362
enemy_classes: add ecls_anyenemy_fake3dmovein
2023-05-18 21:02:29 +02:00
Andrei Alexeyev
57f6d3dfd8
enemy,enemy_classes: redesign draw callbacks
...
Allows to pass arbitrary data to draw callbacks.
Groundwork for alternative fairy spawn animations.
2023-05-18 21:02:29 +02:00
Andrei Alexeyev
907eb8ff4e
stageutils: add camera3d_project
2023-05-18 21:02:29 +02:00
Andrei Alexeyev
a6c9303350
build: add install tags
2023-05-18 21:02:29 +02:00
Andrei Alexeyev
9a476f58e2
resource/font: lots of text rendering improvements
...
* Consistently use floats in the API and internally; don't round stuff
arbitrarily.
* Use freetype's "normal" hinting algorithm.
* Implement subpixel positioning to avoid bad glyph spacing at small
font sizes.
* Improved border control: inner and outer borders can be adjusted
separately and per-font. (The "inner border" affects the "highlight"
effect used in some shaders (blue channel)).
* Fix borders causing all glyphs to be misaligned (shifted down-right)
by a constant offset.
* Various other improvements.
2023-05-12 08:29:26 +02:00
Andrei Alexeyev
18408a46fa
resource/font: implement reloading
2023-05-12 08:29:26 +02:00
Andrei Alexeyev
25f67ffa59
resource: fix init order
2023-05-12 08:29:26 +02:00
Andrei Alexeyev
e6fffc6b5f
cli: add --populate-cache
...
Searches the VFS for resources and attempts to load them all, then
exits. Intended to fully populate the persistent cache.
2023-05-08 10:05:21 +02:00
Andrei Alexeyev
d21e81e7b6
taskmanager: spawn 2x the core count of threads by default
...
Because our multithreading code is generally terrible, this seems to
actually measurably improve throughput.
2023-05-08 10:05:21 +02:00
Andrei Alexeyev
18b221d473
taskmanager: use a semaphore for the task queue
2023-05-08 10:05:21 +02:00
Andrei Alexeyev
7133618cb3
resource: fix/simplify unload
...
Wait for ongoing load to finish before doing anything, and do actual
unload after releasing the ires.
2023-05-08 10:05:21 +02:00
Andrei Alexeyev
ca15faf23c
resource: remove dead code
2023-05-08 10:05:21 +02:00
Andrei Alexeyev
701db8a5ac
resource: init ireses with refcount of 1
...
Removes the need for dumb extra work of putting the ires into purgatory
only to immediately remove it, and avoids a nasty race condition there.
2023-05-08 10:05:21 +02:00
Andrei Alexeyev
963d21d152
stage: fix resgroup not propagating across quickloads
2023-05-08 10:05:21 +02:00
laochailan
d2ffe0ddce
stage6: add subtle bg rotation to make the boss battle more interesting
2023-05-02 20:35:19 -04:00
Andrei Alexeyev
3e91b047bc
resource: fix a bunch of shit that i cbf to explain
2023-04-30 23:13:06 +02:00
Andrei Alexeyev
bb6216e6a0
audio: remove play_sfx_delayed
2023-04-30 20:23:51 +02:00
Andrei Alexeyev
387441adf6
stage5: don't use play_sfx_delayed
2023-04-30 20:20:30 +02:00
Andrei Alexeyev
f8100d0f81
stage6: don't use play_sfx_delayed
2023-04-30 20:15:02 +02:00
Andrei Alexeyev
9dade8ad33
resource: lifetime management redesign (WIP)
2023-04-29 20:01:50 +02:00
Andrei Alexeyev
d7b1ecfd6f
resource: remove res_util_filename
2023-04-29 20:01:50 +02:00