Commit graph

3932 commits

Author SHA1 Message Date
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
d2c9aeaec3
resources/sfx: update shot1
The old sound was inaudible when played together with shot2 at the same
time
2023-05-25 04:44:39 +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
ac05ffe820
emscripten: update favicon 2023-05-18 21:02:29 +02:00
Andrei Alexeyev
fb7747aa98
misc,xdg: update icons 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
Andrei Alexeyev
ad295005db
resource: more consistent API function names 2023-04-29 20:01:50 +02:00
Andrei Alexeyev
ef762dc48b
lasers: fancier clear effects 2023-04-28 22:48:41 +02:00
Andrei Alexeyev
b264e5aa91
lasers: add laser_trace() function
Walks the visible laser segments with a fixed distance step, calling the
trace callback function for each step.
2023-04-28 22:48:41 +02:00
Andrei Alexeyev
f21d997fc6
util: add SWAP(a,b) macro
Equivalent to:
	auto t = a;
	a = b;
	b = t;
2023-04-28 22:14:38 +02:00
Andrei Alexeyev
cc1ddbd598
external: update basis_universal 2023-04-24 19:18:07 +02:00
Andrei Alexeyev
190da85628
gl33,glescommon: fix screenshots
Broken by b50b57803e
2023-04-18 12:47:19 +02:00
Nhalrath
2d47ab0fe7
util/stringops: use strncmp for strendswith (#362)
Minor change, doesn't really fix anything.

Similar to strstartswith, it may be better to use strncmp instead of
looping through every char in a string.
2023-04-18 12:06:42 +03:00
Andrei Alexeyev
a5678791a4
ci: deploy a -Ddeveloper=true emscripten build too 2023-04-12 07:59:04 +02:00
Andrei Alexeyev
9f4417b9ba
editorconfig: set indent style for .yml files 2023-04-12 07:32:28 +02:00
Andrei Alexeyev
58ee2cbf6f
lasers: s/double/real and use cdir in shape functions 2023-04-12 06:58:55 +02:00