Commit graph

48 commits

Author SHA1 Message Date
Andrei Alexeyev
8b37d1cbf2
src: the great #include massacre of 2024 2024-05-17 14:11:48 +02:00
Andrei Alexeyev
be7905d6a3
src: run upkeep 2024-05-17 04:58:47 +02:00
Andrei Alexeyev
f0680dae55
stages: use new-style rules for common laser types 2024-04-23 17:38:21 +02:00
Andrei Alexeyev
daa1b38987
lasers: prototype a better interface for position rules 2024-04-23 17:38:21 +02:00
Andrei Alexeyev
8f8ca2beca
all: use min/max macros; avoid some unnecessary conversions 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
f1c156cacd
stage3: fix bad collision lerp in swarm_trail_proj 2023-09-02 19:31:06 +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
bd361067df
headers: isolate endings, remove stage.h inc. from plrmodes.h, fix resulting mess 2023-07-30 06:16:17 +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
laochailan
a6e29bdc56 preload: update all preloads
endings and extra spells are not completely tested yet.
2023-06-16 22:19:11 -04: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
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
Andrei Alexeyev
736e659bab
stage3: redesign scuttle's spell 2023-05-29 05:06:45 +02:00
Andrei Alexeyev
0a6b1240bf
stage3: nerf laserballs on normal and hard 2023-05-29 02:19:41 +02:00
Andrei Alexeyev
6b745e4b16
stage3: use summoning effects 2023-05-20 05:45:33 +02:00
Andrei Alexeyev
9dade8ad33
resource: lifetime management redesign (WIP) 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
3dc0faec9e
renderer/api: rename ClearBufferFlags to BufferKindFlags 2023-04-10 06:47:55 +02:00
Andrei Alexeyev
a673af25f2
stage3: fix move_towards deprecation warnings 2023-02-27 07:10:57 +01:00
Andrei Alexeyev
ff4212e72a
lasers: remove logic rules 2023-02-26 15:40:41 +01:00
Andrei Alexeyev
b916d62e39
boss,stages: remove rule from AttackInfo 2023-02-24 16:54:51 +01:00
Andrei Alexeyev
0d62eff3a5
stage3: fix incorrect spell bonus rank 2023-02-24 05:24:06 +01:00
Andrei Alexeyev
c38cf56cf7
stage3: fix -Wconversion warning 2023-02-16 18:00:09 +01:00
Andrei Alexeyev
2d2c3465ec
stage3: modernize wriggle_fstorm_proj_draw 2023-02-09 07:35:14 +01:00
Andrei Alexeyev
f24f277f1a
stage3/wriggle: remove modernize macro 2023-02-07 12:26:24 +01:00
Andrei Alexeyev
84b67a66bf
stage3: fix gcc build 2023-01-28 00:20:13 +01:00
Andrei Alexeyev
558541e2cc
stage3: Major redesign of the stage (WIP)
Still needs work, but good enough for now.

Merges #203

Squashed commit of the following:

commit 7f30ef2393
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Fri Jan 27 23:50:42 2023 +0100

    stageinfo: finally rename stage3

commit 53ca691e68
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Fri Jan 27 23:38:36 2023 +0100

    stage3: telegraph moonlight rockets

commit 4d247877e7
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Jan 18 15:54:44 2023 +0100

    stage3: moonlight rocket fixes

commit 684a167611
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Jan 18 14:50:48 2023 +0100

    stage3: update background

commit bed836f56c
Author: laochailan <laochailan@web.de>
Date:   Sat Jan 7 19:52:51 2023 -0500

    stage3: make easy mode easier

commit bec659a6eb
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 7 20:20:18 2022 +0100

    stage3: sprinkle some random difficulty_value() calls

commit 2090821188
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Nov 20 07:57:33 2022 +0100

    stage3: refactor and fix deadly dance (no design update yet)

commit 5dbdeae1dd
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Nov 20 07:17:05 2022 +0100

    stage3: redesign scuttle nonspell

commit 70666a4074
Author: Andrei Alexeyev <0x416b617269@gmail.com>
Date:   Mon Nov 14 01:32:11 2022 +0100

    stage3: last pre-boss section draft

commit 42bb538ff5
Author: Andrei Alexeyev <0x416b617269@gmail.com>
Date:   Mon Nov 14 01:28:32 2022 +0100

    stage3: bunch of swarm-trail fairy fixes

commit 5938783591
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Nov 12 01:40:23 2022 +0100

    stage3: more misery

commit 84342f1973
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Tue Nov 8 16:35:11 2022 +0100

    stage3: post-midboss up to climax

commit b40f71bbc6
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Nov 2 18:43:54 2022 +0100

    stage3: experimental post-midboss pattern

commit b5710faa04
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Nov 2 18:12:49 2022 +0100

    stage3: deadly dance fixes

commit f85aa25c00
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Nov 2 18:08:02 2022 +0100

    stage3: first sparks of difficulty balance

commit 33b65b7fbe
Author: laochailan <laochailan@web.de>
Date:   Sun Oct 16 10:27:24 2022 -0400

    stage3: align swarm fairies

commit 2556a0de9e
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Sep 26 05:35:53 2022 +0200

    stage3: more progress on the first half

commit 86fc38255b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Sep 24 04:10:57 2022 +0200

    stage3: add some swirls after superfairy

commit b0134e82c7
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Sep 24 04:10:11 2022 +0200

    stage3: experimental laserball fairy

commit 88d7646927
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Sep 24 04:09:14 2022 +0200

    stage3: tweak horde fairies

commit b97da7a9e9
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Tue Sep 13 17:08:12 2022 +0200

    stage3: wip circletwist fairy tweaks

commit ee9234a72b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Sep 5 04:41:55 2022 +0200

    wip swirls

commit 26c7a35e04
Author: laochailan <laochailan@web.de>
Date:   Sun Jan 2 11:29:41 2022 +0100

    stage3 wip

commit d1a263223f
Author: laochailan <laochailan@web.de>
Date:   Fri Nov 12 05:57:07 2021 +0100

    wip wip wip

commit c2527b05cf
Author: laochailan <laochailan@web.de>
Date:   Thu Sep 30 20:38:38 2021 +0200

    stage3 redesign: some first prototypes

commit 0c2855e3ca
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Thu May 6 21:59:48 2021 +0300

    stage3: some preliminary fixes

commit fddf314db9
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Feb 28 07:36:04 2021 +0200

    stage3: port rest of night ignite

commit 1cd84d7834
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Feb 27 04:50:46 2021 +0200

    stage3: port night ignite slaves

commit cb991be703
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Feb 27 04:26:26 2021 +0200

    stage3: finish porting firefly storm

commit 0fb9733829
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Jun 23 02:44:14 2021 +0300

    stage3: partial firefly storm port

commit ba174893a0
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Tue Feb 23 02:28:13 2021 +0200

    stage3: enable all wriggle attacks

commit 03e1dd8078
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Tue Feb 23 02:22:35 2021 +0200

    stage3: port wriggle nons

commit 3308255579
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Feb 22 16:27:50 2021 +0200

    stage3: fix some indent issues

commit b1c1115d7f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Feb 22 16:23:07 2021 +0200

    stage3: fix deprecations in moonlight rocket

commit 990489e960
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Thu Feb 4 08:53:00 2021 +0200

    stage3: port moonlight rocket

commit 859592a89b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Thu Feb 4 07:31:58 2021 +0200

    stage3: basic port of wriggle slaves

commit b88b4f5249
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Feb 1 06:28:30 2021 +0200

    stage3: port Light Singularity

commit db6bb13326
Author: Alice D <34408664+StarWitch@users.noreply.github.com>
Date:   Wed Mar 18 23:25:25 2020 -0400

    stage3: preliminary coroutinization (#197)

    * first enemy of Stage 3 converted

    * review suggestions

    * add interval for burst_swirls

    * mid-commit

    * fairy group (second spawned enemies)

    * forgot to use my own variable

    * comment changes

    * better understanding of second arg of create_enemy*

    * fix subtasks (wasn't using them the correct way)

    * swirls that go from one side to the other

    * burst fairies complete

    * all complete up until midboss (stage 3 coroutines)

    * remove sub-rule for projectiles in charge_fairy

    * entire stage on coroutines now (boss spellcards missing)

    * rip out more old/dead code, make file better organized

    * timing changes

    * remove old background (looks jank now with new timing)

    * PR review changes

    * slight readability changes

    * Scuttle lethal_bite implemented

    * PR changes (ignore wriggle, she's still a WIP)

    * revert Info.plist entry (for separate PR)

    * finish(?) Scuttle's deadly dance, plus some PR changes

Co-authored-by: Alice D <34408664+StarWitch@users.noreply.github.com>
Co-authored-by: Lukas Weber <laochailan@web.de>
2023-01-27 23:57:12 +01:00
Andrei Alexeyev
b6978178b1
memory: use custom memory allocation wrappers
Introduces wrappers around memory allocation functions in `memory.h`
that should be used instead of the standard C ones.

These never return NULL and, with the exception of `mem_realloc()`,
zero-initialize the allocated memory like `calloc()` does.

All allocations made with the memory.h API must be deallocated with
`mem_free()`. Although standard `free()` will work on some platforms,
it's not portable (currently it won't work on Windows). Likewise,
`mem_free()` must not be used to free foreign allocations.

The standard C allocation functions are now diagnosed as deprecated.
They are, however, available with the `libc_` prefix in case interfacing
with foreign APIs is required. So far they are only used to implement
`memory.h`.

Perhaps the most important change is the introduction of the `ALLOC()`,
`ALLOC_ARRAY()`, and `ALLOC_FLEX()` macros. They take a type as a
parameter, and allocate enough memory with the correct alignment for
that type. That includes overaligned types as well. In most
circumstances you should prefer to use these macros. See the `memory.h`
header for some usage examples.
2023-01-18 13:23:22 +01:00
Andrei Alexeyev
d1b64ae010
stage3: preload stage3_wriggle_bg shader 2022-02-13 01:25:24 +02:00
Andrei Alexeyev
44ef44e24f
stage3: remake wriggle's spellbg as a shader (and fix it)
Old version broke when we started using a floating point framebuffer for
the background.
2022-02-13 01:21:36 +02:00
Andrei Alexeyev
0c22d53bb0
shaders/pbr: refactor PBR shaders for modularity 2021-12-17 14:42:14 +02:00
Andrei Alexeyev
a55355be0d
shaders: cleanup zbuf_fog; add combined fog+tonemap shader 2021-12-17 14:40:04 +02:00
Andrei Alexeyev
a435ea440d
stage3: use new stage3d pos functions; optimize bg draw order 2021-10-29 16:11:56 +03:00
Andrei Alexeyev
78266ace3f
pbr: refactor material management and shader
Introduced a new PBRMaterial resource type. Materials are now fully
described with .material files instead of being hardcoded. Added some
functions to abstract away and simplify set up of PBR shaders.
2021-09-01 00:21:50 +03:00
Andrei Alexeyev
9e297aa570
fix stupid gcc warnings 2021-08-31 23:34:48 +03:00
Andrei Alexeyev
8d2ee76710
replace include guards with #pragma once 2021-08-31 23:34:46 +03:00
Andrei Alexeyev
c49357ffef
fix deprecations 2021-08-31 23:33:16 +03:00
Andrei Alexeyev
4d1b4eb72a
lasers: new renderer based on signed distance fields (#317)
* lasers: new SDF-based renderer (WIP)

* lasers: tweak sdf_apply shader

* lasers: fix incorrect rendering at 'unlucky' resolutions

* lasers: optimize rendering of multiple lasers

Try to coalesce render passes as much as possible

* lasers: fix warning

* lasers: move rendering into a new file

* lasers: correct "time" coordinate mapping for texturing

* lasers: wrote a novel about laser rendering [skip ci]

* lasers: fux tpyo

* remove references to old laser shape shaders

* lasers: fix some rendering edge cases
2021-08-22 01:27:12 +03:00
Andrei Alexeyev
1840c85273
stages: add empty templates for custom entity types 2021-07-18 17:52:45 +03:00
Andrei Alexeyev
ad9228e0a0
stage3: restructure into a folder-based layout
It's an absolute mess, but should make integrating stage3_revamp easier…
2021-07-10 03:24:07 +03:00