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